视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Oracle下flashbackdroptable技术
2020-11-09 12:12:13 责编:小采
文档


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>
#########################

下载本文
显示全文
专题