环境:

sys@ORCL> select * from v$version where rownum=1;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
sys@ORCL> !uname -a
Linux localhost.localdomain 2.6.18-308.el5xen #1 SMP Fri Jan 27 17:59:00 EST 2012 i686 i686 i386 GNU/Linux

1 recyclebin

在oracle 10g引入了recyclebin,对于一个对象的删除,oracle先通过修改数据字典,将其及其关联对象(索引、约束等)重命名,然后放入recyclebin。被删除的对象将占用创建时的同样的空间大小,当出现空间压力时,这个空间才会被慢慢回收。但是当对象被删除之后,这部分空间会计入free space,被看作是自由空间,可重用,在dba_free_space可查。如果能够确认删除对象,则可以使用purge命令完全删除,这样可以减少动态空间回收带来的性能代价。

每个用户都有属于自己的一个recyclebin。查看recyclebin的方法很多,最常用的是select * from recyclebin;最简单的是show recyclebin。需要注意的是show recyclebin只列出基表,被删除的表的关联对象则不显示。recyclebin里对象的名称也可以被当做普通名称一样使用,唯一区别是,无法被rename。

● 表空间无足够的空闲空间,并且没有新的空间可作扩展操作
          ● 该表空间又要创建新的对象,需要分配空间
          在这种情形下就会造成recyclebin的空间压力,这是触发recyclebin主动删除对象的唯一原因。

清空recyclebin中对象
           ㈠ 修改初始化参数禁用或启用recyclebin,会话级或者实例级皆可。
                 缺省该参数是on

hr@ORCL> show parameter recyclebin
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
recyclebin                           string      on
hr@ORCL> create table tt as select * from jobs;
Table created.
hr@ORCL> show parameter recyclebin
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
recyclebin                           string      on
hr@ORCL> alter session set recyclebin=off;
Session altered.
hr@ORCL> drop table tt;
Table dropped.
hr@ORCL> select * from recyclebin;
no rows selected

㈡ drop ..purge;
         ㈢ 清空表空间现有对象
              方式有三:
                             purge table original name或者recyclebin name
                             purge tablespace tbs_name
                             purge recylebin

2 注意事项

① flashback drop不能恢复参照完整性(即主外键关系),恢复之后,该约束为disable状态,需手动处理
             ② 所操作的表必须是本地表空间管理
             ③ 被恢复的表的关联对象(索引、约束等),其名称不会自动恢复成删除前的名称,而是系统自动生成。需DBA手动改名。另外,位图索引、物化视图不能被恢复。
             ④ 当空间不足时,被删除表的索引会优先被清理
             ⑤ flashback drop支持同时操作多个表,以逗号分隔
             ⑥ flashback drop只能恢复drop命令删除的表

3 实验

㈠ 最简单的删除表恢复

hr@ORCL> drop table t2;
Table dropped.
hr@ORCL> select object_name,original_name from recyclebin;
OBJECT_NAME                    ORIGINAL_NAME
------------------------------ --------------------------------
BIN$yUcFsAG7oGvgQAB/AQAjTg==$0 T2
hr@ORCL> flashback table t2 to before drop;
Flashback complete.
hr@ORCL> select count(*) from t2;
COUNT(*)
----------
19
hr@ORCL> select object_name,original_name from recyclebin;
no rows selected

㈡ 稍微复杂一点点的表恢复
               如果要恢复的表在当前schema中已经存在同名的表,直接恢复会报错

hr@ORCL> drop table t2;
Table dropped.
hr@ORCL> create table t2 as select * from jobs;
Table created.
hr@ORCL> flashback table t2 to before drop;
flashback table t2 to before drop
*
ERROR at line 1:
ORA-38312: original name is used by an existing object
hr@ORCL> flashback table t2 to before drop rename to t2_recov;
Flashback complete.
hr@ORCL> select count(*) from t2_recov;
COUNT(*)
----------
19

㈢ 从多次删除中恢复
               多个同名表一起进recyclebin,后进先出

hr@ORCL> drop table t2;
Table dropped.
hr@ORCL> alter table t2_recov rename to t2;
Table altered.
hr@ORCL> drop table t2;
Table dropped.
hr@ORCL> select object_name,original_name,droptime from recyclebin;
OBJECT_NAME                    ORIGINAL_NAME                    DROPTIME
------------------------------ -------------------------------- -------------------
BIN$yUcFsAG/oGvgQAB/AQAjTg==$0 T2                               2012-09-09:23:47:12
BIN$yUcFsAHBoGvgQAB/AQAjTg==$0 T2                               2012-09-09:23:48:42
hr@ORCL> flashback table t2 to before drop;
Flashback complete.
hr@ORCL> select object_name,original_name,droptime from recyclebin;
OBJECT_NAME                    ORIGINAL_NAME                    DROPTIME
------------------------------ -------------------------------- -------------------
BIN$yUcFsAG/oGvgQAB/AQAjTg==$0 T2                               2012-09-09:23:47:12
hr@ORCL> select * from tab;
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
REGIONS                        TABLE
COUNTRIES                      TABLE
LOCATIONS                      TABLE
DEPARTMENTS                    TABLE
JOBS                           TABLE
EMPLOYEES                      TABLE
JOB_HISTORY                    TABLE
EMP_DETAILS_VIEW               VIEW
LOGMNR_TEST                    TABLE
BIN$yUcFsAG/oGvgQAB/AQAjTg==$0 TABLE
T2                             TABLE
11 rows selected.
hr@ORCL> drop table t2;
Table dropped.
hr@ORCL> select object_name,original_name,droptime from recyclebin;
OBJECT_NAME                    ORIGINAL_NAME                    DROPTIME
------------------------------ -------------------------------- -------------------
BIN$yUcFsAHDoGvgQAB/AQAjTg==$0 T2                               2012-09-09:23:52:39
BIN$yUcFsAG/oGvgQAB/AQAjTg==$0 T2                               2012-09-09:23:47:12
hr@ORCL> flashback table "BIN$yUcFsAG/oGvgQAB/AQAjTg==$0" to before drop;
Flashback complete.
hr@ORCL> select count(*) from t2;
COUNT(*)
----------
19
hr@ORCL> select object_name,original_name,droptime from recyclebin;
OBJECT_NAME                    ORIGINAL_NAME                    DROPTIME
------------------------------ -------------------------------- -------------------
BIN$yUcFsAHDoGvgQAB/AQAjTg==$0 T2                               2012-09-09:23:52:39

