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 了,那么将无法恢复。

相关推荐
Y***985134 分钟前
DVWA靶场通关——SQL Injection篇
数据库·sql
Yawesh_best36 分钟前
告别系统壁垒!WSL+cpolar 让跨平台开发效率翻倍
运维·服务器·数据库·笔记·web安全
蒋士峰DBA修行之路38 分钟前
实验二十八 SQL PATCH调优
数据库·sql·gaussdb
I***t7161 小时前
一条sql 在MySQL中是如何执行的
数据库·sql·mysql
一 乐1 小时前
应急知识学习|基于springboot+vue的应急知识学习系统(源码+数据库+文档)
数据库·vue.js·spring boot
微学AI2 小时前
内网穿透的应用-突破局域网束缚,MongoDB 远程访问使用cpolar原来可以这么简单
数据库·mongodb
大锦终4 小时前
【MySQL】内置函数
数据库·mysql
猿小喵4 小时前
索引优化-MySQL性能优化
数据库·mysql·性能优化
n***F8755 小时前
修改表字段属性,SQL总结
java·数据库·sql