命名物理备用重做日志
ORA-00312: 联机日志 1 线程 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\REDO01.LOG'
这是由于10g以后,oracle为了加快swtichover的速度,在can become a primary之前就去clear the online logfiles了,而如果没有设置log_file_name_convert,这个时候oracle可能就不能识别哪怕是冷备copy过来的路径文件名都一模一样的redo logfile,解决方案就是在主库参数中添加log_file_name_convert,原来没有用这个参数,是因为主备库的log日志文件路径都一样(因为用了同一个数据库实例名ora10g)
SQL> alter system set log_file_name_convert='C:\oracle\product\10.2.0\oradata\ora10g','C:\oracle\product\10.2.0\oradata\ora10g' scope=spfile;
log_file_name_convert 这个参数非在线可修改,必须重启后才能生效:

这就有点尴尬,生产库就必须重启一下,也就是说必须停一下库,哪怕只是几分钟,不过当设置完成,重启standby,apply日志以后,看到alert log日志中果然可以看到clear online logfiles了,问题得到解决
备库alert log日志会提示以下内容:
Thu Jul 17 10:49:21 2014
alter database recover managed standby database disconnect from session
MRP0 started with pid=16, OS id=2548
Managed Standby Recovery not using Real Time Apply
parallel recovery started with 2 processes
Thu Jul 17 10:49:26 2014
Waiting for all non-current ORLs to be archived...
Thu Jul 17 10:49:26 2014
Errors in file c:\oracle\product\10.2.0\admin\ora10g\bdump\Z??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcmExMGdfbXJwMF8yNTQ4LnRyYzo8YnI+Ck9SQS0wMDMxMzogzt63qLTyv6rI1da+1+kgMSAo08PT2s/fs8wgMSkgtcSzydSxPGJyPgpPUkEtMDAzMTI6IMGqu/rI1da+IDEgz9+zzCAxOiA="C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\REDO01.LOG'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2)
系统找不到指定的文件。
Thu Jul 17 10:49:26 2014
Errors in file c:\oracle\product\10.2.0\admin\ora10g\bdump\ora10g_mrp0_2548.trc:
ORA-00313: 无法打开日志组 1 (用于线程 1) 的成员
ORA-00312: 联机日志 1 线程 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\REDO01.LOG'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
Clearing online redo logfile 1 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\REDO01.LOG--开始清除REDO01.LOG
Clearing online log 1 of thread 1 sequence number 64
Thu Jul 17 10:49:26 2014
Errors in file c:\oracle\product\10.2.0\admin\ora10g\bdump\ora10g_mrp0_2548.trc:
ORA-00313: 无法打开日志组 1 (用于线程 1) 的成员
ORA-00312: 联机日志 1 线程 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\REDO01.LOG'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
Thu Jul 17 10:49:27 2014
Completed: alter database recover managed standby database disconnect from session
Thu Jul 17 10:49:27 2014
Clearing online redo logfile 1 complete --清除online redo logfile 'REDO01.LOG' 完毕,此时会在oradata目录生成一个REDO01.LOG文件
Thu Jul 17 10:49:27 2014
Errors in file c:\oracle\product\10.2.0\admin\ora10g\bdump\ora10g_mrp0_2548.trc:
ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员
ORA-00312: 联机日志 2 线程 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\REDO02.LOG'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
Thu Jul 17 10:49:27 2014
Errors in file c:\oracle\product\10.2.0\admin\ora10g\bdump\ora10g_mrp0_2548.trc:
ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员
ORA-00312: 联机日志 2 线程 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\REDO02.LOG'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
Clearing online redo logfile 2 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\REDO02.LOG --开始清除REDO02.LOG
Clearing online log 2 of thread 1 sequence number 65
Thu Jul 17 10:49:27 2014
Errors in file c:\oracle\product\10.2.0\admin\ora10g\bdump\ora10g_mrp0_2548.trc:
ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员
ORA-00312: 联机日志 2 线程