Oracle 非綠色軟件,安裝過程會在系統深處植入服務、註冊表項、環境變量、用戶配置文件等。簡單運行安裝程序的「卸載」往往遺留大量殘留,導致:
本文提供經驗驗證的 9 步徹底清理流程,適用於 Oracle 10g/11g/12c/18c/19c Windows 版本。
# 方式 A:服務管理器 (services.msc)
# 停止並將啟動類型設為「禁用」的服務名模式:
OracleService -- 數據庫實例服務
OracleTNSListener -- 監聽器
OracleDBConsole -- EM Database Console
OracleMTSRecoveryService
OracleJobScheduler
OracleVSSWriter
OracleRemExecServiceV2 -- 遠程執行服務
PowerShell 一鍵停止禁用:
Get-Service -Name "Oracle*" | ForEach-Object {
Stop-Service -Name $_.Name -Force -ErrorAction SilentlyContinue
Set-Service -Name $_.Name -StartupType Disabled
}
路徑:`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\`
PowerShell:
Remove-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Oracle*" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\OracleRemExecServiceV2" -Recurse -Force -ErrorAction SilentlyContinue
路徑:`HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\`
Remove-Item -Path "HKLM:\SOFTWARE\Oracle" -Recurse -Force -ErrorAction SilentlyContinue
路徑:`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\`
高風險操作,建議備份後編輯:
PowerShell 輔助(僅顯示 Oracle 相關路徑):
[Environment]::GetEnvironmentVariable("Path","Machine").split(";") | Where-Object {$_ -match "Oracle|oracle"}
釋放文件鎖定、卸載驅動、刷新註冊表快取。
# 典型路徑
D:\app\oracle\product\11.2.0\dbhome_1\
C:\oracle\product\10.2.0\db_1\
# 以管理員身份運行 CMD/PowerShell
rmdir /s /q "D:\app\oracle\product\11.2.0\dbhome_1"
若提示「文件被佔用」: 使用 `Process Explorer` (Sysinternals) 查找句柄 → 關閉進程 → 再刪。或進入安全模式刪除。
rmdir /s /q "C:\Program Files\Oracle"
rmdir /s /q "C:\Program Files (x86)\Oracle"
| 檢查項 | 命令/路徑 | 預期結果 |
|---|---|---|
| 服務 | `sc query type= service state= all | findstr /i oracle` | 無輸出 |
| 註冊表 Services | `reg query HKLM\SYSTEM\CurrentControlSet\Services /k /f Oracle` | 錯誤:找不到 |
| 註冊表 SOFTWARE | `reg query HKLM\SOFTWARE\Oracle` | 錯誤:找不到 |
| PATH 變量 | `echo %PATH% | findstr /i oracle` | 無輸出 |
| Oracle Home 目錄 | `dir "D:\app\oracle"` | 找不到文件 |
| Inventory | `dir "C:\Program Files\Oracle\Inventory"` | 找不到文件 |