rac更改日誌組配置和ora-01567
gv$log檢視中的欄位含義
inst_id :例項號,僅表示這條記錄從哪來的
GROUP# :日誌組號,每個日誌組一個號,唯一
THREAD# :日誌組的例項號,表示這個日誌組是哪個例項在使用
bytes:大小
MEMBERS:成員數,在建立時指定檔案路徑和檔名,會自動識別成員數,是redo的冗餘
STATUS:狀態,active,inactive,unused,current。只有inactive和unused狀態能drop,其中unuesd表示一次沒用過
比如我下面這個redo配置
INST_ID GROUP# THREAD# MB MEMBERS STATUS---------- ---------- ---------- ---------- ---------- --------------------------------
1 1 1 500 2 INACTIVE
4 1 1 500 2 INACTIVE
3 1 1 500 2 INACTIVE
2 1 1 500 2 INACTIVE
2 10 1 500 2 ACTIVE
4 10 1 500 2 ACTIVE
3 10 1 500 2 ACTIVE
1 10 1 500 2 ACTIVE
3 11 1 500 2 CURRENT
1 11 1 500 2 CURRENT
2 11 1 500 2 CURRENT
4 11 1 500 2 CURRENT
3 2 2 500 2 CURRENT
2 2 2 500 2 CURRENT
4 2 2 500 2 CURRENT
1 2 2 500 2 CURRENT
3 3 2 500 2 INACTIVE
4 3 2 500 2 INACTIVE
2 3 2 500 2 INACTIVE
1 3 2 500 2 INACTIVE
3 12 2 500 2 ACTIVE
1 12 2 500 2 ACTIVE
2 12 2 500 2 ACTIVE
4 12 2 500 2 ACTIVE
2 5 3 500 2 CURRENT
1 5 3 500 2 CURRENT
3 5 3 500 2 CURRENT
4 5 3 500 2 CURRENT
3 6 3 500 2 ACTIVE
4 6 3 500 2 ACTIVE
2 6 3 500 2 ACTIVE
1 6 3 500 2 ACTIVE
4 9 3 500 2 INACTIVE
3 9 3 500 2 INACTIVE
1 9 3 500 2 INACTIVE
2 9 3 500 2 INACTIVE
4 4 4 500 2 ACTIVE
1 4 4 500 2 ACTIVE
2 4 4 500 2 ACTIVE
3 4 4 500 2 ACTIVE
1 7 4 500 2 CURRENT
3 7 4 500 2 CURRENT
2 7 4 500 2 CURRENT
4 7 4 500 2 CURRENT
1 8 4 500 2 ACTIVE
2 8 4 500 2 ACTIVE
4 8 4 500 2 ACTIVE
3 8 4 500 2 ACTIVE
48 rows selected.
上面內容很多,但還是很好理解的
資料庫一共4個例項,每個例項3個日誌組,每個組2個成員,每個成員的大小均為500m。所有應該所有3*4=12條記錄
每個例項有自己獨立的redo來寫日誌,thread#就是每個例項的一個編號,區分著每個例項上的日誌。而Gv$log檢視中的INST_ID只是表明該行資料來自哪個例項上的v$log檢視,與thread#的意義是不同的。
ora-01567:
SQL> alter database drop logfile group 6;
alter database drop logfile group 6
*
ERROR at line 1:
ORA-01567: dropping log 6 would leave less than 2 log files for instance xscsmp3 (thread 3)
ORA-00312: online log 6 thread 3: '+DATADG/XSCSMP/ONLINELOG/group_6.807.963760065'
ORA-00312: online log 6 thread 3: '+FRADG/XSCSMP/ONLINELOG/group_6.1481.963760065'
雖然redo的狀態為inactive,但是仍然無法刪除redo,因為每個thread(例項)都至少需要2個日誌組,所有必須要先對該thread添加了日誌組(日誌組大於等於3)並且group 6為inactive的時候才能drop 日誌組。
你可以開2個視窗
1個視窗 alter system switch logfile
另一個視窗查詢gv$log
select INST_ID,group#,thread#,bytes/1024/1024 mb,members,status from gv$log order by 3,2
檢視那個日誌組狀態是否是inactive