首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 重裝 OS 後資料庫極速恢復兩大方案:檔案級覆蓋與實例重建實戰

     編輯:Oracle 資料庫基礎

前提條件

  • 原 Oracle 安裝目錄 (如 D:\oracle) 完好無損,包含 oradata、admin、network 等關鍵子目錄。
  • 作業系統重裝後,磁碟代號、路徑、電腦名稱**最好保持一致** (電腦名變更需修改 listener.ora/tnsnames.ora)。
  • 備份關鍵檔案:init.ora/spfile、所有 .dbf、.log、.ctl、orapw。

方案一:檔案級覆蓋 (最快、風險最低)

  1. 備份新安裝產生的 oradata\ 目錄 (改名 _new)。
  2. 將原 oradata\ 複製回原路徑。
  3. 修改 sqlnet.ora 加入 SQLNET.AUTHENTICATION_SERVICES=(NTS) 解決 ORA-01031。
  4. 啟動服務:OracleService、OracleTNSListener。
  5. SQLPLUS / AS SYSDBA → STARTUP MOUNT → ALTER DATABASE OPEN。

適用:同版本、同路徑、同 SID、單實例非 RAC/ASM 環境。

方案二:實例重建 (通用、適應性強)

  1. 原 D:\oracle 改名 oracle_old。
  2. 全新安裝 Oracle 至 D:\oracle (同版本、同 SID)。
  3. 停止所有 Oracle 服務。
  4. 新 D:\oracle 改名 oracle_new,oracle_old 改回 oracle (物理檔案還原完成)。
  5. 刪除舊實例服務:oradim -delete -sid ,建議重開機。
  6. 重建實例服務:oradim -new -sid -startmode a -pfile "D:\Oracle\admin\\pfile\init.ora"。
  7. 啟動服務 → SQLPLUS / AS SYSDBA → STARTUP。
  8. 若電腦名變更,修改 listener.ora 中 HOST 參數並重啟 Listener。

關鍵檢查清單

  • [ ] init.ora / spfile 參數與原環境一致 (記憶體、路徑、進程數)。
  • [ ] 密碼檔 orapw 存在 (否則 orapwd 重建)。
  • [ ] listener.ora、tnsnames.ora、sqlnet.ora 路徑與 HOST/IP 正確。
  • [ ] oratab (Linux/Unix) 或註冊表 (Windows) 實例條目正確。
  • [ ] 磁碟空間充足,alert_.log 無錯誤。

常見坑點

現象原因對策
ORA-01031 insufficient privilegessqlnet.ora 缺 NTS 認證加入 SQLNET.AUTHENTICATION_SERVICES=(NTS)
ORA-01103 database name 'X' in control file is not 'Y'Control File 內 DB Name 與實例 SID 不符確認 SID 一致;或用 CREATE CONTROLFILE 重建
Listener 启动失败 TNS-12545電腦名/IP 變更,listener.ora 未同步修正 HOST 參數,重啟 Listener
Datafile header SCN mismatch備份檔案非一致性 (熱備份無歸檔)需應用歸檔日誌恢復一致性

總結

方案一「備份新→覆蓋舊→開庫」最快 (10 分鐘內);方案二「重裝→物理還原→重建實例」最通用。核心鐵律:**安裝路徑、SID、版本三一致**,物理檔案即可直接複用。

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