1. 首页
  2. IT资讯

【Flashback】Flashback Drop闪回删除功能实践

Oracle的Flashback Drop闪回删除功能给出我们一种误DROP删除表的便捷恢复方式,实现这种功能的原理是Oracle的“回收站”(RecycleBin)功能。注意,如果被删除的表原先是存放在SYSTEM系统表空间上,则不支持此功能。1.Flashback Drop功能 恢复被错误drop掉的表。当一张表被删除后,依然可以查看被drop表的内容,是通过查看回收站中的内容实现的。2.实现原理 被删除的表将被存在一个叫recyclebin回收站的地方,当drop掉表后,实际上就是将改表改了个名字。3.与回收站有关的视图DBA_RECYCLEBINUSER_RECYCLEBINRECYCLEBIN4.显示当前用户曾经被drop掉的表简短信息SQL> show recyclebin5.清除回收站内容的条件1)表空间不足2)用户的空间配额不足3)purge命令4)使用flashback命令恢复表后,与之对应的回收站中的那条记录内容被清除。6.Flashback Drop语法SQL> FLASHBACK TABLE ft_1 TO BEFORE DROP;SQL> FLASHBACK TABLE “BIN$Z6gzDCWg7hfgQAB/AQAROQ==$0” TO BEFORE DROP; 上面两种方法都可以实现找回被删除表的功能。第一种方法是恢复到最后一次被删除的状态;第二种方法则可以对回收站中具体的一个对象进行闪回,用于一张表被多次删除后的恢复场景。7.Flashback Drop闪回删除功能实践(1).创建测试表ft_1sys@ora11g> conn secooler/secoolerConnected.secooler@ora11g> create table ft_1 as select * from all_objects;Table created.secooler@ora11g> select table_name from user_tables where table_name = ‘FT_1’;TABLE_NAME——————————FT_1(2).模拟drop掉ft_1表secooler@ora11g> drop table ft_1;Table dropped.(3).查看回收站,这里看到ft_1表已经在回收站中了secooler@ora11g> show recyclebin;ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME—————- —————————— ———— ——————-FT_1 BIN$vXtL504BE5vgQMKQt8Bnug==$0 TABLE 2012-04-12:20:14:24(4).演示一下查询功能secooler@ora11g> select count(*) from “BIN$vXtL504BE5vgQMKQt8Bnug==$0”; COUNT(*)———- 71256(5).闪回被drop掉的表secooler@ora11g> flashback table ft_1 to before drop;Flashback complete.secooler@ora11g> select table_name from user_tables where table_name = ‘FT_1’;TABLE_NAME——————————FT_1 这里在能确认回收站中哪个是要恢复的表时,也可以使用下面的命令进行恢复。secooler@ora11g> drop table ft_1;Table dropped.secooler@ora11g> show recyclebin;ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME—————- —————————— ———— ——————-FT_1 BIN$vXtL504IE5vgQMKQt8Bnug==$0 TABLE 2012-04-12:20:18:35secooler@ora11g> flashback table “BIN$vXtL504IE5vgQMKQt8Bnug==$0” to before drop;Flashback complete.secooler@ora11g> select table_name from user_tables where table_name = ‘FT_1’;TABLE_NAME——————————FT_1OK,到这里,被删除的表便被顺利的恢复回来。8.清除回收站内容的方法 如果您确定、一定以及肯定不想恢复这些表的时候,可以使用以下方法对回收站进行清理。1)清除当前用户的回收站SQL> purge recyclebin;SQL> purge user_recyclebin;2)清除指定表空间tbs_sec_d的回收站SQL> purge tablespace tbs_secooler_d;3)清除指定表空间tbs_sec_d,同时指定用户sec的回收站SQL> purge tablespace tbs_sec_d user sec;4)清除回收站中所有的内容(sys用户)SQL> purge dba_recyclebin9.不产生回收站数据的同时drop表方法 这种方法是彻底删除表的方法,使用前要考虑清楚。SQL> drop table ft_1 purge;10.小结 在使用Flashback Drop闪回删除功能之前要充分了解此项功能的实现原理,以及使用此项功能的条件和它的限制条件。闪回删除功能为我们提供了表被误DROP后的便捷恢复手段。Good luck.secooler12.04.12— The End —

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

主题测试文章,只做测试使用。发布者:布吉卡,转转请注明出处:http://www.cxybcw.com/195246.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code