聯機記錄檔Inacitve狀態表示這個日誌包含的資料修改已經同步到資料檔案中,執行個體恢 複時已不需要它,所以它的丟失不會造成任何的資料丟失,但是會造成資料庫無法開啟,解 決方法是把丟失的inactive刪除掉,重新添加新的聯機日誌。
1)類比災難
首先查 看log的狀態:
SQL> select group#,sequence#,status from v$log;
GROUP# SEQUENCE# STATUS
---------- ---------- ----------------
1 1 INACTIVE
2 2 INACTIVE
3 3 CURRENT
Group#1的狀態為inactive,我們找出它所對應的磁碟檔案:
SQL> select group#,member from v$logfile where group#=1;
GROUP# MEMBER
------ ---- --------------------------------------------------
1 I:\INTEL_DATA\O04DMS0\REDO01.O04DMS0
關閉資料庫:
SQL> shutdown immediate;
把REDO01.O04DMS0檔案在作業系統級 別刪除。
2)根據錯誤資訊定位問題
啟動資料庫會出現以下錯誤:
SQL> startup
ORACLE instance started.
Total System Global Area 281018368 bytes
Fixed Size 1296292 bytes
Variable Size 251660380 bytes
Database Buffers 25165824 bytes
Redo Buffers 2895872 bytes
Database mounted.
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312:online log 1 thread 1: 'I:\INTEL_DATA\O04DMS0\REDO01.O04DMS0'
從以上錯誤資訊中,可以看到聯機記錄檔丟失導致無法開啟資料庫,查一下丟失日誌的 狀態:
SQL> select group#,sequence#,status from v$log where group#=1;
GROUP# SEQUENCE# STATUS
---------- ---------- ---------- ------
1 1 INACTIVE
幸運 地是,丟失的聯機日誌狀態為inactive,那麼我們不需要做什麼,只要刪除它即可,但是最 好在刪除它之前先增加一組聯機日誌:
SQL> alter database add logfile group 4 ('I:\INTEL_DATA\O04DMS0\REDO04.O04DMS0') size 100M;
Database altered.