ITPub博客

首页 > 数据库 > Oracle > 闪回表删除(实例讲解)

闪回表删除(实例讲解)

原创 Oracle 作者:oracle_zsx 时间:2013-08-22 11:37:04 0 删除 编辑
一、
查看回收站功能是否开启(每个用户都有自己的回收站,sys也有)
1、
查看系统的回收站:
sql > conn / as sysdba
show parameter recycle
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
buffer_pool_recycle                  string
db_recycle_cache_size                big integer 0
recyclebin                           string      on
2、
查看hr用户的回收站
conn hr/hr
show parameter recycle
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
recyclebin                           string      ON
 
二、
打开和关闭回收站功能(也分用户,系统和其他用户打开和关闭方法有一点区别)
1、
关闭系统回收站(默认是打开的)
alter system set recyclebin = off;
System altered.
打开系统回收站功能
alter system set recyclebin = on;
System altered.
2、
关闭其他用户的回收站:
alter session set recyclebin = off;
Session altered.
打开其他用户的回收站:
alter session set recyclebin = on;
Session altered.
 
三、
查看回收站是否有以前删除的行:(可以看系统的也可以看用户的)
方法一、
(查看回收站里面的详细信息)
select * from recyclebin;
OBJECT_NAME                    ORIGINAL_NAME                    OPERATION
------------------------------ -------------------------------- ---------
TYPE                      TS_NAME                        CREATETIME
------------------------- ------------------------------ -------------------
DROPTIME               DROPSCN PARTITION_NAME                   CAN CAN
------------------- ---------- -------------------------------- --- ---
   RELATED BASE_OBJECT PURGE_OBJECT      SPACE
---------- ----------- ------------ ----------
BIN$3fIKmaq6Y9TgQAB/AQAVHw==$0 ZSX                              DROP
TABLE                     USERS                          2013-05-30:11:20:19
2013-05-30:11:20:41     682297                                  YES YES
     52743       52743        52743          8
方法二、
查看回收站里面的信息:
show recyclebin
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
ZSX              BIN$3fIKmaq6Y9TgQAB/AQAVHw==$0 TABLE        2013-05-30:11:20:41
 
四、
关闭回收站功能后,再次删除的表不会放在回收站了,没有显示;
但是关闭之前删除的,还是会显示出来的
 

五、
查询回收站里面的对象中信息:
SQL> select * from "BIN$3fIKmaq6Y9TgQAB/AQAVHw==$0";   (一定要加引号)
        ID
----------
         2
 

六、
闪回回收站中的表:
SQL> flashback table zsx to before drop;
Flashback complete.
SQL> select * from zsx;
        ID
----------
         2
 

七、
注意:
1、
如果你的回收站中有两张同名的表,一张是以前删除的,一张是现在删除,那么你使用闪回删除的功能时,会先删除最近的这张表
也就是你现在刚删除的这个。
2、
如果你的回收站有张表和你现在的用户中有张表的名字相同,那么你闪回的时候要重命名
方法一、
SQL> flashback table zsx to before drop rename to zsx2;
Flashback complete.
方法二、
指定对象闪回
SQL> show recyclebin
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
ZSX2             BIN$3fIKmaq8Y9TgQAB/AQAVHw==$0 TABLE        2013-05-30:11:44:35
SQL> flashback table "BIN$3fIKmaq8Y9TgQAB/AQAVHw==$0" to before drop;
Flashback complete.
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29107230/viewspace-769023/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-08-22

  • 博文量
    25
  • 访问量
    134552