闪回删除技术:

闪回删除技术,方便我们平时恢复有意无意地错误删除了的表,要知道,一般情况下,没有加purge强制删除表的
情况下,普通drop的表一般都会先放回数据库中得recyclebin(还有垃圾箱空间足够),相当window系统的垃圾箱。
我们可以先看看oracle数据库中recyclebin的结构,我们登录Scott用户
conn scott/tiger0520

SQL> desc user_recyclebin

 Name                                 Null?    Type

 ----------------------------    ------------- --------  

OBJECT_NAME                               NOT NULL VARCHAR2(30)

 ORIGINAL_NAME                                      VARCHAR2(32)

 OPERATION                                          VARCHAR2(9)

 TYPE                                               VARCHAR2(25)

 TS_NAME                                            VARCHAR2(30)

 CREATETIME                                         VARCHAR2(19)

 DROPTIME                                           VARCHAR2(19)

 DROPSCN                                            NUMBER

....
....
查看

Test1表中原有的数据:

SQL> select * from test1;

    DEPTNO DNAME          LOC

---------- -------------- -------------

        10 ACCOUNTING     NEW YORK

        20 RESEARCH       DALLAS

        30 SALES          CHICAGO

此时,我们删除表 Test1,
QL> drop table test1;


Table dropped.

此外,重新重新创建一个  test1,


SQL> create table test1(

  2  deptno number(2),

  3  dname varchar2(10),

  4  location varchar2(10));

Table created.

SQL> insert into test1 values(40,'OPERATIONS','BOSTON');

1 row created.

此时,我们想找回原来的test1表,先查看垃圾箱,
SQL> show recyclebin


ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME

---------------- ---------------          --------------- ------------

TEST1            BIN$PafEvIK1PW/gUwEAAH/iiQ==$0 TABLE        2016-09-29:23:02:38

以上红色的一长串字符锁代表的就是原来test1删除后的显示形式,
可以查看垃圾箱删除的表,发现表结构与数据跟删除前的一样(为了容易看,用双引号“”括起来),

SQL> desc "BIN$PafEvIK1PW/gUwEAAH/iiQ==$0";

 Name                                      Null?    Type

 --------------------     ----------------- --------  

DEPTNO                                             NUMBER(2)

 DNAME                                              VARCHAR2(14)

 LOC                                                VARCHAR2(13)

SQL> select * from "BIN$PafEvIK1PW/gUwEAAH/iiQ==$0";

    DEPTNO DNAME          LOC

---------- -------------- -------------

        10 ACCOUNTING     NEW YORK

        20 RESEARCH       DALLAS

        30 SALES          CHICAGO

此时从垃圾箱还原原来的表test1,在没有相同表名的情况下,还原后的表名跟删除前一样,
SQL> flashback table "BIN$PafEvIK1PW/gUwEAAH/iiQ==$0"


  2  to before drop;

flashback table "BIN$PafEvIK1PW/gUwEAAH/iiQ==$0"

*

ERROR at line 1:

ORA-38312: original name is used by an existing object

该出报错,是因为我们在删除原来的test1表后,又创建了一个表test1,为了能够还原,此时需要
对从垃圾箱还原的表重新命名,此时执行语句为以下,用rename to “新表名”,

SQL> flashback table "BIN$PafEvIK1PW/gUwEAAH/iiQ==$0"

  2  to before drop rename to test11;

Flashback complete.
此时查看垃圾箱,没有表在里面,已被还原,

SQL> select original_name,object_name,type,droptime

  2  from user_recyclebin;

no rows selected

由此,我们的闪回删除成功,找回来误删除的表格,容易解决了生成当中遇到类似的问题。






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

转载于:http://blog.itpub.net/31392094/viewspace-2125775/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值