全部博文(101)
分类: Oracle
2011-04-19 18:43:04
一.闪回已经删除的表
原理:当一个表被删除时,它并不是被删除了而只是被放到了回车站(recyclebin)里了,
只要这个表还在回车站里面,就可以重新恢复。因为回车站在表空间里面,所以表空间要有
足够的磁盘空间,不然可能被删除的表会被覆盖掉。
另外,如果要使用还得是至少是oracle10g的版本,还要将回车站(recyclebin)的参数设
置为ON。
示例:
C:/Documents and Settings/jacky>sqlplus/nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 4月 1 21:21:11 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn jacky/jacky;
已连接。
SQL> select * from cat;
TABLE_NAME TABLE_TYPE
------------------------------ -----------
TEST_BLOB TABLE
TEST_BLOB2 TABLE
B_BK_LSTJLL TABLE
SQL> show recyclebin;
SQL> drop table b_bk_lstjll;
表已删除。
SQL> select * from cat;
TABLE_NAME TABLE_TYPE
------------------------------ -----------
TEST_BLOB TABLE
TEST_BLOB2 TABLE
BIN$ZdFN2GoER4SlLWmJkIGP0g==$0 TABLE
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
B_BK_LSTJLL BIN$ZdFN2GoER4SlLWmJkIGP0g==$0 TABLE 2011-04-01:21:23:05
SQL> --闪回命令;
SQL> flashback table b_bk_lstjll
2 to before drop;
闪回完成。
SQL> select * from cat;
TABLE_NAME TABLE_TYPE
------------------------------ -----------
TEST_BLOB TABLE
TEST_BLOB2 TABLE
B_BK_LSTJLL TABLE
SQL> --闪回成功;
注意:闪回技术只能保护非系统表空间的表,而且这些表还必须存放在本地管理的表空间中。
尽管在一个表被删除时,依赖于该表的绝大多数对象也受到回车站的保护,但是位图连接索引,
引用完整性约束等并不受回车站的保护。