基本原理:
闪回日志记录了发生变更的数据块的变更前镜像.闪回时用闪回日志中的数据块替换现有数据文件中的数据块.
限制:
1. 数据文件不能损坏或者丢失
2. 不能跨越一个restore controlfile或者 re-create controlfile操作
步骤:
1.确定闪回点
SELECT OLDEST_FLASHBACK_SCN, OLDEST_FLASHBACK_TIME
FROM V$FLASHBACK_DATABASE_LOG;
SELECT CURRENT_SCN
FROM V$DATABASE
SELECT NAME, SCN, TIME, DATABASE_INCARNATION#,
GUARANTEE_FLASHBACK_DATABASE
FROM V$RESTORE_POINT
WHERE GUARANTEE_FLASHBACK_DATABASE='YES';
2. shutdown and mount
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
3. 执行闪回操作
flashback database to scn 46963
flashback database to timestamp to_date('2009-06-22 17:49:06','yyyy-mm-dd hh24:mi:ss');
flashback database to restore point rs_before_changes;
flashback database to before scn 46963
flashback database to before timestamp to_date('2009-06-22 17:49:06','yyyy-mm-dd hh24:mi:ss');
flashback database to before resetlogs;
4. 检查一下
alter database open read only;
-do some check here
5. 如果一切OK, 那么可以
(1) resetlogs and open
shutdown immediate
startup mount
alter database open resetlogs;
(2) 用expdp导出损坏的数据,然后:
recover database;
6.如果发觉问题,那么可以:
(1)回滚到一个更老的时间点:
flashback database to scn 42963;
(2)向前滚到指定时间点:
recover database until scn 56963;
(3)完全前滚
recover database;
[@more@]
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/100682/viewspace-1023394/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/100682/viewspace-1023394/