上一個主題: 還原控制檔下一個主題: 使用裸機復原來復原 Oracle 資料庫


還原整個資料庫 (表格區和控制檔)

您可以還原整個資料庫 (所有表格區和控制檔)。 還原之前,您必須先找到檔案。 找到檔案時,請確定資料庫處於已開啟狀態。 如果資料庫處於已開啟狀態,請使用 ALTER TABLESPACE. OFFLINE 陳述式可先將表格區或資料檔案設為離線狀態,再開始還原程序。

請依循下列步驟:

  1. 登入您要還原表格區或資料檔案的電腦。
  2. 使用下列命令尋找使用者表格區或資料檔案:
    SQL> SELECT TABLESPACE_NAME, FILE_NAME from DBA_DATA_FILES;
    
    SQL> SHOW PARAMETER CONTROL FILES;
    
  3. 在您還原表格區或資料檔案之前,請先將資料庫的狀態變更為未裝載或關閉。
    SQL> STARTUP NOMOUNT;
    
    SQL>shutdown immediate;
    
  4. 登入 Arcserve UDP 主控台。
  5. 使用還原精靈將表格區或資料檔案還原。 如需還原程序的詳細資訊,請參閱「如何從復原點還原」。
  6. 登入目標電腦。
  7. 瀏覽至特定資料夾,並驗證表格區或資料檔案已還原。
  8. 復原資料庫。
    SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
    
  9. 套用提示的封存日誌。

    附註:如果所需的封存日誌遺失,表示必要的重做記錄位在線上重做日誌中。 因為執行個體失敗時,未封存的變更會位於線上日誌中,此狀況便會發生。 您可以指定線上重做日誌檔的完整路徑,然後按下 Enter (您可能必須嘗試幾次,直到找到正確日誌為止)。

  10. 輸入下列命令,以傳回資料庫重做日誌的相關控制檔資訊:
    SQL>SELECT * FROM V$LOG;
    
  11. (選用) 輸入下列命令,以查看群組所有成員的名稱:
    SQL>SELECT * FROM V$LOGFILE;
    

    範例:在套用提示的封存日誌後,您可能會看到下列訊息:

    ORA-00279: change 55636 generated at 24/06/2014 16:59:47 needed for thread 1
    
    ORA-00289: suggestion e:\app\Administrator\flash_recovery_area\orcl\ARCHIVELOG\2014_06_24\ O1_MF_1_2_9TKXGGG2_.ARC
    
    ORA-00280: change 55636 for thread 1 is in sequence #24
    
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    
  12. 指定線上重做日誌檔的完整路徑,然後按下 Enter。

    範例:E:\app\Administrator\oradata\orcl\redo01.log

    附註:您必須多次指定完整路徑,直到您取得正確日誌為止。

    隨即顯示下列訊息:

    日誌已套用
    
    媒體復原完成
    
  13. 在完成復原程序後,使用 RESETLOGS 子句開啟資料庫。
    SQL> ALTER DATABASE OPEN RESETLOGS;
    

整個資料庫已還原。