as of timestamp/scn
insert into jss_tb1 select * from jss_tb1 as of timestamp sysdate-5/1440 where id<10;
查看scn
select dbms_flashback.get_system_change_number from dual;
select current_scn from v$database;
JSSWEB> select xid,commit_scn,commit_timestamp,operation,undo_sql
2 from flashback_transaction_query q where q.xid in(
3 select versions_xid from jss_tb1 versions between scn 413946 and 413959);
SQL> desc flashback_transaction_query
名称 是否为空? 类型
----------------------------------------- -------- ---------------
XID RAW(8)
START_SCN NUMBER
START_TIMESTAMP DATE
COMMIT_SCN NUMBER
COMMIT_TIMESTAMP DATE
LOGON_USER VARCHAR2(30)
UNDO_CHANGE# NUMBER
OPERATION VARCHAR2(32)
TABLE_NAME VARCHAR2(256)
TABLE_OWNER VARCHAR2(32)
ROW_ID VARCHAR2(19)
UNDO_SQL VARCHAR2(4000)
查询某个时刻的scn
SQL> select timestamp_to_scn(to_date('20100105160606','yyyy-mm-dd hh24:mi:ss')) from dual;
注意此处,在你执行完flashback database 命令之后,oracle 提供了两种方式让你修复数据库:
第一种直接alter database open resetlogs 打开数据库,当然,指定scn 或者timestamp 时间点之后产生的
数据统统丢失。
另一种方式是先执行alter database open read only 命令以read-only 模式打开数据库,然后立刻通过逻辑
导出的方式将误操作涉及表的数据导出,再执行recover database 命令以重新应用数据库产生的redo,将数
据库修复到flashback database 操作前的状态,然后再通过逻辑导入的方式,将之前误操作的表重新导入,
这样的话对现有数据的影响最小,不会有数据丢失。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22253646/viewspace-667231/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22253646/viewspace-667231/