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

徹底移除 Oracle 殘留 Windows 服務:註冊表清理實戰指南

     編輯:Oracle 資料庫基礎

Oracle 解除安裝後常遺留 Windows 服務項目,導致重裝報錯「服務已存在」。本文提供從服務管理工具到註冊表深層清理的完整步驟,包含 Legacy 鍵值權限突破技巧,確保環境乾淨可重裝。

階層式清理策略

第 1 層:服務管理工具停用與禁用

  1. 執行 services.msc,找到所有 Oracle*、OracleDBConsole*、Oracle*Listener* 服務。
  2. 狀態為「執行中」者先 **停止**。
  3. 啟動類型改為 **「已停用」** (非手動),防止重開機自動啟動。

第 2 層:標準註冊表服務鍵值刪除

路徑:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

  1. 開啟 regedit (或 regedt32)。
  2. 搜尋 Oracle 關鍵字,確認鍵值位於 Services 底下。
  3. 刪除所有 Oracle 相關鍵值 (如 OracleServiceORCL, OracleDBConsoleorcl, OracleOraDb11g_home1TNSListener 等)。

同步清理事件日誌來源:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application 下同樣刪除 Oracle 相關鍵值。

第 3 層:Legacy 驅動程式鍵值 (權限受保護,需提權)

路徑:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root 下的 LEGACY_Oracle* 鍵值。
Windows 2000/Server 2003/XP 均存在此層,直接刪除會提示「無法刪除:存取被拒絕」。

突破權限步驟 (regedt32 必須)

  1. 執行 regedt32.exe (非 regedit)。
  2. 定位 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root。
  3. 選中 Root 鍵 → **安全性** → **權限** → **新增** 目前使用者/Administrators → 勾選 **完全控制**。
  4. 同樣處理 ControlSet001、ControlSet002 下的對應路徑。
  5. 回到 Root 下,刪除所有 LEGACY_Oracle* 子鍵。

Windows Vista/7/10/11 簡化方式

使用 regedit 即可:右鍵 LEGACY_Oracle* → **權限** → 給予 **Everyone** 或目前使用者 **完全控制** → 確定後即可刪除。

第 4 層:Oracle 軟體註冊資訊

路徑:HKEY_LOCAL_MACHINE\SOFTWARE\Oracle (含 KEY_OraDb11g_home1 等安裝家目錄資訊)。
整個 Oracle 節點直接刪除。

環境變數與檔案系統清理

  • 系統環境變數:移除 PATH、CLASSPATH 中的 Oracle 路徑 (如 %ORACLE_HOME%\bin)。
  • 使用者環境變數:清除 TNS_ADMIN、NLS_LANG、ORACLE_SID 等。
  • 安裝目錄:刪除 C:\Oracle、C:\Program Files\Oracle (需重開機釋放檔案鎖定)。
  • 系統目錄殘檔:C:\Windows\Oracle.ini, oradim*.ini, oraodbc.ini 等。
  • 開始功能表/桌面捷徑:刪除所有 Oracle 程式群組與圖示。
  • ODBC 資料來源:odbcad32.exe (32/64 位均需) 移除 Oracle 相關 DSN。
  • 事件檢視器:清除 Application/System 日誌中的 Oracle 事件來源 (需管理員權限)。

順序與重開機關鍵點

  1. 停止服務 → 禁用服務。
  2. Universal Installer 解除安裝產品 (保留 Installer 本身)。
  3. 註冊表清理 (SOFTWARE\Oracle → Services → Eventlog → Enum\Root Legacy)。
  4. 環境變數清理。
  5. 重開機 (釋放檔案鎖定、完成服務移除)。
  6. 刪除實體安裝目錄與系統目錄殘檔。

頑固 DLL 無法刪除對策

若重開機後仍有 DLL 被鎖定 (如 oci.dll):

  1. 使用 Process Explorer (Sysinternals) 搜尋 Handle,終結持有進程。
  2. 或進入安全模式刪除。
  3. 或安裝新版 Oracle 時指定 **全新目錄**,舊目錄稍後再清理。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved