日期:2014-05-16  浏览次数:20447 次

oracle数据库日志文件版本不一致问题处理
早上在启动测试数据库时,发现如下问题:
数据库版本是11.2.0.3
SQL> startup
ORACLE instance started.

Total System Global Area 1653518336 bytes
Fixed Size                  2228904 bytes
Variable Size            1140854104 bytes
Database Buffers          503316480 bytes
Redo Buffers                7118848 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 8264
Session ID: 191 Serial number: 3

检查告警日志文件信息如下:
Fri Aug 24 09:52:27 2012
Completed: ALTER DATABASE   MOUNT
Fri Aug 24 09:52:27 2012
ALTER DATABASE OPEN
Fri Aug 24 09:52:33 2012
Errors in file /u01/app/oracle/diag/rdbms/enmot2/enmot2/trace/enmot2_lgwr_8222.trc:
ORA-00322: log 2 of thread 1 is not current copy
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/enmot2/redo02b.log'
ORA-00322: log 2 of thread 1 is not current copy
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/enmot2/redo02a.log'
Errors in file /u01/app/oracle/diag/rdbms/enmot2/enmot2/trace/enmot2_lgwr_8222.trc:
ORA-00322: log 2 of thread 1 is not current copy
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/enmot2/redo02b.log'
ORA-00322: log 2 of thread 1 is not current copy
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/enmot2/redo02a.log'
Errors in file /u01/app/oracle/diag/rdbms/enmot2/enmot2/trace/enmot2_ora_8264.trc:
ORA-00322: log 1 of thread  is not current copy
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/enmot2/redo02a.log'
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/enmot2/redo02b.log'
USER (ospid: 8264): terminating the instance due to error 322
Fri Aug 24 09:52:34 2012
System state dump requested by (instance=1, osid=8264), summary=[abnormal instance termination].
System State dumped to trace file /u01/app/oracle/diag/rdbms/enmot2/enmot2/trace/enmot2_diag_8212.trc
Dumping diagnostic data in directory=[cdmp_20120824095234], requested by (instance=1, osid=8264), summary=[abnormal instance termination].
Instance terminated by USER, pid = 8264
问题比较明显,日志镜像存在问题,由于测试库可以通过resetlog方式打开:
SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;

System altered.
SQL> startup mount
ORACLE instance started.

Total System Global Area 1653518336 bytes
Fixed Size                  2228904 bytes
Variable Size            1140854104 bytes
Database Buffers          503316480 bytes
Redo Buffers                7118848 bytes
Database mounted.

SQL> recover database until cancel;
Media recovery complete.
SQL> alter database open resetlogs;

Database altered.
此时告警日志信息如下:
Fri Aug 24 09:53:56 2012
alter database open resetlogs
ORA-1139 signalled during: alter database open resetlogs...
Fri Aug 24 09:54:27 2012
ALTER DATABASE RECOVER  database until cancel  
Media Recovery Start
 started logmerger process
Parallel Media Recovery started with 4 slaves
Media Recovery Not Required
Completed: ALTER DATABASE RECOVER  database until cancel  
alter database open resetlogs
RESETLOGS is being done without consistancy checks. This may result
in a corrupted database. The database should be recreated.
RESETLOGS after incomplete recovery UNTIL CHANGE 1427077