ERROR:
ORA-00742: 日志读取在线程 1 序列 20 块 40649 中检测到写入丢失情况
ORA-00312: 联机日志 2 线程 1: '/oracle/oradata/SEM/redo02.log'
SQL> RECOVER DATABASE UNTIL CANCEL; //尝试recover之
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误 ORA-01152:
文件 1 没有从过旧的备份中还原 ORA-01110:
数据文件 1: '/oracle/oradata/SEM/system01.dbf'
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01152: 文件 1 没有从过旧的备份中还原 ORA-01110: //果真如上所述open时回出现这个错误
数据文件 1: '/oracle/oradata/SEM/system01.dbf'
alert.log中记录如下:
Errors in file /oracle/diag/rdbms/sem/SEM/trace/SEM_pr00_3546.trc:
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01152: 文件 1 没有从过旧的备份中还原
ORA-01110: 数据文件 1: '/oracle/oradata/SEM/system01.dbf'
ORA-1547 signalled during: ALTER DATABASE RECOVER DATABASE UNTIL CANCEL ...
Tue Sep 03 03:29:40 2013
Checker run found 15 new persistent data failures
查看scn的状态
SQL> select checkpoint_change# from v$database; //控制文件的scn
CHECKPOINT_CHANGE#
------------------
6505947
SQL> select checkpoint_change# from v$datafile; //数据文件的scn
CHECKPOINT_CHANGE#
------------------
6530705
6530705
6530705
6530705
6530705
6530705
6530705
6530705
6530705
6530705
6530705
CHECKPOINT_CHANGE#
------------------
6530705
6530705
6530705
6530705
已选择 15 行。
SQL> select checkpoint_change# from v$datafile_header; //数据文件头的scn
CHECKPOINT_CHANGE#
------------------
6530705
6530705
6530705
6530705
6530705
6530705
6530705
6530705
6530705
6530705
6530705
CHECKPOINT_CHANGE#
------------------
6530705
6530705
6530705
6530705
已选择 15 行。
很明显控制文件中的scn没赶上数据文件和数据头文件中的变化 然后尝试不玩全恢复
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 6530705 (在 09/01/2013 02:59:56 生成) 对于线程 1 是必需的 ORA-00289:
建议: /oracle/archivelog/1_20_824696280.dbf
ORA-00280: 更改 6530705 (用于线程 1) 在序列 #20 中
指定日志: {=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> alter database open resetlogs;
数据库已更改。
再查看控制文件中的scn的状态
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE
6530709 //控制文件中的scn号只差几个,这几个可能是我open之后scn自己增加的几个 也就是说此次恢复和数据文件中的一样了
至此数据库实例就成功起来了