博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle Flashback Drop 测试
阅读量:4071 次
发布时间:2019-05-25

本文共 2724 字,大约阅读时间需要 9 分钟。

 Oracle的Flashback Drop闪回删除功能给出我们一种误DROP删除表的便捷恢复方式,实现这种功能的原理是Oracle的“回收站”(RecycleBin)功能。注意,如果被删除的表原先是存放在SYSTEM系统表空间上,则不支持此功能。
1.Flashback Drop功能
  恢复被错误drop掉的表。当一张表被删除后,依然可以查看被drop表的内容,是通过查看回收站中的内容实现的。
2.实现原理
  被删除的表将被存在一个叫recyclebin回收站的地方,当drop掉表后,实际上就是将改表改了个名字。
3.与回收站有关的视图
DBA_RECYCLEBIN
USER_RECYCLEBIN
RECYCLEBIN
4.显示当前用户曾经被drop掉的表简短信息
SQL> show recyclebin
5.清除回收站内容的条件
1)表空间不足
2)用户的空间配额不足
3)purge命令
4)使用flashback命令恢复表后,与之对应的回收站中的那条记录内容被清除。
6.Flashback Drop语法
SQL> FLASHBACK TABLE flash TO BEFORE DROP;
SQL> FLASHBACK TABLE "BIN$SHP/9O8THArgUym0qMC6vw==$0" TO BEFORE DROP;
  上面两种方法都可以实现找回被删除表的功能。第一种方法是恢复到最后一次被删除的状态;第二种方法则可以对回收站中具体的一个对象进行闪回,用于一张表被多次删除后的恢复场景。
7.Flashback Drop 闪回删除功能实践
1).创建测试表flash
SQL> create table flash as select * from all_objects;
Table created.
SQL> select table_name from user_tables where table_name='FLASH';
TABLE_NAME
--------------------------------------------------------------------------------
FLASH
2).drop 掉flash表
SQL> drop table flash;
Table dropped.
3).查看回收站,这里可以看到flash表已经在回收站中了
SQL> show recyclebin
ORIGINAL NAME     RECYCLEBIN NAME        OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
FLASH         BIN$SHP/9O8THArgUym0qMC6vw==$0 TABLE         2017-02-14:08:54:01
4).查询该表
SQL> select count(*) from "BIN$SHP/9O8THArgUym0qMC6vw==$0";
  COUNT(*)
----------
     88859
5).闪回被drop掉的表
SQL> flashback table flash to before drop;
Flashback complete.
SQL> select table_name from user_tables where table_name='FLASH';
TABLE_NAME
--------------------------------------------------------------------------------
FLASH
SQL> show recyclebin
注意:这里在能确认回收站中哪个是要恢复的表时,也可以使用下面的命令进行恢复。
SQL> drop table flash;
Table dropped.
SQL> show recyclebin;
ORIGINAL NAME     RECYCLEBIN NAME        OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
FLASH         BIN$SHP/9O8aHArgUym0qMC6vw==$0 TABLE         2017-02-14:08:55:52
SQL> flashback table "BIN$SHP/9O8aHArgUym0qMC6vw==$0" to before drop;
Flashback complete.
SQL> select table_name from user_tables where table_name='FLASH';
TABLE_NAME
--------------------------------------------------------------------------------
FLASH
SQL> show recyclebin
至此,被删除的flash表被顺利的恢复回来。
8.清除回收站内容的方法
1)该步骤要谨慎执行,一定要确认回收站里的内容可以清楚,否则一旦清楚回收站,怎表就不能闪回回去了
SQL> purge recyclebin;
Recyclebin purged;
SQL> purge user_recyclebin;
Recyclebin purged.
2).清除指定表空间test的回收站
SQL> purge tablespace test;
Tablespace purged.
3).清除指定表空间test,同时指定用户test的回收站
SQL> purge tablespace test user test;
Tablespace purged.
4)清楚回收站中所有的内容(sys用户执行)
SQL> purge dba_recyclebin;
DBA Recyclebin purged.
9.不产生回收站数据的同时drop表方法
使用之前一定要慎重
SQL> drop table flash purge;
Table dropped.
10.总结
在使用Flashback Drop闪回删除功能之前要充分了解此项功能的实现原理,以及使用此项功能的条件和它的限制条件。闪回删除功能为我们提供了表被误DROP后的便捷恢复手段。

转载地址:http://tkhji.baihongyu.com/

你可能感兴趣的文章
管理出效益
查看>>
感谢工程二部的所有员工!!!
查看>>
MINIGUI学习笔记之安装使用
查看>>
MINIGUI与共享内存
查看>>
浮点型(FLOAT)与CHAR型转换
查看>>
何为团队?
查看>>
如何做好一个项目经理?
查看>>
寻求工控、自动化合作者建立工控网站!(长期有效)
查看>>
MiniGUI 2.0.3商业版本安装
查看>>
REDHAT 网络通讯源码
查看>>
LINUX 串口通讯源码
查看>>
浙西2日游(4.21-22)
查看>>
LINUX起死回生记
查看>>
网站规划之初稿 (工控帮 http://www.opc-china.com)
查看>>
网站系统之咨询(网奇行业门户)(如此做法怎么能对的起“中国建站第一品牌”)
查看>>
数字电影《大寒小寒》(淳朴,无私)
查看>>
讨论:国内企业对开发的投入是多少
查看>>
LEX与YACC 词汇表
查看>>
个人六年工作回顾
查看>>
春节感想(沂蒙山区的变化)之2008
查看>>