服務器 C 槽故障重裝 OS 後,若原 Oracle 資料檔、控制檔、Redo Log 完好保留於非系統槽,可透過同路徑、同 SID、同帳密重裝 Oracle 軟體,再以原始目錄覆蓋新安裝目錄,實現零資料遺失、零程式碼修改的極速恢復。
ORACLE_BASE 目錄樹(含 oradata, admin, flash_recovery_area 等)。ORACLE_HOME 完全一致。DB_NAME 完全一致。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; -- 路徑正確
spfile/pfile)、密碼檔 (orapwSID) 在 ORACLE_HOME/dbs,覆蓋即還原配置。| 場景 | 可行性 | 備註 |
|---|---|---|
| 單實例、非 RAC、資料檔獨立磁碟 | ✅ 完美 | 最常見、風險最低 |
| RAC 叢集 | ❌ 不建議 | 涉及 Clusterware、OCR、Voting Disk,需完整叢集恢復流程 |
| 資料檔在系統槽且無備份 | ❌ 不可行 | 資料已遺失,需從備份還原 |
| 升級版本(如 11g → 19c) | ❌ 不可行 | 需執行升級腳本,不可直接覆蓋 |
ORACLE_HOME/dbs (spfile, password file) 與 network/admin (listener.ora, tnsnames.ora)。
3. 記錄安裝參數(SID, 路徑, 字元集, 密碼)存入版控庫。
4. 災難演練每半年演練一次「重裝 OS + 覆蓋目錄」流程。