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 ft_1 TO BEFORE DROP;

SQL> FLASHBACK TABLE "BIN$Z6gzDCWg7hfgQAB/AQAROQ==$0" TO BEFORE DROP;

上面两种方法都可以实现找回被删除表的功能。第一种方法是恢复到最后一次被删除的状态;第二种方法则可以对回收站中具体的一个对象进行闪回,用于一张表被多次删除后的恢复场景。

7.Flashback Drop闪回删除功能实践

(1).创建测试表ft_1

sys@ora11g> conn secooler/secooler

Connected.

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:35

secooler@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_1

OK,到这里,被删除的表便被顺利的恢复回来。

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_recyclebin

9.不产生回收站数据的同时drop表方法

这种方法是彻底删除表的方法,使用前要考虑清楚。

SQL> drop table ft_1 purge;

10.小结

在使用Flashback Drop闪回删除功能之前要充分了解此项功能的实现原理,以及使用此项功能的条件和它的限制条件。闪回删除功能为我们提供了表被误DROP后的便捷恢复手段。

oracle flashback清理,Oracle的Flashback Drop闪回删除功能实践相关推荐

  1. 【Flashback】Flashback Database闪回数据库功能实践

    [Flashback]Flashback Database闪回数据库功能实践 上一篇 / 下一篇  2012-04-07 21:16:40 / 个人分类:备份与恢复 查看( 278 ) / 评论( 2 ...

  2. Oracle:闪回,闪回表,闪回删除,闪回版本查询,闪回事务查询

    SQL> --SCN(系统改变号) sysdate的对应关系 SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),timestamp_ ...

  3. oracle中闪回和回滚,Oracle Flashback 闪回查询功能9i和10g的区别

    Oracle从9i开始提供了基于回滚段的闪回查询(Flashback Query)功能,可用于恢复错误的DML操作.在Oracle 10g中对闪回查询做了较大改进,不再局限于闪回查询,还可用于恢复错误 ...

  4. oracle清除bin,Oracle recyclebin详解(闪回删除的表)

    在SOA应用数据库上运用DBMS_REDEFITION包进行在线非分区表转换分区表操作时,本想DROP掉建的临时表cube_scope_temp不小心后面忘记加"temp"直接执行 ...

  5. oracle导出自增设置,oracle008:oracle自增,自适应,数据闪回,导入导出

    oracle008:oracle自增,自适应,数据闪回,导入导出 oracle008:oracle自增,自适应,数据闪回,导入导出 一,oracle数据自增 在MySQL中自增使用主键和自增来实现,但 ...

  6. oracle 闪回查询,闪回版本查询,闪回事务查询,闪回表,闪回删除,闪回数据库

    文章目录 1. 闪回查询 1.1. 闪回时间查询 1.2. 闪回scn查询 (1) 获取scn号的方法 (2) 闪回scn查询命令 2. 闪回版本查询 3. 闪回事务查询 4. 闪回表 5. 闪回删除 ...

  7. [Flashback]开启数据库闪回数据库功能

    Flashback是Oracle中一个重要的功能,想要使用闪回数据库功能,需要将数据库置于闪回数据库的状态. 1.检查数据库是否开启归档状态 SQL> archive log list; Dat ...

  8. oracle 10g的闪回删除与回收站

    闪回删除与回收站的简介 1.正常情况下删除一个表 drop table test1 这是表会被放置在recyclebin(回收站) 注意:这里如果执行了"commit"提交操作.下 ...

  9. 闪回的用途与实战(闪回表,闪回删除,闪回重名删除,闪回版本查询)

    闪回可以做的操作有如下几种类型: 1.当数据错误删除,并且提交时(flashback table) 2.当错误删除了一张表drop table(flashback drop) 3.通过闪回获取表的历史 ...

最新文章

  1. DropDownList联动
  2. 笔记整理之 SHELL 变量
  3. azkaban mysql参数_azkaban参数详解
  4. Chromium 内核新款 Edge 浏览器对比评测,微软找回面子全靠它了
  5. 数学建模相关知识梳理
  6. 服务器上需要高性能显卡吗,英特尔要做独立显卡 只因服务器市场太重要
  7. dpdk 驱动移植叩开 kni 模块那些黑暗的角落
  8. Perl 常用正则匹配
  9. 分享Silverlight/WPF/Windows Phone一周学习导读(06月06日-06月11日)
  10. 光学定位与追踪技术_光学跟踪技术定位精准罗技M90鼠标仅32
  11. 猴子吃桃问题:一只小猴子摘了若干桃子,每天吃现有桃的一半多一个,到第10天时就只有一个桃子了,求原有多少个桃?请编程实现。(C++)(迭代法)
  12. 基于Python的招聘推荐与薪资预测系统的设计与实现
  13. PLSQL Developer几个可能的隐患
  14. 层次分析法(AHP)基础概念整理+步骤总结
  15. 基于树莓派(ARM)的人脸识别摄像头(QT5.8+OPENCV3.4.5)开发总结
  16. Parity Game(并查集)
  17. android的发音功能实现,Android开发之文本内容自动朗读功能实现方法
  18. macOS系统更新下载太慢?官方原版系统高速下载教程
  19. html给复制的英文文献换空格符
  20. 复化梯形公式求椭圆周长C语言,C语言编程解线性,非线性方程,龙贝格算法.docx

热门文章

  1. 用假名印名片犯法吗_用简单的javascript学习假名
  2. “大数据+交通管理”,未来可期?
  3. 一次函数在c语言中,一次函数练习题及答案(较难)
  4. android串口通信-rs232
  5. linux文件目录:/etc/hosts文件详解
  6. 记录一次C语言制作简易病毒实验
  7. QT 常用布局管理器
  8. 基于三重动态调整的花授粉算法-附代码
  9. k3家族之k3s,k3d,k3os,k3d
  10. cidr php,PHP怎么实现ip2cidr(生成多个cidr)