Flashback archive

本文介绍了Oracle 11g中的Flashback Data Archive特性,它通过将变化数据存储到专用的归档区域来支持对象级别的闪回操作。文章详细解释了如何创建、配置和管理Flashback Data Archive,以及其与传统闪回技术的区别。
摘要由CSDN通过智能技术生成

Flashback archive

        在Oracle 10g中的lashback 包括: flashbackversion query、flashback transaction query、flashback database、flashbacktable和flashback drop等。 在这些闪回技术当中,除了Flashback Database(依赖于闪回日志)之外,其他的闪回技术都是依赖于Undo撤销数据,都与数据库初始化参数UNDO_RETENTION密切相关。

          从undo中读取信息来构造旧数据的,这样就有一个限制,就是undo中的信息不能被覆盖。而undo段是循环使用的,只要事务提交,之前的undo信息就可能被覆盖,虽然可以通过 undo_retention等参数来延长undo的存活期,但这个参数会影响所有的事务,设置过大,可能导致undo tablespace快速膨胀。 

         Oracle11g中flashback增加了Flashback Data Archive 特性。该技术与之前的Flashback的实现机制不同,通过将变化数据另外存储到创建的闪回归档区(Flashback Archive)中,以和undo区别开来,这样就可以为闪回归档区单独设置存储策略,使之可以闪回到指定时间之前的旧数据而不影响undo策略。并且可以根据需要指定哪些数据库对象需要保存历史变化数据,而不是将数据库中所有对象的变化数据都保存下来,这样可以极大地减少空间需求。

          FlashbackData Archive并不是记录数据库的所有变化,而只是记录了指定表的数据变化。所以,Flashback Data Archive是针对对象的保护,是Flashback Database的有力补充。

         通过FlashbackData Archive,可以查询指定对象的任何时间点(只要满足保护策略)的数据,而且不需要用到undo,这在有审计需要的环境,或者是安全性特别重要的高可用数据库中,是一个非常好的特性。缺点就是如果该表变化很频繁,对空间的要求可能很高。

            闪回数据归档区是闪回数据归档的历史数据存储区域,在一个系统中,可以有一个默认的闪回数据归档区,也可以创建其他许多的闪回数据归档区域。 每一个闪回数据归档区都可以有一个唯一的名称。同时,每一个闪回数据归档区都对应了一定的数据保留策略。

 

Flashback archive 的限制条件

  (1)Flashback data archive只能在ASSM的tablespace上创建
     (2)Flashback data archive要求必须使用自动undo管理,

                        即 undo_management 参数为auto

 

对表启用Flashback archive,并使用默认的Flashback archive。

(1).  You have the FLASHBACK ARCHIVE object privilege on theFlashback Data Archive to use for that table.

(2).  The table is neither nested, clustered, temporary,remote, or external.

(3).  The table contains neither LONG nor nested columns.

 

赋予权限grant flashback archive administer to stat;

 

实施步骤如

1 创建表空间

Createtablespace fd1 datafile '/home/oracle/app/oracle/oradata/esb/fda4.dbf' size200m;

Create tablespace fd2datafile '/home/oracle/app/oracle/oradata/esb/fda5.dbf' size 200m;

1.2创建Flashback Archive(只能有一个默认的)

create flashbackarchive fla1 tablespace fd1 retention 7 day/month/year;

create flashbackarchive default fla2 tablespace fd2 quota 10M retention 1 year;

 alter flashback archive fla set default--设置默认闪回归档

1.3启用archive

SQL> alter table test flashback archive;

Table altered.

 启用Flashback archive,并指定FlashabackArchive 区。

SQL> alter table testflashback archive fla1;

Table altered.

 1.4 禁用表的Flashback Archive

SQL> alter table test no flashbackarchive;

Table altered.

1.5 清空Flashback Archive 中超过1天的历史数据

SQL> alter flashback archive fla1 purge beforetimestamp (systimestamp - interval '1' day);

Flashback archive altered.

清空Flashback Archive 中指定SCN 之前的所有历史数据

SQL> select current_scn from v$database;

CURRENT_SCN

-----------

 1315755078

alter flashback archive fla1 purge before scn 1315755078

清空Flashback Archive中的所有历史记录

 

SQL> alter flashback archive fla1 purgeall;

Flashback archive altered.

 

 

Archive的操作

修改已经存在的FlashbackArchive 为default

SQL> alter flashback archive fla1 set default;

Flashback archive altered.

 将表空间从Flashback Archive中移除

 SQL> alter flashback archive fla1 removetablespace fda4;

Flashback archive altered

 

启动Flashback Data Archive的表支持以下的DDL 操作

(1)ALTER TABLE statement that does any of the following:

                                    1)Adds, drops,renames, or modifies a column

                                    2)Adds, drops,or renames a constraint

                                    3)Drops ortruncates a partition or subpartition operation

            (2)TRUNCATETABLE statement

            (3)RENAMEstatement that renames a table

 

 

Flashback archive相关数据字典

select * fromdba_flashback_archive;

select * fromdba_flashback_archive_ts;

select * fromdba_flashback_archive_tables; 

 

 

 

Flashback archive的后台进程

            Oracle11g为Flashbackdata archive特性专门引入了一个新的后台进程FBDA,用于将追踪表(traced table,也就是将指定使用flashback data archive的table)的历史变化数据转存到闪回归档区。

 

 

测试结果

11.2.0.2 支持add,drop column,还支持truncatetable,不支持drop table

11.1.0.7只支持add column,如果要做其它的操作,需要清除以前的记录跟踪,需要重新开始.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值