rac二節點例項redo故障無法啟動修復

lmxx2020發表於2024-02-05

問題描述

節點二由於redo故障問題無法正常啟動

目前節點二為mount狀態,open報錯。alter database open

ERROR at line 1:

ORA-00322: log 28 of thread 2 is not current copy

ORA-00312

查詢v$log檢視發現節點二的redo log組沒有狀態為current的日誌組。大機率redo log已經損壞,無法正常開啟資料庫進行應用。

SQL> select * from v$log;
    GROUP#    THREAD#  SEQUENCE#      BYTES 	  MEMBERS ARC STATUS	       FIRST_CHANGE# FIRST_TIM 
---------- ---------- ---------- ----------  ---------- --- ---------------- ------------- ---------
	 35	          1	     1101021   209715200	   		1     YES INACTIVE		      1.7160E+13      04-FEB-24	
	 27	          1	     1101023   209715200	   		1     NO  CURRENT		        1.7160E+13      04-FEB-24	 
	 33	          1	     1101018   209715200	   		1     YES INACTIVE		      1.7160E+13      04-FEB-24	  
	 23	          1	     1101020   209715200	   		1     YES INACTIVE		      1.7160E+13      04-FEB-24	 
	 31	          1	     1101017   209715200	   		1     YES INACTIVE		      1.7160E+13      04-FEB-24	
	 25	          1	     1101022   209715200	   		1     YES ACTIVE		        1.7160E+13      04-FEB-24	 
	 29	          2	     1101016   209715200	   		1     YES INACTIVE		      1.7143E+13      01-FEB-24	  
	 21	          2	     1101019   209715200	   		1     YES INACTIVE		      1.7143E+13      01-FEB-24	 
	 34	          2	     1101029   209715200	   		1     YES INACTIVE		      1.7143E+13      01-FEB-24	
	 28	          2	     1101035   209715200	   		1     YES ACTIVE		        1.7143E+13      01-FEB-24	 	 
	 32	          2	     1101028   209715200	   		1     YES INACTIVE		      1.7143E+13      01-FEB-24	 
	 30	          2	     1101031   209715200	   		1     YES INACTIVE		      1.7143E+13      01-FEB-24


清理損壞的redo

1、備份所有redolog

2、對損壞的redo log組進行清理(由於28組redo log狀態為active,active和CURRENT狀態的redo可能存在無法清理的情況)

alter database clear unarchived logfile group 28;

SQL> alter database clear unarchived logfile group 28;

alter database clear unarchived logfile group 28

*

ERROR at line 1:

ORA-01624: log 28 needed for crash recovery of instance task1 (thread 1)

ORA-00312: online log 28 thread 1: '+DATA2/TASK/redo28.log'

3、如果無法清理,在1節點進行disable 二節點

SQL> alter database disable thread 2

4、在1節點清理二節點故障redo

SQL> alter database clear logfile group 28;

5、在1節點重新開啟二節點

SQL> alter database enable thread 2

6、資料庫開啟

SQL> alter database open

當然除了這個方式,也可以透過dbca刪除節點例項,再增加例項來修復。


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/22967847/viewspace-3006351/,如需轉載,請註明出處,否則將追究法律責任。

相關文章