1. 程式人生 > >rac更改日誌組配置和ora-01567

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