| 項目 | 必備條件 | |
|---|---|---|
| OS 版本/套件 | 與原環境一致 (含核心參數、用戶/群組、目錄結構) | |
| Oracle 軟體 | 相同版本/PSU 重新安裝至相同路徑 | |
| 資料檔 | 完整、路徑不變、權限正確 (oracle:oinstall) | |
| 控制檔 | 至少一份完整 (多路徑多工) | |
| Redo Log | 所有線上 Redo Log 完整 | |
| SPFILE/PFILE | 檔案備份或可從 Alert Log 重建參數 | |
| 密碼檔 | 備份或重建 |
| 條件 | 選項 | 後果 |
|---|---|---|
| 所有線上 Redo Log 完整、無遺失、SCN 連續 | NORESETLOGS | 保留現有 Redo 序號、可繼續應用歸檔 |
| Redo Log 遺失、損壞、或不確定 | RESETLOGS | 開新 Incarnation、需完整備份、舊歸檔無效 |
原則:能用 NORESETLOGS 盡量用;必須 RESETLOGS 時,立即執行完整備份。
# 目標端 (已安裝軟體、建立密碼檔、啟動 NOMOUNT)
rman target /
RESTORE CONTROLFILE FROM '/backup/controlfile.bkp';
ALTER DATABASE MOUNT;
RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN RESETLOGS; -- 或 NORESETLOGS 視情況
| 錯誤 | 原因 | 解決 |
|---|---|---|
| ORA-01100: database already mounted | 重複 MOUNT | 檢查 SELECT status FROM v$instance; |
| ORA-01194: file 1 needs more recovery | 資料檔需更多 Redo | 提供歸檔、繼續 RECOVER |
| ORA-01547: RECOVER succeeded but OPEN RESETLOGS would get error | 資料檔不一致 | 檢查所有資料檔 ONLINE、OFFLINE DROP 損壞檔 |
| ORA-00205: control file error | 控制檔路徑/權限 | 檢查 control_files 參數、檔案存在權限 |
DBMS_STATS.GATHER_SCHEMA_STATS 更新統計