首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 10g 作業系統損毀後的完整恢復實戰記錄

     編輯:Oracle 資料庫相關知識

記錄一次真實案例:Oracle 10g on AIX 5.2,RootVG(OS/軟體)損毀,DataVG(資料檔/控制檔/Redo Log)倖存。本文詳細記錄從 OS 重裝、Oracle 軟體重裝、參數檔恢復、目錄建立、實例啟動、資料庫掛載/開啟、關閉 Flashback、最終正常服務的完整操作流程,供同類災難恢復參考。

環境拓撲

  • OS:AIX 5.2
  • Oracle Home:/oracle (RootVG)
  • 資料檔/控制檔/Redo Log:/oradata (DataVG) — 未損毀
  • 控制檔備份位置:$ORACLE_HOME/dbs/ (1份) + /oradata (2份)
  • Redo Log:$ORACLE_HOME/dbs/ + /oradata 各 1 份,共 3 組
  • SPFILE 備份:最新備份可用

恢復操作日誌

  1. 重裝 OS (AIX 5.2)。
  2. 重裝 Oracle 10g 軟體至原路徑 /oracle。
  3. 恢復 SPFILE:將備份 spfilehb052500.ora 複製至 $ORACLE_HOME/dbs/。
  4. STARTUP NOMOUNT → 報錯缺少 cdump、udump 目錄 → 手動建立 $ORACLE_BASE/hb052500/cdump、udump。
  5. 再次 STARTUP NOMOUNT → 錯誤 ORA-00444: MMAN 啟動失敗、ORA-07446: sdnfy: bad value → 目錄路徑參數無效。
  6. 建立 PFILE 並檢視參數:
    SQL> CREATE PFILE FROM SPFILE;
    File created.
    
    檢視 init.ora 發現需建立的目錄:

    • log_archive_dest_1 = '/oracle/app/oracle/OraHome/dbs/archive'
    • background_dump_dest = '/oracle/app/oracle/admin/hb052500/bdump'
  7. 依參數建立缺失目錄:
    $ mkdir -p /oracle/app/oracle/admin/hb052500/bdump
    $ mkdir -p /oracle/app/oracle/OraHome/dbs/archive
    
  8. STARTUP NOMOUNT 成功:
    ORACLE instance started.
    Total System Global Area 289406976 bytes
    ...
    
  9. ALTER DATABASE MOUNT → 錯誤 ORA-01990: 密碼檔不存在、ORA-27037。
  10. 重建密碼檔:
    $ orapwd file=$ORACLE_HOME/dbs/orapwd.ora password=oracle
    
  11. 再次 MOUNT → ORA-01100: database already mounted(顯示已自動掛載)。
  12. ALTER DATABASE OPEN → ORA-38760: Flashback 無法開啟。
  13. 關閉 Flashback 並開啟資料庫:
    SQL> ALTER DATABASE FLASHBACK OFF;
    Database altered.
    SQL> ALTER DATABASE OPEN;
    Database altered.
    
  14. 驗證歸檔模式:
    SQL> ARCHIVE LOG LIST;
    Database log mode: Archive Mode
    Automatic archival: Enabled
    Archive destination: /oracle/app/oracle/OraHome/dbs/archive
    Oldest online log sequence: 614
    Next log sequence to archive: 616
    Current log sequence: 616
    

關鍵學習點

  1. 資料檔與軟體分離儲存(DataVG 倖存)是快速恢復的關鍵;若資料檔同在 RootVG,需從磁帶/異地備份恢復,RTO 大幅拉長。
  2. SPFILE/PFILE 參數檔備份必須包含所有目錄參數(bdump、udump、cdump、archive),否則啟動會因目錄缺失失敗。
  3. 密碼檔不在資料檔中,OS 重裝後必須用 orapwd 重建,否則 MOUNT 會失敗。
  4. Flashback Database 若無法開啟(如缺少 Flashback Log、參數不一致),可暫時關閉 FLASHBACK OFF 先開啟資料庫,事後再重新配置。
  5. 歸檔模式自動保留:資料庫開啟後自動進入歸檔模式,序號連續,無資料遺失。

標準化災難恢復檢核清單

  • ☐ OS 重裝完成、修補包套用
  • ☐ Oracle 軟體重裝至原路徑、版本一致
  • ☐ SPFILE/PFILE 從異地備份恢復
  • ☐ 依參數檔建立所有背景/歸檔目錄
  • ☐ STARTUP NOMOUNT 成功
  • ☐ 重建密碼檔
  • ☐ ALTER DATABASE MOUNT 成功
  • ☐ 處理 Flashback/其他阻礙開啟的功能
  • ☐ ALTER DATABASE OPEN 成功
  • ☐ 驗證歸檔模式、Redo Log 狀態、表空間線上
  • ☐ 應用層連線測試、業務驗收

將此流程文件化、腳本化(Shell/Python 自動建目錄、檢查參數),並納入年度災難恢復演練,才能在真正災難發生時從容應對。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved