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

Windows 徹底卸載 Oracle 10g 13 步驟:從服務停止到登錄表清理的標準化流程

     編輯:Oracle 資料庫基礎

Oracle 10g 在 Windows 上的卸載若不徹底,殘留的服務、登錄項、環境變數、ODBC DSN 會導致後續安裝失敗或版本衝突。本文提供經驗證的 13 步驟標準化流程,確保乾淨卸載,支援同機重裝或升級。

環境假設

  • OS:Windows XP / Server 2003 / 2008 / 2012 / 2016 / 2019
  • Oracle 安裝路徑:D:\Oracle(ORACLE_BASE)
  • Inventory 目錄:C:\Program Files\Oracle

13 步驟徹底卸載

  1. 停止所有 Oracle 服務
    services.msc → 找 Oracle*、OracleDBConsole*、OracleJobScheduler*、OracleVSSWriter* 等 → 全部「停止」並設為「手動」。
  2. 通用安裝程式卸載產品
    開始 → 程式集 → Oracle - OraDb10g_home1 → Oracle Installation Products → Universal Installer → 選擇「卸載產品」 → 全選移除(Universal Installer 本身保留)。
  3. 刪除 HKLM\SOFTWARE\Oracle
    regedit → 刪除 HKEY_LOCAL_MACHINE\SOFTWARE\Oracle 整個金鑰。
  4. 刪除服務登錄項
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services → 搜尋 Oracle*、Ora* → 全部刪除。
  5. 刪除事件檢視器來源
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application → 刪除 Oracle* 子鍵。
  6. 清除環境變數
    系統屬性 → 進階 → 環境變數 → 刪除 CLASSPATH、PATH 中所有 Oracle 相關路徑(%ORACLE_HOME%\bin 等)。
  7. 移除捷徑與程式群組
    桌面、開始功能表、啟動群組 → 刪除所有 Oracle 圖示/資料夾。
  8. 刪除 Inventory 目錄
    rd /s /q "C:\Program Files\Oracle"。
  9. 重新啟動電腦(釋放被鎖定的 DLL/檔案)。
  10. 刪除 Oracle 基底目錄
    rd /s /q "D:\Oracle"(或你的 ORACLE_BASE)。
  11. 刪除 Windows 目錄下殘留 .INI 檔
    del C:\Windows\Oracle.INI C:\Windows\oradim*.INI C:\Windows\oraodbc.ini(視實際存在而定)。
  12. 清理 WIN.INI(舊版殘留)
    notepad C:\Windows\WIN.INI → 刪除 [Oracle] 區段。
  13. 刪除 ODBC DSN
    odbcad32.exe → 系統 DSN / 使用者 DSN → 刪除所有 Oracle 相關資料來源。
  14. (選擇性)清除事件檢視器舊日誌
    eventvwr.msc → Application / System → 篩選 Oracle 來源 → 清除日誌。

常見殘留問題與對策

自動化腳本參考(PowerShell 片段)

# 停止服務
Get-Service -Name Oracle* | Stop-Service -Force -ErrorAction SilentlyContinue
Get-Service -Name Oracle* | Set-Service -StartupType Manual

# 刪除登錄
Remove-Item -Path 'HKLM:\SOFTWARE\Oracle' -Recurse -Force -ErrorAction SilentlyContinue
Get-ChildItem 'HKLM:\SYSTEM\CurrentControlSet\Services' -Filter 'Oracle*' | Remove-Item -Recurse -Force
Get-ChildItem 'HKLM:\SYSTEM\CurrentControlSet\Services\Eventlog\Application' -Filter 'Oracle*' | Remove-Item -Recurse -Force

# 環境變數
[Environment]::SetEnvironmentVariable('CLASSPATH',$null,'Machine')
$path = [Environment]::GetEnvironmentVariable('PATH','Machine')
$newPath = ($path -split ';' | Where-Object {$_ -notmatch 'Oracle'}) -join ';'
[Environment]::SetEnvironmentVariable('PATH',$newPath,'Machine')

# 刪除目錄
Remove-Item 'C:\Program Files\Oracle' -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item 'D:\Oracle' -Recurse -Force -ErrorAction SilentlyContinue

執行完以上流程並重啟,系統即回到「未安裝 Oracle」的乾淨狀態,可放心進行新版本安裝或升級測試。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
現象原因解法
DLL 無法刪除進程仍載入重啟後再刪,或用 Process Explorer 找持有者殺掉
再次安裝報「Inventory 衝突」C:\Program Files\Oracle 未清步驟 8 必須執行
服務仍殘留登錄項未刪步驟 4、5 必須執行