`
sjk2013
  • 浏览: 2189691 次
文章分类
社区版块
存档分类
最新评论

Oracle Flashback技术总结(二)—— Flashback DROP

 
阅读更多

二、FlashbackDROP

FlashbackDrop是从Oracle10g开始出现的,用于恢复用户误删除的对象(包括表,索引等),这个技术依赖于TablespaceRecycleBin(表空间回收站),这个功能和windows的回收站非常类似。

Flashback不支持system表空间下的对象,不能从回收站里拿到。故使用SYS或者SYSTEM用户登陆时,showrecyclebin为空。

Flashback table语法:


1. Flashback Drop 设置

从Oracle10g开始,每个表空间都会有一个叫作回收站的逻辑区域,当用户执行drop命令时,被删除的表和表的关联对象(包括索引,约束,触发器,LOB段,LOBindex段)不会被物理删除,这些对象先转移到回收站中,这就给用户提供了一个恢复的可能。

初始化参数recyclebin用于控制是否启用recyclebin功能,缺省是ON,可以使用OFF关闭。

SQL>showparameterrecycle

NAMETYPEVALUE

-----------------------------------------------------------------------------

buffer_pool_recyclestring

db_recycle_cache_sizebiginteger0

recyclebinstringon

禁用该功能:

SQL>altersystemsetrecyclebin=off; (10g)

SQL>altersystemsetrecyclebin=on;(10g)

SQL>alter system set recyclebin=off deferred; ( 11g ,deferred表示延时,需要重启以后生效)

SQL>alter system set recyclebin=on deferred; (11g)

SQL>altersessionsetrecyclebin=off; (10/11g)

SQL>altersessionsetrecyclebin=on;(10/11g)

禁用后删除的对象将直接删除,不会写到Recycle中,当然在删除时,指定

purge参数,表也将直接删除,不会写到recyclebin中。

SQL>droptablenamepurge;

查看recyclebin中的对象列表:

SQL>select*fromA;

ID

----------

1

2

3

SQL>droptableA;

表已删除。

SQL>showrecyclebin

ORIGINALNAMERECYCLEBINNAMEOBJECTTYPEDROPTIME

----------------------------------------------------------------------------

ABIN$RWXQQcTPRde0ws4h9ewJcg==$0TABLE2009-10-15:12:44:33

查看recyclebin中对象:

SQL>selectoriginal_name,object_namefromrecyclebin;

ORIGINAL_NAMEOBJECT_NAME

--------------------------------------------------------------

ABIN$RWXQQcTPRde0ws4h9ewJcg==$0

查看recyblebin对象里的内容:

SQL>select*from"BIN$RWXQQcTPRde0ws4h9ewJcg==$0";

ID

----------

1

2

3

表空间的RecycleBin区域只是一个逻辑区域,而不是从表空间上物理的划出一块区域固定用于回收站,因此RecycleBin是和普通对象共用表空间的存储区域,或者说是RecycleBin的对象要和普通对象抢夺存储空间。当发生空间不够时,Oracle会按照先入先出的顺序覆盖RecycleBin中的对象。也可以手动的删除RecycleBin占用的空间。

  • Purgetablespacetablespace_name:用于清空表空间的RecycleBin
  • urgetablespacetablespace_nameuseruser_name:清空指定表空间的RecycleBin中指定用户的对象
  • Purgerecyclebin:删除当前用户的RecycleBin中的对象
  • Purgedba_recyclebin:删除所有用户的RecycleBin中的对象,该命令要sysdba权限
  • Droptabletable_namepurge:删除对象并且不放在RecycleBin中,即永久的删除,不能用Flashback恢复。

6).Purgeindexrecycle_bin_object_name:当想释放Recyclebin的空间,又想能恢复表时,可以通过释放该对象的index所占用的空间来缓解空间压力。因为索引是可以重建的。


2.FlashbackDrop实例操作

SYS@ orcl >select object_name,original_name from recyclebin;

OBJECT_NAME ORIGINAL_NAME

------------------------------ --------------------------------

BIN$3VLF0vGPjivgQAB/AQASgw==$0 TEST009


SYS@ orcl >flashback table test009 to before drop;

Flashback complete.

SYS@ orcl >select * from test009;

当我们删除表A后,在新建表A,这时在恢复的时候就会报错,此时我们在闪回时,对表重命名就可以了:

SYS@ orcl >flashback table test010 to before drop rename to test011;

当我们删除表A,在新建表A,在删除它,这是在RecycleBin中就会有2个相同的表明,此时恢复我们就要指定object

_name才行.


SYS@ orcl >show recycle

ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME

---------------- ------------------------------ ------------ -------------------

TEST011 BIN$3VLF0vGUjivgQAB/AQASgw==$0 TABLE 2013-05-23:00:24:10

TEST011 BIN$3VLF0vGTjivgQAB/AQASgw==$0 TABLE 2013-05-23:00:23:21

TEST011 BIN$3VLF0vGRjivgQAB/AQASgw==$0 TABLE 2013-05-23:00:20:41

flashback table "BIN$3VLF0vGRjivgQAB/AQASgw==$0" to before drop


一旦完成闪回恢复,RecycleBin中的对象就消失了.FlashbackDrop需要注意的地方:

  • 只能用于非系统表空间和本地管理的表空间
  • 对象的参考约束不会被恢复,指向该对象的外键约束需要重建。
  • 对象能否恢复成功,取决与对象空间是否被覆盖重用。
  • 当删除表时,信赖于该表的物化视图也会同时删除,但是由于物化视图并不会被放入recyclebin,因此当你执行flashbacktabletobeforedrop时,也不能恢复依赖其的物化视图,需要dba手工介入重新创建。
  • 对于RecycleBin中的对象,只支持查询.


分享到:
评论

相关推荐

    BLOG_Oracle 回收站及flashback drop_LHR.pdf

    BLOG_Oracle 回收站及flashback drop_LHR.pdfBLOG_Oracle 回收站及flashback drop_LHR.pdf

    Oracle_FlashBack闪回技术

    Oracle中FlashBack技术的应用 1: 闪回数据库; 2: 闪回drop掉的表; 3: 闪回对表数据的修改; 4: 闪回版本查询

    Oracle对于误删误操作的数据进行恢复(flashback query、flashback drop、flashback table、flashback database)

    Oracle对于误删误操作的数据进行恢复。 日常工作中难免遇到自己或者别人误操作、删除、修改了数据库的数据。此时我们该如何恢复数据呢。   1、我们可以应用Flashback Query查询过去的数据 Flashback Query这一特性...

    oracle中误删除表后恢复语句(FLASHBACK)

    FLASHBACK TABLE CF_IMPORT_RULE TO BEFORE DROP; FLASHBACK COMPLETE 您可能感兴趣的文章:Oracle误删除表数据后的数据恢复详解Oracle7.X 回滚表空间数据文件误删除处理方法Oracle7.X 回滚表空间数据文件误删除...

    oracle闪回技术

    oracle 的闪回技术 flashback 恢复 delete、update、drop 的误操作

    oracle 12c 数据库 教程

    (九)闪回删除:Flashback Drop 95 (十)闪回事务查询:Flashback Transaction Query 96 (十一)闪回数据归档:Flashback Data Archive 98 三、用户管理的备份 101 (一)用户管理的备份简介 101 (二)第一个...

    oracle drop table(表)数据恢复方法

    –恢复 FLASHBACK TABLE 表名 TO BEFORE DROP; 此举 可以恢复表结构,同时 数据也恢复了 必须9i或10g以上版本支持,flashback无法恢复全文索引 您可能感兴趣的文章:Oracle数据块损坏之10231内部事件不完全恢复...

    关于oracle10供了类似操作系统中的回收站功能

    被用户Drop的对象并没有被Oracle删除,仍然会占用空间。除非是用户手工进行Purge或者因为存储空间不够而被Oracle清掉。有了回收站,能够减少很多不必要的麻烦。常常看到开发人员误删除表,我们可以充分利用10g的闪回...

    oracle truncate恢复工具

    用户truncate误删 schema下的若干数据表,无法使用flashback query等技术恢复数据,尝试从之前的全备份中恢复,数据库restore速度较快,但是archivelog恢复时由于HP data Protecter的不明原因导致归档恢复十分缓慢,...

    ORACLE FLAHBACK

    Oracle从版本9开始,就开始提供了flashback query(闪回查询)的功能,最初的功能也是很有限的,不仅完全依赖于自动Undo(AUM),对于drop,truncate等DDL操作是毫无办法,而且,由于受到Undo空间限制,能闪回的时间也...

    FLAHBACK详解

    FLAHBACK举例和使用说明,比较详细,重点介绍了3中方法恢复数据库:1.Flashback database ;...本人也误操作drop了oracle中的一张表,找了半天找到这个方法文档恢复成功了表和数据。很好用,希望大家支持下。

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

    他创办了自己的咨询公司,作为一名独立的顾问,他围绕大量的Oracle技术设计并开发了软件和培训课程,内容涉及数据库、应用服务器和商业智能产品,拥有12年的IT从业经验。  Bob Bryla是Oracle 9i和10g的认证专家,他...

    Orcal创建表空间

    --DROP TABLESPACE MEDEXECGTYY INCLUDING CONTENTS AND DATAFILES; CREATE TABLESPACE MEDEXECGTYY DATAFILE 'E:\Oracle\MEDEXECGTYY.dbf' SIZE 20480M AUTOEXTEND OFF LOGGING ONLINE PERMANENT EXTENT ...

    基于Oracle闪回详解(必看篇)

    Oracle 9i 开始支持闪回,Oracle10g开始全面支持闪回功能,Oracle11g有所完善,为大家快速的恢复数据,查询历史数据提供了很大的便捷方法。 本文主要对Oracle常用闪回使用做些详细介绍,其中对于不常用的事务和版本...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第1/2部分)

    他创办了自己的咨询公司,作为一名独立的顾问,他围绕大量的Oracle技术设计并开发了软件和培训课程,内容涉及数据库、应用服务器和商业智能产品,拥有12年的IT从业经验。  Bob Bryla是Oracle 9i和10g的认证专家,他...

    oracle 数据库闪回相关语句介绍

    执行闪回语句: Sql代码 flashback table emp to timestamp to_timestamp(‘20120709195000′,’YYYYMMDDHH24:MI:SS’); 2\闪回回收站: Java代码 SQL>show recyclebin; SQL>drop table emp; SQL>show recyclebin; ...

    数据库建库指令

    CREATE TABLESPACE jyzx DATAFILE 'jyzx' SIZE 500M AUTOEXTEND ON NEXT 50M MAXSIZE unlimited LOGGING ONLINE PERMANENT EXTENT MANAGEMENT ...AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON...

Global site tag (gtag.js) - Google Analytics