20.3.1 数据库回收站
数据库回收站(Database Recycle Bin) 是所有被删除表和相关对象的容器,被存放在回收站的相关对象包括索引、约束、触发器、嵌套表、LOB 段和 LOB 索引段。
数据库回收站具有以下限制:
1. 生成回收站对象
SQL> conn scott/tiger@demo
已连接。
SQL> create table t1(c int);
表已创建。
SQL> create index IX_T1 on t1(c);
索引已创建。
SQL> create table t2(c int);
表已创建。
SQL> create index IX_T2 on t2(c);
索引已创建。
SQL> create table t3(c int);
表已创建。
SQL> create index IX_T3 on t3(c);
索引已创建。
SQL> drop table t1;
表已删除。
SQL> drop table t2;
表已删除。
SQL> drop table t3 purge;
表已删除。
2. 显示当前用户的回收站对象
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
T1 BIN$FrfDmiaIQNSrpx16x7B3vw==$0 TABLE 2009-02-19:22:53:03
T2 BIN$tZjkR3xATvydCPbHzzR3Hg==$0 TABLE 2009-02-19:22:53:04
SQL> select object_name,original_name from recyclebin;
OBJECT_NAME ORIGINAL_NAME
------------------------------ --------------------------------
BIN$d4mvZ2uiSPK13sVwaDpnwg==$0 IX_T1
BIN$tZjkR3xATvydCPbHzzR3Hg==$0 T2
BIN$FrfDmiaIQNSrpx16x7B3vw==$0 T1
BIN$kR3toQKCQ8Cv3cWiuBRJFQ==$0 IX_T2
3. 显示数据库的所有回收站对象
SQL> conn / as sysdba
已连接。
SQL> select owner,object_name,original_name from dba_recyclebin;
OWNER OBJECT_NAME ORIGINAL_NAME
------ ------------------------------ --------------------------------
SCOTT BIN$d4mvZ2uiSPK13sVwaDpnwg==$0 IX_T1
SCOTT BIN$tZjkR3xATvydCPbHzzR3Hg==$0 T2
SCOTT BIN$FrfDmiaIQNSrpx16x7B3vw==$0 T1
SCOTT BIN$kR3toQKCQ8Cv3cWiuBRJFQ==$0 IX_T2
4. 清除回收站对象
SQL> conn scott/tiger@demo
已连接。
SQL> purge table t1;
表已清除。
SQL> purge index ix_t2;
索引已清除。
SQL> purge recyclebin;
回收站已清空。
20.3.2 恢复被删除表
(1) 模拟用户误操作
(2) 显示回收站对象
(3) 恢复被删除表
SQL> conn scott/tiger
已连接。
SQL> show recyclebin
SQL> drop table emp;
表已删除。
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
EMP BIN$/3ZsVld5RhWZuaSOugW64A==$0 TABLE 2009-02-19:23:10:46
SQL> flashback table "BIN$/3ZsVld5RhWZuaSOugW64A==$0" to before drop rename to newemp;
闪回完成。
SQL> drop table newemp;
表已删除。
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
NEWEMP BIN$CQgC0n8+QJK/Y9OfvLD74w==$0 TABLE 2009-02-19:23:13:11
SQL> flashback table newemp to before drop rename to emp;
闪回完成。