从Dataguard做RMAN备份, restore后做恢复, 恢复OK后, alter database open resetlogs报错,提示控制文件是standby控制文件,错误码 ORA-01666 , 查找解决方法,可以通过alter database activate standby database将数据库角色(database_role)更改为primary , 同时也会更新控制文件,但是执行发现报错 :
SQL> alter database activate standby database;
alter database activate standby database
*
ERROR at line 1:
ORA-00313: open failed for members of log group 5 of thread 1
ORA-00312: online log 5 thread 1: '+DATA/tb/onlinelog/group_5.782.922899209'
ORA-17503: ksfdopn:2 Failed to open file
+DATA/tb/onlinelog/group_5.782.922899209
ORA-15012: ASM file '+DATA/tb/onlinelog/group_5.782.922899209' does not exist
ORA-00312: online log 5 thread 1: '+DATA/tb/onlinelog/group_5.784.922899209'
ORA-17503: ksfdopn:2 Failed to open file
+DATA/tb/onlinelog/group_5.784.922899209
ORA-15012: ASM file '+DATA/tb/onlinelog/group_5.784.922899209' does not exist
生成controlfile文件,查看到standby redo log文件是注释掉的,奇怪为什么会activate standby 的时候提示找不到这些文件呢 ?
通过
select 'alter database clear logfile group ' ||group# ||';'from v$standby_log;
select 'alter database drop standby logfile group ' ||group# ||';'from v$standby_log;
清理掉standby redo log 后,再次执行
SQL> alter database activate standby database;
成功。
SQL> alter database activate standby database;
alter database activate standby database
*
ERROR at line 1:
ORA-00313: open failed for members of log group 5 of thread 1
ORA-00312: online log 5 thread 1: '+DATA/tb/onlinelog/group_5.782.922899209'
ORA-17503: ksfdopn:2 Failed to open file
+DATA/tb/onlinelog/group_5.782.922899209
ORA-15012: ASM file '+DATA/tb/onlinelog/group_5.782.922899209' does not exist
ORA-00312: online log 5 thread 1: '+DATA/tb/onlinelog/group_5.784.922899209'
ORA-17503: ksfdopn:2 Failed to open file
+DATA/tb/onlinelog/group_5.784.922899209
ORA-15012: ASM file '+DATA/tb/onlinelog/group_5.784.922899209' does not exist
生成controlfile文件,查看到standby redo log文件是注释掉的,奇怪为什么会activate standby 的时候提示找不到这些文件呢 ?
通过
select 'alter database clear logfile group ' ||group# ||';'from v$standby_log;
select 'alter database drop standby logfile group ' ||group# ||';'from v$standby_log;
清理掉standby redo log 后,再次执行
SQL> alter database activate standby database;
成功。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-2125197/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/35489/viewspace-2125197/