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

Oracle 服務遺失注冊表修復實戰指南

     編輯:Oracle 資料庫基礎

Oracle 服務遺失注冊表修復實戰指南

Windows 服務管理器中 Oracle 服務全部消失,通常因注冊表損毀或誤刪。本文提供跨機器匯出/匯入注冊表修復標準流程,含 SID 與路徑修正關鍵步驟。

故障現象

  • services.msc 中無任何 Oracle* 服務
  • net start OracleServiceORCL 提示「找不到服務名」
  • 資料庫無法啟動,EM/Listener 全掛

修復流程(6 步驟)

1. 從同版本健康機器匯出注冊表


regedit → HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services
右鍵匯出以下項目(另存為 .reg):
  OracleDBConsole
  OracleJobScheduler
  OracleiSQL*Plus
  OracleTNSListener
  OracleService

2. 匯入目標伺服器


將 .reg 檔複製到故障機器,雙擊匯入(或 regedit /s file.reg 靜默匯入)

3. 修正關鍵值(關鍵步驟)

使用 regedit 逐一修正以下項目:

注冊表路徑關鍵值修正內容
...\OracleServiceImagePath指向正確 ORACLE_HOME\bin\oracle.exe
...\OracleTNSListenerImagePath指向 ORACLE_HOME\bin\tnslsnr.exe
...\OracleDBConsoleEnvironment修正 ORACLE_HOME、ORACLE_SID、PATH
所有 Oracle 服務ObjectName通常為 LocalSystem 或指定服務帳號

4. 重啟伺服器


shutdown /r /t 0

5. 重建監聽器與服務命名

  • 啟動 Net Manager (netmgr)
  • 刪除舊的 Listener 與 Local Net Service Name
  • 重新建立 Listener(PORT 1521、IPC KEY)
  • 重新建立服務命名(SERVICE_NAME、HOST、PORT)

6. 啟動服務驗證


net start OracleServiceORCL
net start OracleTNSListener
tnsping ORCL
sqlplus / as sysdba

預防措施

  1. 定期備份 HKLM\SYSTEM\ControlSet001\Services\Oracle* 到版控系統
  2. 使用 Oracle Universal Installer (OUI) 進行安裝/修復,避免手動操作注冊表
  3. 建立服務狀態監控腳本,異常即時告警
  4. 文檔化服務依賴與啟動順序

備用方案:OUI 修復安裝


# 以管理員身分執行
setup.exe -ignoreSysPrereqs -silent -responseFile repair.rsp
# repair.rsp 含 INVENTORY_LOCATION, ORACLE_HOME, ACTION=REPAIR
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved