Oracle下flashback drop table技术
flashback相当于是不完全恢复,drop table:被删除的表之似乎被改了表名,并没有真的被drop(windows的回收站)--gt;flash dr
flashback相当于是不完全恢复,drop table:被删除的表之似乎被改了表名,,并没有真的被drop(windows的回收站)-->flash dropped table 技术
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
EDU234 BIN$kW6q/O9z4TDgQKjAFAEkeg==$0 TABLE 2010-09-30:07:53:27
SQL> purge recyclebin;
Recyclebin purged.
SQL> show recyclebin
则没有了,所以我们删除表,如果没有加上purge,是可以利用闪回技术把表恢复回来的
SQL> create table tsql01 (a number);
Table created.
SQL> insert into tsql01 values (1); //创建一张表,插入值,并且提交
1 row created.
SQL> commit;
Commit complete.
SQL> show recyclebin //先看下回收站里有没有被回收的事物,有则purge recyclebin
SQL> drop table tsql01; //并没有purge table tsql01 purge
Table dropped.
SQL> show recyclebin //会出现在recyclebin里面,刚才被删除的表,只不过名字被换成乱七八糟了
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TSQL01 BIN$lIkhIeT93AfgQKjAWgAetg==$0 TABLE 2010-11-08:18:31:39
SQL> select * from "BIN$lIkhIeT93AfgQKjAWgAetg==$0"; //我们可以查找出这个值是多少
A
----------
1
SQL> select * from tsql01; //通过原先的表名是查不到的,因为已经被删除了
select * from tsql01
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> flashback table tsql01 to before drop; //闪回删除表恢复,不需要开启闪回的功能
Flashback complete.
SQL> conn /as sysdba
Connected.
SQL> select flashback_on from v$database; //闪回功能是关闭的
FLASHBACK_ON
------------------
NO
SQL>
SQL> select * from tsql01; //表已经恢复了
A
----------
1
所以如果我们确定那张表不要了,又为了不让别人看得见,那就加上purge吧
SQL> create table tsql02 (a number);
Table created.
SQL> insert into tsql02 values(2);
1 row created.
SQL> commit;
Commit complete.
SQL> drop table tsql02 purge;//删除的时候加上了purge
Table dropped.
SQL> show recyclebin //则不会进入recyclebin,recycle默认是开着的
SQL>
#########################
推荐阅读
-
Oracle下flashback drop table技术
-
Oracle 数据库中 drop table 与purge
-
Oracle PL/SQL之Flashback Table与外键约束
-
oracle的drop table if exists
-
CentOS下安装Oracle 10g 技术文档
-
oracle drop table(表)数据恢复方法
-
oracle drop table(表)数据恢复方法
-
在Oracle11.2.0.1.0下dbms_stats.gather_table_stats收集直方图不准
-
MySQL5.7下面,误操作导致的drop table db1.tb1; 的恢复方法:
-
Oracle flashback闪回技术讲解