oracle recyclebin 回收站

sql 复制代码
18:34:50 SYS@cndb> show parameter recyclebin;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
recyclebin                           string      on

ALTER SESSION SET recyclebin = ON;
ALTER SYSTEM SET recyclebin = ON SCOPE = SPFILE;

--查看表DDL
select dbms_metadata.get_ddl('TABLE','JZPD_MZJ_WBGYHBZ') from dual;

drop table luan_zxk.JZPD_MZJ_WBGYHBZ   -- purge那么将无法恢复
可以查看回收站中的表
select * from recyclebin where ORIGINAL_NAME='JZPD_MZJ_WBGYHBZ';
恢复表
flashback table JZPD_MZJ_WBGYHBZ to before drop;
to before drop 表示恢复这个表及其所有依赖的对象。如果该表的名称已经被其它表使用,那么执行 flashback table 该表时则会报错:ORA-38312:original name is used by an existing object, 这时,可以在执行 flashback table 时将表重命名
flashback table JZPD_MZJ_WBGYHBZ to before drop rename to JZPD_MZJ_WBGYHBZ_old;
rename to 表示将该表恢复后重命名。如果该表已经被删除了多次,那么使用 flashback table 恢复该表将默认恢复最后一次删除的那个,如果想恢复之前的一个版本,需要在回收站中查询该表,然后可以使用那个恢复并重命名的方式依次恢复每一个。

确认
SELECT * FROM luan_zxk.JZPD_MZJ_WBGYHBZ

--清除整个回收站的内容
purge recyclebin;

使用 flashback table 需要注意:

1)数据库将从回收站恢复该表的所有索引,注意bitmap join Index不能恢复,因为该索引在表格删除后不会被放入回收站中,所以不能恢复;

2)数据库将恢复该表的trigger和constraint,除了指向其它表的完整性约束;

3)当删除一个表格时,定义在该表格上的所有物化视图日志也被删除,但不会放入回收站中,因此,物化视图日志不能随着表格被恢复;

4)当删除一个表格时,该表格相关的所有索引都将被放入回收站中,如果数据库空间不足,数据库将首先清除掉索引的空间,因此,在这种情况下,恢复表格将无法恢复所有的索引;

5)如果被删除的表格已经被 purge 了,那么将无法恢复。

相关推荐
前进的李工3 小时前
SQL聚合函数与分组查询详解
数据库·sql·mysql
2301_800050994 小时前
mysql
数据库·笔记·mysql
数据皮皮侠4 小时前
2m气温数据集(1940-2024)
大数据·数据库·人工智能·制造·微信开放平台
Psycho_MrZhang5 小时前
Redis 设计思想总结
数据库·redis·缓存
曹牧6 小时前
Java:Assert.isTrue()
java·前端·数据库
程序员葫芦娃6 小时前
【Java毕设项目】基于SSM的旅游资源网站
java·开发语言·数据库·编程·课程设计·旅游·毕设
2401_865854887 小时前
怎样挑选适合业务的数据库云服务?
数据库
lkbhua莱克瓦247 小时前
基础-函数
开发语言·数据库·笔记·sql·mysql·函数
福大大架构师每日一题7 小时前
dify 1.11.2 正式发布:向量数据库、安全增强、测试优化与多语言支持全面升级
数据库·安全
码农学院7 小时前
Mysql 中的性能调优方法
数据库·mysql