本文模拟归档日志出现坏块时,如何进行不完全恢复。
这篇介绍利用基于SCN的方式进行恢复。
根据第一篇文章中恢复时报错:
ORA-00283: 恢复会话因错误而取消
ORA-00368: 重做日志块中的校验和错误
ORA-00353: 日志损坏接近块 1268 更改 48657192 时间 05/05/2006 23:58:03
ORA-00334: 归档日志: 'F:ORACLEORADATATESTARCHIVEARC00028.001'
ORA-01112: 未启动介质恢复
因此尝试利用SCN48657192进行恢复:
SQL> SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> HOST COPY F:ORACLEBACKUPTEST20060503*.DBF F:ORACLEORADATATEST
SQL> HOST COPY F:ORACLEBACKUPTEST20060505*.CTL F:ORACLEORADATATEST
SQL> STARTUP MOUNT
ORACLE 例程已经启动。
Total System Global Area 76619308 bytes
Fixed Size 454188 bytes
Variable Size 50331648 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
SQL> RECOVER DATABASE UNTIL CHANGE 48657192
ORA-00279: 更改 48647749 (在 05/03/2006 11:11:05 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00025.001
ORA-00280: 更改 48647749 对于线程 1 是按序列 # 25 进行的
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
AUTO
ORA-00279: 更改 48649563 (在 05/05/2006 23:10:56 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00026.001
ORA-00280: 更改 48649563 对于线程 1 是按序列 # 26 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00025.001'
ORA-00279: 更改 48654804 (在 05/05/2006 23:14:36 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00027.001
ORA-00280: 更改 48654804 对于线程 1 是按序列 # 27 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00026.001'
ORA-00279: 更改 48656341 (在 05/05/2006 23:15:49 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00028.001
ORA-00280: 更改 48656341 对于线程 1 是按序列 # 28 进行的
ORA-00278: 此恢复不再需要日志文件 'F:ORACLEORADATATESTARCHIVEARC00027.001'
已应用的日志。
完成介质恢复。
SQL> ALTER DATABASE OPEN RESETLOGS;
数据库已更改。
SQL> SELECT COUNT(*) FROM YANGTK.TEST_BACKUP;
COUNT(*)
----------
0
数据库已经恢复,通过CHANGE方式进行恢复,可以将数据库恢复到CREATE TABLE之后。
www.ixdba.net