Oracle:Flashback 技术 总结

http://blog.csdn.net/tianlesoftware/archive/2009/10/15/4677378.aspx

 

http://ajava.org/readbook/db/oracle11gjctg/5762.html

 

 

而在Oracle 10g当中,更是引入flashback version query、flashback transaction query、flashback database、flashback table和flashback drop等特性,大大简化了Flashback Query的使用。

 

 

在上面的诸多闪回技术当中,除了Flashback Database(依赖于闪回日志,逻辑上的不完全恢复)之外,其他的闪回技术都是依赖于Undo撤销数据,都与数据库初始化参数UNDO_RETENTION密切相关(该参数决定了撤销数据在数据库中的保存时间)。

 

 

Oracle 11g则为flashback家族又带来一个新的成员:Flashback Data Archive。该技术与以上所说的诸多闪回技术的实现机制不同,通过将变化数据另外存储到创建的闪回归档区(Flashback Archive)中,以和undo区别开来,这样就可以为闪回归档区单独设置存储策略,使之可以闪回到指定时间之前的旧数据而不影响undo策略。并且可以根据需要指定哪些数据库对象需要保存历史变化数据,而不是将数据库中所有对象的变化数据都保存下来,这样可以极大地减少空间需求。

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

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

================================================================================================== 

select * from v$recovery_file_dest;

select * from v$FLASH_RECOVERY_AREA_USAGE,

 

先审计,确定时间:

 select dept.* , versions_operation , versions_xid, versions_starttime from u1.dept
 versions between timestamp minvalue and maxvalue order by deptid,versions_starttime;

1.一条一条的恢复用闪回事务查询:

 select logon_user,table_name,table_owner,undo_sql from flashback_transaction_query where table_owner='U1' and xid='06000D0027010000';

运行上面找出的SQL语句

2.集体闪回用闪回版本查询:

 select * from u1.dept as of timestamp to_timestamp('2011-08-31 11:36:00','yyyy-mm-dd hh24:mi:ss');

alter table emp2 enable row movement;

flashback table dept to timestamp to_timestamp('2011-08-31 09:36:15' , 'yyyy-mm-dd hh24:mi:ss');

你可能感兴趣的:(html,oracle,.net,Blog)