flashback六大技术之flashback drop
环境:
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相关推荐
- flashback六大技术之flashback version query
环境: 23:47:03 hr@ORCL (^ω^) select * from v$version where rownum=1; BANNER -------------------------- ...
- flashback六大技术之flashback query
环境: 23:05:08 hr@ORCL (^ω^) select * from v$version where rownum=1; BANNER -------------------------- ...
- oracle flashback清理,Oracle的Flashback Drop闪回删除功能实践
Oracle的Flashback Drop闪回删除功能给出我们一种误DROP删除表的便捷恢复方式,实现这种功能的原理是Oracle的"回收站"(RecycleBin)功能.注意,如 ...
- oracle 10g delete flashback,10g新特性,flashback系列 来自piner
一 Flashback database falshback database是采用日志 falsgback drop是采用表空间的空间 其它的都是与undo有关... fashback是我对10g一 ...
- oracle flashback archive,ORACLE 11G flashback archive
ORACLE 11G flashback archive 闪回数据存档,它是由一个或多个表空间存储对指定表进行的更改,也可对数据库级别做闪回数据存档 create flashback archive的 ...
- oracle flashback table 参数,oralce flashback 使用方法总结
oralce flashback 使用方法总结: 一,关键知识点 在oracle 10g中,如果是使用drop 把表对象删除了,会把这个对象放在回收站里 查看回收站:select * from rec ...
- 以数据为中心,立足六大技术支柱,英特尔推动神经拟态计算、量子计算前沿探索
近日,英特尔中国研究院院长宋继强围绕 "英特尔如何构建技术基石,驱动未来计算"为主题做了演讲.他阐述了英特尔将坚持"以数据为中心"的目标,并指出依托于XPU产品 ...
- 重磅!英特尔终于挤出10nm芯片 六大技术战略,震动芯片届
戳蓝字"CSDN云计算"关注我们哦! 最近几日,对英特尔来说可谓大事连连,在北京,正举办20岁生日的英特尔中国研究院的隔壁楼房着了大火,而远在大洋彼岸,英特尔在加州Los Alto ...
- 元宇宙通证-十二、元宇宙 BIGANT 六大技术全景图
十二.元宇宙 BIGANT 六大技术全景图 正如互联网经济是架构在IT相关技术基础之上,元宇宙的崛起离不开庞大技术体系的支撑 我们研究了业界对元宇宙建设体系的各种分析和论述,总结提炼出支撑元宇宙的六大 ...
最新文章
- Oracle优化07-分析及动态采样-动态采样
- redis 3.x windows 集群搭建
- Centos7安装tengine-2.3.2版本
- java private 对象_[Java笔记]类的所有构造器都是private权限,就一定没有办法实例化它的对象了么?...
- linux 模拟时序,stm32GPIO模拟时序读写nandflash(K9F1G08U0B)问题
- linux下can调试工具canutils安装过程记录
- 设计模式(五)——建造者模式
- File类之常用方法
- MySQL中用给出的生日查询年龄的方法
- Intent的设想与天马行空
- 局域网 FTP建立,搭建一个简易的局域网服务器
- CenOS7 搭建无人值守安装服务器
- 关键字生成参考文案查找相似款,特卖淘宝达人有福了,自媒体时代的懒人助手
- 计算机处理器的CPU主频与指令条数
- SQLAlchemy批量操作数据
- 利用CSS制作通栏,css6——通栏平均分布
- css中浮动-----梅花
- 区块链论语:付币看真相是一个应用
- Processing基础——钟表(简单)
- day82_babasport第八天
热门文章
- PHP+Apache安装for windows
- linux jmap命令详解,jmap命令 linux jmap如何使用
- 在线PDF转换PPT,不用安装软件
- 错误代码 missing-signature 错误原因: 缺少签名参数-自查方案
- hive 启动报错java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%..
- 小福利,运用python里面的talib模块和cufflinks模块实现stock可视化分析
- python的静态局部变量怎么定义
- c++入门中,一道题展开的东西……继承与派生,多态和重载
- USB WDM驱动开发实例 bulkusb
- 线性回归算法梳理——Test1