ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle 10g 闪回表恢复

oracle 10g 闪回表恢复

原创 Linux操作系统 作者:liuxingyubmw 时间:2009-07-19 12:50:52 0 删除 编辑

         oracle 从10g开始增加了闪回功能。9i 用drop命令删除表之后很难恢复,10g drop之后并未真正删除,而是放入了闪回区域,如果是误操作,可以马上从闪回区域恢复误删除的的表。今天使用了一下该功能,还是很方便的。
        下面模拟在实验环境操作了一下,关键字 purge flashback。
版本查看
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

创建test1表
SQL> create table test1
  2  (id number,
  3   name varchar2(20)
  4  );

创建test2表
SQL> create table test2
  2  (id number,
  3   name varchar2(20)
  4  );
 
 在test1表中插入一条记录
SQL> insert into test1
  2  values (1, 'jack');

1 row created.

SQL> commit;

Commit complete.

查看表情况
SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
TEST1                          TABLE
TEST2                          TABLE

查看闪回区表情况,没有记录。
SQL> select * from user_recyclebin;

no rows selected

删除test1表
SQL> drop table test1;

Table dropped.

查看表情况,test1表已经没有了
SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
TEST2                          TABLE

查看闪回区,存在test1表
SQL> select object_name, original_name, droptime, createtime from recyclebin;

OBJECT_NAME                    ORIGINAL_NAME     DROPTIME            CREATETIME
------------------------------ ----------------- ------------------- -------------------
BIN$bweC0B3J2eLgQKjAZTgf0g==$0 TEST1             2009-07-19:12:32:36 2009-07-19:12:20:05

恢复TEST1表
SQL> flashback table test1 to before drop;    

Flashback complete.

查看闪回区表情况,没有记录。
SQL> select object_name, original_name, droptime, createtime from recyclebin;

no rows selected

查看表情况,test1表已经恢复回来
SQL> select * from tab where tname like upper('test%');

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
TEST1                          TABLE
TEST2                          TABLE

表中记录也都在
SQL> select * from test1;

        ID NAME
---------- --------------------
         1 jack


在闪回区彻底删除TEST1表
SQL> drop table test1;

Table dropped.

SQL> select * from tab where tname like upper('test%');

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
TEST2                          TABLE

SQL> select object_name, original_name, droptime, createtime from recyclebin;

OBJECT_NAME                    ORIGINAL_NAME                    DROPTIME            CREATETIME
------------------------------ -------------------------------- ------------------- -------------------
BIN$bweC0B3K2eLgQKjAZTgf0g==$0 TEST1                            2009-07-19:12:42:25 2009-07-19:12:20:05

在闪回区彻底删除表
SQL> purge  table test1;

Table purged.

SQL> select object_name, original_name, droptime, createtime from recyclebin;

no rows selected

不进闪回区直接删除TEST2表
SQL> drop table test2  purge;

Table dropped.

查看表已经没有
SQL> select * from tab;

no rows selected

闪回区中也没有任何记录
SQL> select object_name, original_name, droptime, createtime from recyclebin;

no rows selected


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

上一篇: IOzone 学习
请登录后发表评论 登录
全部评论

注册时间:2009-07-02

  • 博文量
    8
  • 访问量
    23069