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

系統重裝後 Oracle 資料庫完整還原:同路徑重裝 + 目錄覆蓋實戰

     編輯:Oracle 資料庫相關知識

服務器 C 槽故障重裝 OS 後,若原 Oracle 資料檔、控制檔、Redo Log 完好保留於非系統槽,可透過同路徑、同 SID、同帳密重裝 Oracle 軟體,再以原始目錄覆蓋新安裝目錄,實現零資料遺失、零程式碼修改的極速恢復。

前提條件

  • 資料檔、控制檔、Redo Log、參數檔、密碼檔、監聽器設定檔均位於非系統槽(如 D:/oradata、E:/oracle/admin)。
  • 備份完整的 ORACLE_BASE 目錄樹(含 oradata, admin, flash_recovery_area 等)。

恢復步驟

  1. 重裝 OS,保持磁碟分區、磁碟代號不變。
  2. 2. 同參數安裝 Oracle 軟體:
    • 安裝路徑 ORACLE_HOME 完全一致。
    • SID / 全域資料庫名 DB_NAME 完全一致。
    • SYS / SYSTEM 密碼一致。
    • 字元集、國家字元集一致。
    3. 停止新安裝的服務:
    net stop OracleServiceSID
    net stop OracleOraHomeTNSListener
    
    4. 用備份目錄完整覆蓋新安裝目錄:
    xcopy /E /H /Y /K D:\Backup\OracleBase\* D:\OracleBase\*
    # 或 rsync -a /backup/oracle/ /u01/app/oracle/   (Linux)
    
    5. 啟動服務:
    net start OracleServiceSID
    net start OracleOraHomeTNSListener
    
    6. 驗證:
    sqlplus / as sysdba
    SELECT open_mode FROM v$database;  -- READ WRITE
    SELECT * FROM v$controlfile;       -- 路徑正確
    

為何可行?

  • Oracle 資料庫核心資料儲存在資料檔,與軟體二進位分離。
  • 控制檔記錄資料檔/Redo 路徑,路徑未變即可直接掛載。
  • 參數檔 (spfile/pfile)、密碼檔 (orapwSID) 在 ORACLE_HOME/dbs,覆蓋即還原配置。
  • Job、排程、連結伺服器等中繼資料皆在資料字典中,隨資料檔還原。

適用場景與限制

場景可行性備註
單實例、非 RAC、資料檔獨立磁碟✅ 完美最常見、風險最低
RAC 叢集❌ 不建議涉及 Clusterware、OCR、Voting Disk,需完整叢集恢復流程
資料檔在系統槽且無備份❌ 不可行資料已遺失,需從備份還原
升級版本(如 11g → 19c)❌ 不可行需執行升級腳本,不可直接覆蓋

最佳實踐建議

  1. 規劃安裝時將 ORACLE_BASE 置於非系統槽。
  2. 2. 定期備份 ORACLE_HOME/dbs (spfile, password file) 與 network/admin (listener.ora, tnsnames.ora)。 3. 記錄安裝參數(SID, 路徑, 字元集, 密碼)存入版控庫。 4. 災難演練每半年演練一次「重裝 OS + 覆蓋目錄」流程。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved