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;
--没有对象。
阅读(846) | 评论(0) | 转发(0) |