3.使用flashback drop 功能 a.背景知识: Oracle10g提供了flashback drop的功能。而在以前的版本中,通常只能进行不完全恢复。 Oracle 10g的flashback drop功能,允许你从当前数据库中恢复一个被drop了的对象,在执行drop操作时,现在Oracle不是真正删除它,而是将该对象自动将放入回收站。对于一个对象的删除,其实仅仅就是简单的重命名操作。所谓的回收站,是一个虚拟的容器,用于存放所有被删除的对象。在回收站中,被删除的对象将占用创建时的同样的空间,你甚至还可以对已经删除的表查询,也可以利用flashback功能来恢复它, 这个就是flashback drop功能。回收站内的相关信息可以从recyclebin,user_recyclebin,dba_recyclebin等视图中获取,或者通过SQL*Plus的show recyclebin 命令查看。 b.测试- SQL> create table t as select * from dba_users;
Table created. - SQL> select count(*) from t;
COUNT(*) ---------- 22 Table dropped. - SQL> select * from recyclebin;
--sysdba的drop操作不会被记录。 SQL> conn u1/u1 Connected. - SQL> create table t as select * from dba_users;
Table created. - SQL> select count(*) from t;
COUNT(*) ---------- 22 Table dropped. - SQL> select * from recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ---------------- ------------------------------ ------------ ------------------- SJH0 BIN$ZfALsiRTGCLgRAAEdupMww==$0 TABLE 2009-03-25:18:34:34 - SQL> flashback table t to before drop;
Flashback complete. Name Null? Type ----------------------------------------- -------- ---------------------------- USERNAME NOT NULL VARCHAR2(30) USER_ID NOT NULL NUMBER PASSWORD VARCHAR2(30) ACCOUNT_STATUS NOT NULL VARCHAR2(32) LOCK_DATE DATE EXPIRY_DATE DATE DEFAULT_TABLESPACE NOT NULL VARCHAR2(30) TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30) CREATED NOT NULL DATE PROFILE NOT NULL VARCHAR2(30) INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(30) EXTERNAL_NAME VARCHAR2(4000) - SQL> select count(*) from t;
COUNT(*) ---------- 22 - SQL> select * from recyclebin;
--对象没有了,被恢复了。 Table dropped. - SQL> select * from recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ---------------- ------------------------------ ------------ ------------------- SJH0 BIN$ZfALsiRbGCLgRAAEdupMww==$0 TABLE 2009-03-25:18:38:03 - SQL> purge table t; --从回收站清除。
Table purged. - SQL> select * from recyclebin;
--没有对象了。 - SQL> create table t as select * from dba_users;
Table created. - SQL> select count(*) from t;
COUNT(*) ---------- 22 - SQL> drop table t purge; --彻底删除一个表,不让进入回收站。
Table dropped. - SQL> select * from recyclebin;
--没有对象。
|