Previous Topic: 手動復原Next Topic: 從離線完整備份復原


復原控制檔案遺失或損毀的資料庫

如果控制檔案遺失或毀損,您必須先關閉資料庫並復原控制檔案,之後才能復原資料庫。關閉資料庫、復原控制檔案以及復原資料庫的步驟如下:

  1. 在 SVRMGR 或 SQL*Plus 提示中輸入下列指令,將資料庫關閉:
    SHUTDOWN;
    
  2. 在適當的提示下,啟動並裝載資料庫,然後開始復原程序。
  3. Oracle 會提示您輸入日誌檔名。Oracle 先尋找封存日誌檔,並自動為存在的封存日誌檔提供正確名稱。如果 Oracle 找不到需要的封存日誌檔,您必須手動提供 Oracle 需要的線上重做日誌。

    手動提供線上重做日誌時,您必須提供完整路徑和檔案名稱。如果輸入錯誤的日誌,請重新輸入指令:

    RECOVER DATABASE USING BACKUP CONTROLFILE;
    

    在提示下輸入正確的線上重做日誌檔。繼續此程序,直到 Oracle 成功套用所有日誌為止。

  4. 在 SVRMGR 或 SQL*Plus 提示中輸入下列指令,讓資料庫恢復為線上狀態並重設日誌:
    ALTER DATABASE OPEN RESETLOGS;
    
  5. 移動到存放封存重做日誌的目錄中,刪除所有日誌檔。
  6. 若有任何表格區仍處於離線狀態,請在 SVRMGR 或 SQL*Plus 提示中輸入下列指令,使其恢復為線上狀態:
    ALTER TABLESPACE TABLESPACE_NAME ONLINE;
    
  7. 如果您是以 RMAN 用備份的控制檔案復原整個資料庫,請重新同步處理 RMAN 內的資料庫資訊,以反映剛復原的資料庫。若要重新同步化資料庫資訊,請執行下列步驟:
    1. 以 oracle 身份登入。
    2. 輸入下列指令,將 oracle SID 設定成復原回來資料庫的 SID:
      ORACLE_SID=database SID
      
    3. 輸入下列指令完成整個程序:
      rman target dbuser/ dbuserpassword rcvcat catowner/catowner 
      password@rman service name
      reset database
      

      其中:

      • dbuser 為具有此復原資料庫 dba 權限的使用者。
      • dbuserpassworddbuser 的密碼。
      • catowner 為「Oracle 復原管理員」目錄擁有者的 Oracle 使用者名稱。
      • rman service name 是存取 rman 目錄安裝所在資料庫時所使用的服務名稱。