flashback六大技术之flashback drop相关推荐

  1. flashback六大技术之flashback version query

    环境: 23:47:03 hr@ORCL (^ω^) select * from v$version where rownum=1; BANNER -------------------------- ...

  2. flashback六大技术之flashback query

    环境: 23:05:08 hr@ORCL (^ω^) select * from v$version where rownum=1; BANNER -------------------------- ...

  3. oracle flashback清理,Oracle的Flashback Drop闪回删除功能实践

    Oracle的Flashback Drop闪回删除功能给出我们一种误DROP删除表的便捷恢复方式,实现这种功能的原理是Oracle的"回收站"(RecycleBin)功能.注意,如 ...

  4. oracle 10g delete flashback,10g新特性,flashback系列 来自piner

    一 Flashback database falshback database是采用日志 falsgback drop是采用表空间的空间 其它的都是与undo有关... fashback是我对10g一 ...

  5. oracle flashback archive,ORACLE 11G flashback archive

    ORACLE 11G flashback archive 闪回数据存档,它是由一个或多个表空间存储对指定表进行的更改,也可对数据库级别做闪回数据存档 create flashback archive的 ...

  6. oracle flashback table 参数,oralce flashback 使用方法总结

    oralce flashback 使用方法总结: 一,关键知识点 在oracle 10g中,如果是使用drop 把表对象删除了,会把这个对象放在回收站里 查看回收站:select * from rec ...

  7. 以数据为中心,立足六大技术支柱,英特尔推动神经拟态计算、量子计算前沿探索

    近日,英特尔中国研究院院长宋继强围绕 "英特尔如何构建技术基石,驱动未来计算"为主题做了演讲.他阐述了英特尔将坚持"以数据为中心"的目标,并指出依托于XPU产品 ...

  8. 重磅!英特尔终于挤出10nm芯片 六大技术战略,震动芯片届

    戳蓝字"CSDN云计算"关注我们哦! 最近几日,对英特尔来说可谓大事连连,在北京,正举办20岁生日的英特尔中国研究院的隔壁楼房着了大火,而远在大洋彼岸,英特尔在加州Los Alto ...

  9. 元宇宙通证-十二、元宇宙 BIGANT 六大技术全景图

    十二.元宇宙 BIGANT 六大技术全景图 正如互联网经济是架构在IT相关技术基础之上,元宇宙的崛起离不开庞大技术体系的支撑 我们研究了业界对元宇宙建设体系的各种分析和论述,总结提炼出支撑元宇宙的六大 ...

最新文章

  1. Oracle优化07-分析及动态采样-动态采样
  2. redis 3.x windows 集群搭建
  3. Centos7安装tengine-2.3.2版本
  4. java private 对象_[Java笔记]类的所有构造器都是private权限,就一定没有办法实例化它的对象了么?...
  5. linux 模拟时序,stm32GPIO模拟时序读写nandflash(K9F1G08U0B)问题
  6. linux下can调试工具canutils安装过程记录
  7. 设计模式(五)——建造者模式
  8. File类之常用方法
  9. MySQL中用给出的生日查询年龄的方法
  10. Intent的设想与天马行空
  11. 局域网 FTP建立,搭建一个简易的局域网服务器
  12. CenOS7 搭建无人值守安装服务器
  13. 关键字生成参考文案查找相似款,特卖淘宝达人有福了,自媒体时代的懒人助手
  14. 计算机处理器的CPU主频与指令条数
  15. SQLAlchemy批量操作数据
  16. 利用CSS制作通栏,css6——通栏平均分布
  17. css中浮动-----梅花
  18. 区块链论语:付币看真相是一个应用
  19. Processing基础——钟表(简单)
  20. day82_babasport第八天

热门文章

  1. PHP+Apache安装for windows
  2. linux jmap命令详解,jmap命令 linux jmap如何使用
  3. 在线PDF转换PPT,不用安装软件
  4. 错误代码 missing-signature 错误原因: 缺少签名参数-自查方案
  5. hive 启动报错java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%..
  6. 小福利,运用python里面的talib模块和cufflinks模块实现stock可视化分析
  7. python的静态局部变量怎么定义
  8. c++入门中,一道题展开的东西……继承与派生,多态和重载
  9. USB WDM驱动开发实例 bulkusb
  10. 线性回归算法梳理——Test1