FLASHBACK
上一篇 /
下一篇 2008-05-07 11:27:37
/ 个人分类:FLASHBACK
FLASHBACK
介绍DBMS_FLASHBACK 包
DBMS_FLASHBACK 包提供了以下几个函数:
ENABLE_AT_TIME:设置当前SESSION 的闪回查询时间
ENABLE_AT_SYSTEM_CHANGE_NUMBER:设置当前SESSION 的闪回查询SCN
GET_SYSTEM_CHANGE_NUMBER:取得当前数据库的SCN
比如:select dbms_flashback.get_system_change_number from dual;
DISABLE:关闭当前SESSION 的闪回查询
当将一个SESSION 设置为闪回查询模式之后,后续的查询都会基于那个时间点或者SCN 的
数据库状态,如果SESSION 结束,那么即使没有明确指定DISABLE,闪回查询也会自动失
效。
当SESSION 运行在闪回查询状态时,不允许进行任何DML 和DDL 操作。如果要用DML
操作来进行数据恢复就必须使用PL/SQL 游标。
即使SESSION 运行在闪回查询模式,SYSDATE 函数也不会受到影响,仍然会返回当前正
确的系统时间。
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
PL/SQL Release 9.2.0.1.0 - Production
CORE 9.2.0.1.0 Production
TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
NLSRTL Version 9.2.0.1.0 - Production
10:27:20 SQL> select * from t;
A
----------
1
3
4
10:28:00 SQL> delete from t where a=4;
已删除 1 行。
10:28:05 SQL> commit;
提交完成。
10:28:07 SQL> select * from t;
A
----------
1
3
10:29:44 SQL> execute DBMS_FLASHBACK.ENABLE_AT_TIME(to_date('2008-05-07 10:28:00
','yyyy-mm-dd hh24:mi:ss'));
PL/SQL 过程已成功完成。
10:31:23 SQL> select * from t;
A
----------
1
3
4
10:31:30 SQL> execute DBMS_FLASHBACK.DISABLE;
PL/SQL 过程已成功完成。
10:32:07 SQL> select * from t;
A
----------
1
3
10:32:10 SQL> select * from t AS OF TIMESTAMP
10:36:11 2 TO_TIMESTAMP('2008-05-07 10:28:00','YYYY-MM-DD HH24:MI:SS');
A
----------
1
3
4
10:36:14 SQL> select * from t;
A
----------
1
3
参考:
http://blog.csdn.net/guoqlee/archive/2007/08/17/1748383.aspx
http://www.itpub.net/viewthread.php?tid=213658&extra=page%3D3%26amp%3Bfilter%3Ddigest
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: