SHUTDOWN NORMAL/IMMEDIATE/TRANSACTIONAL);runInstaller -ignoreSysPrereqs),不創建實例,不運行DBCA;opatch lsinventory對比源端,確保PSU/CPU版本一致;ORACLE_BASE/admin/SID、ORACLE_BASE/oradata/SID、ORACLE_BASE/fast_recovery_area/SID。# 數據文件/控制文件/Redo
cp -r /backup/oradata/SID/* $ORACLE_BASE/oradata/SID/
# 參數文件
cp /backup/pfile/initSID.ora $ORACLE_HOME/dbs/
# 密碼文件
cp /backup/pwd/PWDSID.ora $ORACLE_HOME/dbs/
# 監聽/網絡配置
cp /backup/network/admin/*.ora $ORACLE_HOME/network/admin/
oradim -new -sid SID -intpwd sys_pwd -startmode auto -pfile $ORACLE_HOME/dbs/initSID.ora
netca /silent /responseFile $ORACLE_HOME/assistants/netca/netca.rsp
lsnrctl start
sqlplus / as sysdba
STARTUP
-- 若報ORA-01103/ORA-01113,參考Phase 4處理
若源端與目標端ORACLE_BASE或數據文件路徑不同,必須重建控制文件:
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/tmp/rebuild_ctrl.sql';
SQL> SHUTDOWN ABORT
SQL> @/tmp/rebuild_ctrl.sql
SQL> ALTER DATABASE OPEN RESETLOGS;
| 檢查項 | 命令/方法 | 合格標準 |
|---|---|---|
| 實例狀態 | SELECT STATUS FROM V$INSTANCE; | OPEN |
| 數據文件狀態 | SELECT FILE#, STATUS FROM V$DATAFILE; | 全ONLINE/SYSTEM |
| 表空間狀態 | SELECT TABLESPACE_NAME, STATUS FROM DBA_TABLESPACES; | 全ONLINE |
| 核心表行數 | SELECT COUNT(*) FROM core_table; | 與源端備份時間點一致 |
| Alert日誌 | tail -100 $ORACLE_BASE/diag/rdbms/SID/SID/trace/alert_SID.log | 無ORA-錯誤 |
| 應用連接測試 | JDBC/ODBC/應用驗證 | 業務功能正常 |
| 錯誤 | 原因 | 處理 |
|---|---|---|
| ORA-01103: DB名不一致 | 控制文件DB_NAME與參數文件不符 | 重建控制文件時修正SET DB_NAME |
| ORA-01113: 文件需媒體恢復 | 備份非一致性關閉 | RECOVER DATABASE → ALTER DATABASE OPEN RESETLOGS |
| ORA-00205: 控制文件錯誤 | 控制文件路徑/文件損壞 | 檢查CONTROL_FILES參數,重建控制文件 |
| ORA-27041: 打開文件失敗 | 路徑錯誤/權限/文件缺失 | 逐一核對V$DATAFILE物理路徑 |
冷備份恢復的核心在於「版本一致、路徑映射、控制文件重建」三大動作。建議將上述SOP固化為Ansible Playbook或Shell腳本庫,實現「一鍵恢復、自動驗收」,將RTO從小時級壓縮至30分鐘內。