1.误删除表,使用flashback drop功能找回
sql> select * from tab;
TNAME TABTYPE CLUSTERID------------------------------ ------- ----------
TEST TABLE
sql> select * from test;
A
----------
1
2
3
4
5
6
7
8
0.
sql> show parameter recyclebin; -验证回收站是否打开--如未打开不能使用闪回DROP--11G默认打开
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
recyclebin string on
sql> show recyclebin;
sql> drop table test;
Table dropped.
查询回收站,删除的表在里面,并被系统自己命令--BIN$开头一长串---从ORIGINAL NAME 列可以看到表的原名是test
sql> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TEST BIN$387tHPzSqO/gQKjA3QEnzg==$0 TABLE 2013-06-23:17:29:01
sql> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BIN$387tHPzSqO/gQKjA3QEnzg==$0 TABLE
使用回收站中的BIN$的表名也能查询到表中数据
A
----------
1
2
3
4
5
6
7
8
0
sql> flashback table test to before drop;Flashback complete.
sql> select * from "BIN$387tHPzSqO/gQKjA3QEnzg==$0";
select * from "BIN$387tHPzSqO/gQKjA3QEnzg==$0"
*
ERROR at line 1:
ORA-00942: table or view does not exist
sql> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
TEST TABLE
sql> select * from test;
A
----------
1
2
3
4
5
6
7
8
0
2.闪回删除并将表重命名
BYS@bys1>select * from test5;
ID NAME
---------- ----------
2 b
BYS@bys1>drop table test5;
Table dropped.
BYS@bys1>flashback table test5 to before drop rename to test6;
Flashback complete.
BYS@bys1>select * from test6;
ID NAME
---------- ----------
2 b
3.回收站内查看删除的表,单个删除回收站里的表、全部清空回收站。
sql> create table test2 as select * fromtest1;
表已创建。
sql> insert into test2values('00002','baishan2');
已创建 1 行。
sql> select * from test2;
ID NAME
----- ----------
00001 baishan
00002 baishan2
sql> show recyclebin
sql> drop table test1;
表已删除。
删除表后查看回收站里,可以看到删除的表名,及删除时间
sql> showrecyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------------------------------------- ------------ -------------------
TEST1 BIN$kUfBJ3qcTSiLxqU6hmoEcw==$0TABLE 2013-02-10:12:17:11
sql> select * from cat;
TABLE_NAME TABLE_TYPE
------------------------------ -----------
BIN$kUfBJ3qcTSiLxqU6hmoEcw==$0 TABLE
TEST TABLE
TEST2 TABLE
sql> create table test3 as select * fromtest2;
表已创建。
sql> select * from cat;
TABLE_NAME TABLE_TYPE
------------------------------ -----------
BIN$kUfBJ3qcTSiLxqU6hmoEcw==$0 TABLE
TEST TABLE
TEST2 TABLE
TEST3 TABLE
DROP时使用purge参数删除的表被直接删除,不存放在回收站。
sql> drop table test2 purge;
表已删除。
sql> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------------------------------------- ------------ -------------------
TEST1 BIN$kUfBJ3qcTSiLxqU6hmoEcw==$0TABLE 2013-02-10:12:17:11
清空回收站
sql> purge recyclebin;
回收站已清空。
sql> drop table test2;
表已删除。
sql> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------------------------------------- ------------ -------------------
TEST2 BIN$UabVC8wiRx+GdsN4VT5bRw==$0TABLE 2013-02-12:17:10:46
sql> drop table test3;
表已删除。
sql> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------------------------------------- ------------ -------------------
TEST2 BIN$UabVC8wiRx+GdsN4VT5bRw==$0TABLE 2013-02-12:17:10:46
TEST3 BIN$n8CZgrwoSRO16TFB/dXOcA==$0TABLE 2013-02-12:17:11:35
清除回收站中的test2表。
sql> purge tabletest2;
表已清除。
sql> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------------------------------------- ------------ -------------------
TEST3 BIN$n8CZgrwoSRO16TFB/dXOcA==$0TABLE 2013-02-12:17:11:35
sql> flashback table test3 to before drop;
闪回完成。
sql> show recyclebin
sql> select count(*) from test3;
COUNT(*)
----------
2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。