普通卸載殘留註冊表鍵值、服務、環境變量、文件夾,導致再次安裝時安裝程序閃退、檢測到舊實例、端口衝突。徹底清理是重裝成功的前提。
services.msc):停止所有 Oracle*、OracleDBConsole*、OracleJobScheduler*、OracleMTSRecoveryService、OracleVSSWriter* 服務。開始 → 程序 → Oracle - OraHome → Oracle Installation Products → Universal Installer → 移除所有產品 (保留 Installer 本身)。⚠️ 操作前導出註冊表備份!
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE → 刪除整個 ORACLE 鍵HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services → 搜索並刪除所有 Oracle*、Ora* 服務鍵HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application → 刪除 Oracle 相關事件源鍵HKEY_CLASSES_ROOT 下 Oracle 相關 COM/ActiveX 鍵 (可選)sysdm.cpl → 高級 → 環境變量):刪除 CLASSPATH、PATH 中所有 Oracle 路徑 (如 C:\oracle\product\11.2.0\dbhome_1\bin)C:\Oracle、C:\app\oracle (或自定義 ORACLE_BASE) 整個目錄樹C:\Windows 或 C:\WINNT 下刪除 ORACLE.INI、oradim*.INI、oraodbc.ini 等[ORACLE] 節點,刪除該節點odbcad32.exe):系統 DSN / 用戶 DSN 中刪除所有 Oracle 驅動條目%ORACLE_HOME%\network\admin\ 下的 listener.ora、tnsnames.ora、sqlnet.ora (若未備份遷移)eventvwr.msc):應用程序日誌中清除 Oracle 來源事件 (右鍵「清除日誌」)若提示「文件被占用無法刪除」:
Process Explorer 查找句柄持有進程# 重啟後檢查
reg query HKLM\SOFTWARE\ORACLE # 應報錯「找不到」
dir C:\Oracle # 應報錯「找不到」
lsnrctl status # 應報錯「服務未啟動」
sqlplus /nolog # 應提示「未找到命令」
SOFTWARE\ORACLEC:\Oracle\Wallet 或 %USERPROFILE%\Oracle 目錄需單獨備份後再清理HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\olr、CSSD 服務,清理更複雜,建議參考 MOS Note 1063182.1總結: Windows 下 Oracle 卸載本質是註冊表手術 + 文件系統掃蕩。嚴格按「服務→安裝器→註冊表→環境變量→文件→重啟」六步走,配合備份註冊表、新目錄安裝策略,可實現「乾淨如初」的重裝環境。