ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 闪回技术——闪回已经删除的表

闪回技术——闪回已经删除的表

原创 Linux操作系统 作者:oracleclub 时间:2011-11-30 13:19:28 0 删除 编辑
快速闪回技术的引入:
硬件发展,硬盘容量增加价格下降,oracle想用“空间换时间”

闪回已经删除的表

conn / as sysdba
show parameter bin
alter system set recyclebin = on;——把回收站打开

================================
删除一个dept_test1表,看回收站中是否存在,再将其从回收站中删掉
SQL> conn scott/tiger
Connected.

================================
SQL> create table dept_test1 as select * from dept;

Table created.

查看该用户下所有的表和视图
SQL> select * from cat ;

TABLE_NAME                     TABLE_TYPE
------------------------------ -----------
DEPT                           TABLE
BONUS                          TABLE
SALGRADE                       TABLE
BIN$suud3fyidgvgQKjAZQBkmQ==$0 TABLE
DEPT_TEST1                     TABLE


SQL> drop table DEPT_TEST1;

Table dropped.

================================

SQL> show recyclebin
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
DEPT_TEST1       BIN$suud3fyjdgvgQKjAZQBkmQ==$0 TABLE        2011-11-30:11:52:35
EMP              BIN$suud4fyidgvgQKjAZQBkmQ==$0 TABLE        2011-11-30:11:49:02
其实oracle将DEPT_TEST1打了个标记BIN$suud3fyjdgvgQKjAZQBkmQ==$0而已,并记录在数据字典回收站recyclebin这张表中而已,

SQL> select * from cat;

TABLE_NAME                     TABLE_TYPE
------------------------------ -----------
DEPT                           TABLE
BONUS                          TABLE
SALGRADE                       TABLE
BIN$suud3fyjdgvgQKjAZQBkmQ==$0 TABLE
BIN$suud3fyidgvgQKjAZQBkmQ==$0 TABLE



================================

SQL> purge table DEPT_TEST1
  2  ;

Table purged.

SQL> show recyclebin ——已经删掉
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
EMP              BIN$suud3fyidgvgQKjAZQBkmQ==$0 TABLE        2011-11-30:11:49:02

================================

SQL> purge recyclebin; —— 清空回收站

Recyclebin purged.

SQL> show recyclebin ——是空了


查看被删除的表的表空间通过user_recyclebin试图

例子:
SQL> drop table DEPT_TEST2;

Table dropped.

SQL> show recyclebin;
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
DEPT_TEST2       BIN$suvUrNSpdpXgQKjAZQBk8Q==$0 TABLE        2011-11-30:12:04:21

SQL> select object_name,ts_name,space from user_recyclebin;

OBJECT_NAME                    TS_NAME                             SPACE
------------------------------ ------------------------------ ----------
BIN$suvUrNSpdpXgQKjAZQBk8Q==$0 USERS                                   8

SQL> select * from DEPT_TEST2;——查看表,确实被删除了
select * from DEPT_TEST2
              *
ERROR at line 1:
ORA-00942: table or view does not exist

SQL> flashback table DEPT_TEST2 to before drop;——闪回一张表
SQL> flashback table BIN$suvUrNSpdpXgQKjAZQBk8Q==$0 to before drop;
两条语句的效果一样,因为DEPT_TEST2和BIN$suvUrNSpdpXgQKjAZQBk8Q==$0对应

SQL> show recyclebin;——查看回收站是空的
SQL>

SQL> select * from cat;——表已经回来了

TABLE_NAME                     TABLE_TYPE
------------------------------ -----------
DEPT                           TABLE
BONUS                          TABLE
SALGRADE                       TABLE
DEPT_TEST2                     TABLE

drop table dept purge ——直接删除表,不放入回收站
SQL> drop table DEPT_TEST2 purge;

Table dropped.

SQL> show recyclebin——回收站中没东西
SQL> select * from cat;——检查,确实表删除了

TABLE_NAME                     TABLE_TYPE
------------------------------ -----------
DEPT                           TABLE
BONUS                          TABLE
SALGRADE                       TABLE

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

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

注册时间:2011-11-22

  • 博文量
    61
  • 访问量
    82187