日期:2014-05-16 浏览次数:20489 次
步骤是记录当前SCN及时间,然后进行DML操作,提交后使用 timestamp和SCN进行对DML操作之前数据的查询
1
因为闪回查询的是已经提交的,这样即使数据未提交而数据库SHUTDOWN ABORT,重启后因为做实例恢复,使用闪回所查询的数据仍是已经提交的。
实验过程:查询当前SCN并执行DML操作不提交并查询当前SCN,使用闪回查询功能查询DML操作之前和之后的SCN
结果是:验证闪回查询返回的是已经提交的数据。
20:22:44 BYS@bys1>select * from test3;
ID NAME
---------- ----------
2 b
20:22:48 BYS@bys1>select current_scn from v$database;
CURRENT_SCN
-----------
1741868
20:26:17 BYS@bys1>delete test3; ---不提交
1 row deleted.
各种查询:
20:26:26 BYS@bys1>select * from test3;
no rows selected
20:26:29 BYS@bys1>select current_scn from v$database;
CURRENT_SCN
-----------
1741881
20:26:50 BYS@bys1>select * from test3 as of scn 1741868;
ID NAME
---------- ----------
2 b
20:27:10 BYS@bys1>select * from test3 as of scn 1741881;
ID NAME
---------- ----------
2 b
versions_endscn: 结束SCN号 如果有值,证明这记录已非当前记录
操作步骤: