Oracle Universal Installer (OUI) 卸載後仍遺留大量註冊表鍵值、服務、環境變數與檔案,導致重裝失敗或系統效能下降。本文提供經實測的完整手動清理清單,涵蓋服務停止、OUI 卸載、註冊表深度清理、環境變數、檔案系統、啟動項與臨時檔案。
tnsnames.ora、listener.ora、sqlnet.ora 等配置檔regeditlocalconfig delete(非 ASM 環境可跳過,報錯忽略)services.msc 中停止 Oracle*、Ora* 開頭服務oradim -delete -asmsid +ASMHKEY_LOCAL_MACHINE\SOFTWARE\ORACLE -- 整個金鑰
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Oracle* -- 所有 Oracle 服務
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\Oracle*
HKEY_CLASSES_ROOT\Ora* \Oracle* \Orcl* \EnumOra* -- 類別註冊
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu\Programs\Oracle*
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Oracle* -- 保留 Microsoft ODBC for Oracle
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleWeb*
⚠️ 操作註冊表前務必匯出備份(右鍵 → 匯出),誤刪系統金鑰可能導致 Windows 無法啟動
PATH、CLASSPATH 中含 Oracle 路徑的項目ORACLE_HOME、ORACLE_SID、TNS_ADMIN、NLS_LANG 等 Oracle 專用變數C:\Program Files\Oracle\(或自訂安裝目錄)ORACLE_BASE 目錄(預設 C:\app\\ 或 D:\oracle\)C:\Windows\ORACLE.INI、oradim*.INI、oraodbc.iniC:\Documents and Settings\\Local Settings\Temp\ 臨時檔regedit 搜尋 "Oracle" 確認無殘留| 錯誤現象 | 可能殘留原因 |
|---|---|
| INS-32008: Oracle Home 已存在 | 註冊表 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_* 未清 |
| INS-13001: 環境變數衝突 | PATH 中舊 ORACLE_HOME 未移除 |
| 服務啟動失敗 1053/1069 | 舊服務鍵值殘留、映像路徑指向已刪除的二進位檔 |
| TNS-12560 / ORA-12154 | 舊 tnsnames.ora 被新客戶端讀取、註冊表 TNS_ADMIN 指向舊目錄 |
徹底卸載 = OUI 卸載 + 註冊表掃除 + 檔案清理 + 環境變數淨化 + 重啟驗證。少一步皆可能為下一次安裝埋下伏筆。