ORACLE不完成恢复ORA-00392,ORA-00312,ORA-00349

背景:

进行测试库不完全恢复,rac-asm至单实例-文件系统,recover完成后,mount状态的database  执行 alter database resetlogs 报错;

21:18:53 SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-00392: log 5 of thread 1 is being cleared, operation not allowed
ORA-00312: online log 5 thread 1: '+test_dg'

21:18:58 SQL> alter database clear logfile group 4;
alter database clear logfile group 4
*
ERROR at line 1:
ORA-00349: failure obtaining block size for '+test_d

 

检查所有的logfile路径都是在asm磁盘组里。

操作:

 

添加两组logfile到正确位置

alter database add logfile group 1 '/test/sys/redo1' size 512M ;

alter database add logfile group 2 '/test/sys/redo2' size 512M ;

2.检查文件头

select  CHECKPOINT_CHANGE#,count(*) from V$DATAFILE_HEADER group by CHECKPOINT_CHANGE#;

 

3.重做控制文件

ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/tmp/control.sql' resetlogs ;

vi /tmp/control.sql   ----  将 asm文件的logfile删除,保留刚才新加的两个 group 1,group 2即可。

 

4.shutdown abort;

 

5.sqlplus / as sysdba

@/tmp/control.sql

 

6. alter database open resetlogs;

可能会报错:

ERROR at line 1:
ORA-38856: cannot mark instance UNNAMED_INSTANCE_2 (redo thread 2) as enabled

 

alter database add logfile thread 2 ('/test/sys/redo19') size 500M ;

alter database add logfile thread 2 ('/test/sys/redo20') size 500M ;

 

alter database open resetlogs;

重新启动一次、

7.shutdown abort  ;

8.startup;

 

添加redo,tempfile文件。

 

posted @ 2020-07-31 22:17  咿呀咿呀哟9614  阅读(1437)  评论(0)    收藏  举报