Windows 7 32 位系統安裝 Oracle 進度條卡在 86% 長時間無響應,絕大多數原因是系統殘留舊版 Oracle 註冊表項,安裝程序檢測到已安裝而嘗試升級/修復,導致邏輯死循環或權限衝突。
Oracle 開頭項目C:\app、D:\oracle 等)regeditHKEY_LOCAL_MACHINE\SOFTWARE\OracleHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Oracle (64位系統)HKEY_CURRENT_USER\SOFTWARE\OracleHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Oracle* (服務項)ORACLE_HOME, TNS_ADMIN, PATH 中的 Oracle 路徑)Universal Installer 卸載模式:安裝介質運行 setup.exe -deinstall| 項目 | 要求 | 說明 |
|---|---|---|
| 安裝路徑 | 無中文、無空格、無特殊字符 | 如 D:\Oracle11g,避免 Program Files 空格導致腳本失敗 |
| 用戶權限 | 管理員身份運行 | 右鍵 setup.exe → 以管理員身份運行 |
| 殺毒軟件 | 暫時關閉 | 防止攔截註冊表寫入、文件釋放 |
| 防火牆 | 允許 Oracle 通訊 | 或暫時關閉 |
| 系統服務 | 確保 Windows Installer、Remote Procedure Call 運行中 | services.msc 檢查 |
# 創建 response 文件 db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11.2.0
ORACLE_HOSTNAME=localhost
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=D:\Oracle\oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=D:\Oracle\product\11.2.0\dbhome_1
ORACLE_BASE=D:\Oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=ORA_DBA
oracle.install.db.OPER_GROUP=ORA_OPER
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.memoryLimit=512
oracle.install.db.config.starterdb.password.ALL=YourPassword123
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
# 管理員 CMD 執行
setup.exe -silent -responseFile D:\path\db_install.rsp -ignorePrereq
| 進度 | 階段 | 可能原因 |
|---|---|---|
| 0-10% | 檢查先決條件、複製文件 | 磁盤空間不足、殺毒軟件攔截、路徑非法 |
| 10-50% | 解壓文件、註冊組件 | 權限不足、文件鎖定、註冊表殘留 |
| 50-85% | 配置數據庫實例、創建服務 | 服務名衝突、註冊表殘留、內存不足 |
| 86% | 運行配置腳本、啟動服務 | 註冊表檢測到舊實例、服務啟動失敗、權限不足 |
| 86-100% | 後配置、Enterprise Manager 部署 | 端口占用、防火牆、瀏覽器兼容性 |
sqlplus / as sysdba 連接數據庫lsnrctl status 監聽器狀態https://localhost:5500/em (Enterprise Manager)OracleServiceORCL, OracleOraDb11g_home1TNSListener 運行中總結:86% 卡住 90% 是註冊表殘留。徹底清理 + 管理員運行 + 乾淨路徑 + 關閉干擾軟件 = 必裝成功。生產環境建議使用靜默安裝腳本實現自動化、可復現部署。