结论:1、flashback table t to scn #### 此处的scn和不完全恢复时的scn一样是<
2、要求enable row movement,是因为flashback之后row的rowid会发生变化
SQL> connect xys/manager
已连接。
SQL> create table t(scnid int , time date);
表已创建。
SQL> insert into t select dbms_flashback.get_system_change_number , sysdate from
dual;
已创建 1 行。
SQL> commit;
提交完成。
SQL> insert into t select dbms_flashback.get_system_change_number , sysdate from
dual;
已创建 1 行。
SQL> commit;
提交完成。
SQL>
SQL>
SQL>
SQL>
SQL> insert into t select dbms_flashback.get_system_change_number , sysdate from
dual;
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter session set nls_date_format='yyyy/mm/dd hh24:mi:ss';
会话已更改。
SQL> select * from t;
SCNID TIME
---------- -------------------
542635 2007/09/20 19:39:42
542640 2007/09/20 19:39:52
542643 2007/09/20 19:39:58
SQL> drop table t;
表已删除。
SQL> flashback table t to before drop;
闪回完成。
SQL> select * from t;
SCNID TIME
---------- -------------------
542635 2007/09/20 19:39:42
542640 2007/09/20 19:39:52
542643 2007/09/20 19:39:58
SQL> flashback table t to scn 542640;
flashback table t to scn 542640
*
第 1 行出现错误:
ORA-08189: 因为未启用行移动功能, 不能闪回表
SQL> select scnid , time ,rowid from t;
SCNID TIME ROWID
---------- ------------------- ------------------
542635 2007/09/20 19:39:42 AAAC6uAAEAAAAAsAAA
542640 2007/09/20 19:39:52 AAAC6uAAEAAAAAsAAB
542643 2007/09/20 19:39:58 AAAC6uAAEAAAAAsAAC
SQL> alter table t enable row movement;
表已更改。
SQL> flashback table t to scn 542640;
闪回完成。
SQL> select scnid , time ,rowid from t;
SCNID TIME ROWID
---------- ------------------- ------------------
542635 2007/09/20 19:39:42 AAAC6uAAEAAAAAsAAD
SQL>
结论:1、flashback table t to scn #### 此处的scn和不完全恢复时的scn一样是<
2、要求enable row movement,是因为flashback之后row的rowid会发生变化
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/19602/viewspace-61730/ ,如需转载,请注明出处,否则将追究法律责任。