Oracle11g新特性:Flashback Data Archive续
上一篇文章简单的介绍了这个新特性,但是没有做太多的试验来对一些说法进行验证,piner也写了一篇来进一步说明这个新引入的flashback方式。本文准备补充一些相关的其他内容。
一.后台进程
Oracle11g为Flashback data archive特性专门引入了一个新的后台进程FBDA,用于将追踪表(traced table,也就是将指定使用flashback data archive的table)的历史变化数据转存到闪回归档区。
NAME DESCRIPTION
------------------------------ ----------------------------------------
FBDA Flashback Data Archiver Process
Oracle11g新特性:Flashback Data Archive
Oracle9i引入flashback query,使得数据库第一次可以查询到之前的数据,而不再需要利用log和备份进行时间点恢复。Oracle10g更是引入flashback version query,flashback transaction query,flashback database,flashback table,flashback drop等特性,并且大大简化了flashback query的使用。Oracle11g则为flashback家族又带来一个新的成员:flashback data archive。
初看起来,flashback data archive和flashback query没有太大的不同,都是通过as of能够查询之前的数据,但是他们的实现机制是不一样的。Flashback query是通过直接从undo中读取信息来构造旧数据,这样就有一个限制,就是undo中的信息不能被覆盖。而undo段是循环使用的,只要事务提交,之前的undo信息就可能被覆盖,虽然可以通过undo_retention等参数来延长undo的存活期,但这个参数会影响所有的事务,设置过大,可能导致undo tablespace快速膨胀。
Falshback data archive特性则通过将变化数据另外存储到创建的flashback archive中,以和undo区别开来,这样就可以通过为flashback archive单独设置存活策略,使得可以闪回到指定时间之前的旧数据而不影响undo策略。并且可以根据需要指定哪些数据库对象需要保存历史变化数据,而不是将数据库中所有对象的变化数据都保存下来,这样可以极大的减少空间需求。
