不完全的解除安裝會導致重裝失敗、服務衝突、註冊表膨脹。本文定義企業級 Oracle 解除安裝 SOP,涵蓋 Universal Installer 正規移除、註冊表多層清理、檔案系統淨空、環境變數重置、ODBC/事件日誌清理,確保「乾淨如初」狀態。
services.msc
# 停止所有 Oracle* 服務
# 啟動類型 -> 已停用
| 層級 | 路徑 | 操作 | 工具 |
|---|---|---|---|
| 1. Oracle 產品資訊 | HKLM\SOFTWARE\Oracle | 刪除整個 Oracle 節點 | regedit |
| 2. 服務控制 | HKLM\SYSTEM\CurrentControlSet\Services | 搜尋 Oracle*,刪除所有相關鍵值 | regedit |
| 3. 事件日誌來源 | HKLM\SYSTEM\CurrentControlSet\Services\Eventlog\Application | 刪除 Oracle 相關鍵值 | regedit |
| 4. Legacy 驅動程式 (關鍵!) | HKLM\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_Oracle* | 需提權刪除 (見下節) | regedt32 (Win2003/XP) / regedit (Vista+) |
| 5. 歷史 ControlSet | HKLM\SYSTEM\ControlSet001\Enum\Root\LEGACY_Oracle* HKLM\SYSTEM\ControlSet002\Enum\Root\LEGACY_Oracle* | 同步清理 | 同上 |
regedt32.exe (非 regedit)。HKLM\SYSTEM\CurrentControlSet\Enum\Root。ControlSet001、ControlSet002 同樣操作。LEGACY_Oracle* 子鍵。直接用 regedit:右鍵 LEGACY_Oracle* → **權限** → **進階** → **擁有者** 改為 Administrators → 勾選 **完全控制** → 確定 → 刪除。
PATH、CLASSPATH,移除所有 %ORACLE_HOME%、%ORACLE_HOME%\bin、C:\Oracle\... 路徑。ORACLE_SID、ORACLE_HOME、TNS_ADMIN、NLS_LANG 等 Oracle 專用變數。C:\Oracle、C:\Program Files\Oracle (若刪除失敗,見 Phase 7)。C:\Windows\Oracle.ini, oradim*.ini, oraodbc.ini。C:\Windows\win.ini 是否有 [Oracle] 區段,刪除之。**必須重開機** 以釋放檔案鎖定、完成服務移除、重置註冊表快取。
odbcad32.exe 32/64 位) 移除所有 Oracle DSN。Process Explorer (Sysinternals) → Find Handle → 輸入檔名 (如 oci.dll) → 關閉持有進程。D:\Oracle\19c),舊路徑稍後以排程腳本 (如 sdelete) 強力刪除。services.msc 無任何 Oracle* 服務。regedit 搜尋 Oracle 僅剩應用程式自建項目 (非系統層)。PATH 無 Oracle 路徑。C:\Oracle, C:\Program Files\Oracle 不存在。odbcad32.exe 無 Oracle DSN。