flashback in 9i,10g,11g(翻译+测试修改)
? Oracle flashback Originalhttp://www.oracle-base.com/articles/9i/flashback-query.php http://www.oracle-base.com/articles/10g/flashback-10g.php http://www.oracle-base.com/articles/11g/flashback-and-logminer-enhancements-11gr1.php Flashback in 9iFlashback query (回闪查询) 回闪查询提供给用户一种查看数据库之前状态的一致性视图(consistent view)。有了这一功能,用户就可以和之前的报表做对比和恢复那些由于错误逻辑导致删除的数据。 n? 预备知识 n? 使用回闪查询 n? 数据恢复示例 n? 回闪的限制 预备知识 Oracle回闪查询仅适用于配置了Automatic Undo Management的数据库,对于传统的rollback segments不适用。在init.ora配置文件里面有一个参数UNDO_RETENTION,用于定义最大可回闪的时间。这个参数可以手动修改。
? 查看这个参数: SQL> show parameter undo_retention NAME???????????????????????????????? TYPE??????? VALUE ------------------------------------ ----------- ------------------------------ undo_retention?????????????????????? integer???? 900 表示最大回闪时间是900秒。 使用回闪查询 回闪查询使用DBMS_FLASHBACK包来控制有效或者失效。我们可以使用SCN或者时间戳来指定回闪时间点。
在回闪查询状态下数据库是只读的,所以当你完成只读操作后不要忘了关闭回闪查询
如果没有明确调用disable关闭回闪查询,当当前session结束的时候系统将自动关闭。系统当前的scn号可以用函数dbms_flashback.get_system_change_number得到。
或者从v$database里面查到
? 数据恢复示例 ?--创建测试用表 create table flashback_emp as select * from scott.emp; select count(1) from flashback_emp; --获取当前的SCN和时间戳 SELECT current_scn,'YYYY-MM-DD HH24:MI:SS') FROM v$database; --删除测试表里面的所有数据(模仿误删) delete from flashback_emp; commit; --确认数据已经删除 select count(1) from flashback_emp; declare ? type t_row is table of flashback_emp%rowtype; ? l_row t_row := t_row(); begin ? --开启回闪查询,在误删之前的时间点 ? dbms_flashback.enable_at_time(to_date('2012-06-20 13:58:51','yyyy-mm-dd hh24:mi:ss')); ? --收集回闪状态的数据到bulk type ? select * bulk collect into l_row from flashback_emp; ? --关闭回闪查询 ? dbms_flashback.disable; ? --从bulk type中取数据插入到回复表 ? forall i in l_row.first .. l_row.last ??? insert into flashback_emp values l_row(i); ? commit; end; --检查恢复是否成功 select count(1) from flashback_emp; 回闪的限制 ·db server必须配置为Automatic Undo Management ·回闪查询状态下DDL和DML语句无法使用。(因为数据库为只读状态) ·回闪查询不支持DDL操作的恢复(如drop, truncate),仅DML操作的数据可以恢复
这一句不是很理解 Flashback in 10g--未完 ? Flashback in 11g(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |