Oracle 11g中flashback增加了:Flashback Data Archive 特性。该技术与之前的Flashback的实现机制不同,通过将变化数据另外存储到创建的闪回归档区(Flashback Archive)中,以和undo区别开来,这样就可以为闪回归档区单独设置存储策略,使之可以闪回到指定时间之前的旧数据而不影响undo策略。并且可以根据需要指定哪些数据库对象需要保存历史变化数据,而不是将数据库中所有对象的变化数据都保存下来,这样可以极大地减少空间需求。
Flashback Data Archive并不是记录数据库的所有变化,而只是记录了指定表的数据变化。所以,Flashback Data Archive是针对对象的保护,是Flashback Database的有力补充。
通过Flashback Data Archive,可以查询指定对象的任何时间点(只要满足保护策略)的数据,而且不需要用到undo,这在有审计需要的环境,或者是安全性特别重要的高可用数据库中,是一个非常好的特性。缺点就是如果该表变化很频繁,对空间的要求可能很高。
创建表空间
SQL> create tablespace tbs1 datafile '/u01/app/oracle/oradata/orcl/tbs01.dbf' size 200m;
创建FDA ,表空间为tbs1
SQL> create flashback archive default fla2 tablespace tbs1 quota 100m retention 2 year;
SQL> create tablespace FDA001 datafile '/u01/app/oracle/oradata/orcl/fda01.dbf' size 500m;
// FDA 管理员
SQL> create user FDA_ADMIN identified by fda_admin default tablespace FDA001;
SQL> grant FLASHBACK ARCHIVE ADMINISTER to FDA_admin;
SQL> grant connect,resource to FDA_ADMIN;
SQL> CREATE FLASHBACK ARCHIVE fla1 tablespace FDA001 quota 500m retention 1 year;
把FDA 授权给sh 用户
SQL> grant flashback archive on fla1 to SH;
SQL> alter table sh.promotions flashback archive fla1;
查看FDA具体配置
SQL> select * from dba_flashback_archive;
SQL> select * from dba_flashback_archive_tables;
SQL> select * from dba_flashback_archive_ts;