聯機日誌檔案丟失解決方法(一)

season0891發表於2010-03-01
簡單總結一下日誌檔案丟失的幾種恢復方法。大體可以分為2大類:
 非歸檔模式下的日誌檔案丟失和歸檔模式下的日誌丟失。當然細分還可 以分為:非當前聯機日誌檔案的丟
失和當前聯機日誌檔案的丟失。
      如果日誌檔案做了映象的話,即使日誌檔案組裡的一個成員壞了,也不會影響資料庫的使用。這個
時候只需要刪除損壞的日誌成員,重新新增一個日誌成員即可。這裡主要介紹一日誌檔案組裡的成員都丟
失的情況。
   首先介紹一下非歸檔模式下非當前日誌檔案的丟失的恢復。

   對於非歸檔模式的非當前聯機日誌檔案的丟失恢復起來比較簡單,只需要重新建立日誌檔案即可。
  
   
SQL> SELECT NAME,OPEN_MODE,LOG_MODE FROM V$DATABASE;
NAME      OPEN_MODE  LOG_MODE
--------- ---------- ------------
TOMSYAN   READ WRITE NOARCHIVELOG
 
資料庫處於非歸檔模式。

SQL> SELECT GROUP#,SEQUENCE#,STATUS FROM V$LOG;
    GROUP#  SEQUENCE# STATUS
---------- ---------- ----------------
         1        106 CURRENT
         2        104 INACTIVE
         3        105 INACTIVE
當前的日誌序組是GROUP 1
下面刪除GROUP 3的日誌組裡的所有日誌成員,模擬日誌檔案的丟失。
SQL> SELECT MEMBER FROM V$LOGFILE WHERE GROUP#=3;
MEMBER
--------------------------------------------------------------------------------
C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\REDO03.LOG
SQL> SHUTDOWN IMMEDIATE;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> HOST DEL C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\REDO03.LOG
SQL> STARTUP
ORACLE 例程已經啟動。
Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             234883972 bytes
Database Buffers          369098752 bytes
Redo Buffers                7135232 bytes
資料庫裝載完畢。
ORA-00313: 無法開啟日誌組 3 (用於執行緒 1) 的成員
ORA-00312: 聯機日誌 3 執行緒 1:
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TOMSYAN\REDO03.LOG'
SQL> SELECT GROUP#,SEQUENCE#,STATUS FROM V$LOG;
    GROUP#  SEQUENCE# STATUS
---------- ---------- ----------------
         1        106 CURRENT
         3        105 INACTIVE
         2        104 INACTIVE
由於損壞的日誌組不是當前日誌組,這個時候只需要重新建日誌檔案即可,也不會對資料庫造成任何影響。
 
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 3;
資料庫已更改。
SQL> ALTER DATABASE OPEN;
資料庫已更改。

come from :http://blog.chinaunix.net/u3/107027/showart_2138803.html

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

相關文章