首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 安裝卸載避坑全書:P4/Win2000/9i/10g/11g/12c/19c 跨版本跨平台實戰經驗彙總

     編輯:Oracle 資料庫相關知識

硬體與 OS 基線需求(企業版為例)

項目最低推薦
CPUx86_64 2 核8 核+、支援 AVX2
內存2 GB16 GB+(SGA+PGA 預留)
磁盤10 GBSSD/NVMe 500 GB+、ASM 磁盤組
OSOracle Linux 7/8, RHEL 7/8, Windows Server 2016/2019/2022同左,內核參數預調優
Swap1.5×RAM (RAM<2GB) / 1×RAM (2-16GB) / 0.75×RAM (>16GB)同上

經典歷史坑:P4 CPU + Oracle 8i/9i JRE 衝突

癥狀:安裝程式啟動即掛起/閃退/無反應;已安裝實例啟動工具報「非法操作」。

根因:OUI 1.7/1.8 內嵌 Sun JRE 1.1.8 + Symantec JIT (symcjit.dll) 與 Pentium 4 SSE2 指令集不兼容。

通用修復腳本(適用 8.1.7/9.0/9.2):


# 1. 解壓安裝介質到本地目錄 /stage
# 2. 替換 JRE
find /stage -name symcjit.dll -exec mv {} {}.old \;
# 3. 修改 oraparam.ini
sed -i 's/JRE_MEMORY_OPTIONS=.*/JRE_MEMORY_OPTIONS=-nojit -ms16m -mx32m/' /stage/install/oraparam.ini
# 4. 修改所有 *.cl 啟動腳本
find /stage -name "*.cl" -exec sed -i 's/\(".*jrew"\)/\1 -nojit/' {} \;
# 5. 以自定義模式安裝,不建庫
/stage/install/runInstaller -noconfig
# 6. 安裝後手動 DBCA/NETCA 建庫配置

現代建議:P4 級硬體直接上 19c/21c,舊版本僅限極端遷移場景,建議虛擬機隔離運行。

Windows 環境安裝黃金法則

  1. 專用安裝用戶:建立本地用戶 oracle_install,加入 Administrators、ORA_DBA 組,登入安裝。
  2. 路徑無中文/空格/特殊字符:D:\app\oracle,非 C:\Program Files\Oracle。
  3. 關閉殺毒/索引/防火牆:安裝期間完全關閉。
  4. 預先配置 hosts:127.0.0.1 hostname,避免 DNS 解析延遲導致 OUI 掛起。
  5. 安裝後立即打 PSU/RU:OPatch apply 最新補丁包。

Linux 環境安裝預檢清單


# 1. 內核參數 /etc/sysctl.conf
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
# sysctl -p

# 2. 用戶限制 /etc/security/limits.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768

# 3. 必裝包 (Oracle Linux 8 / RHEL 8)
dnf install -y oracle-database-preinstall-19c  # 一鍵搞定上述所有

徹底卸載標準化流程(Windows + Linux 通用邏輯)

  1. 停止所有 Oracle 服務(Windows: services.msc;Linux: systemctl stop oracle-*)。
  2. 運行 OUI 卸載:runInstaller -deinstall (12c+) 或 setup.exe -deinstall。
  3. 手動清理殘留(按順序,漏一項必殘留):
    • 註冊表:HKLM\SOFTWARE\Oracle、HKLM\SYSTEM\CurrentControlSet\Services\Oracle*、EventLog\Application\Oracle*
    • 環境變數:PATH、CLASSPATH 中 Oracle 路徑。
    • 目錄:ORACLE_BASE、ORACLE_HOME、C:\Program Files\Oracle、/etc/oratab、/opt/ORCLfmap。
    • 用戶/組:刪除 oracle 用戶、ora_dba/oper 組。
    • 服務:sc delete OracleServiceXXX / systemctl disable oracle-XXX。
    • 臨時文件:/tmp/.oracle*、%TEMP%\oracle*。
    • 日誌:事件查看器 / /var/log/messages 中 Oracle 相關。
  4. 重啟 OS(強制釋放共享內存段、文件鎖)。
  5. 驗證:ps -ef | grep -i oracle、lsnrctl status 均無殘留。

多版本共存最佳實踐

  • 獨立 ORACLE_HOME:每版本獨立目錄,/u01/app/oracle/product/19.0.0/dbhome_1 vs 12.2.0.1。
  • 共用 ORACLE_BASE:/u01/app/oracle 存放 diag、admin、cfgtoollogs、oradata(可選)。
  • 環境切換腳本:
    
    # .oraenv_19c
    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
    export ORACLE_SID=orcl19
    export PATH=$ORACLE_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib
        
  • 監聽器統一管理:單一 1521 監聽器(最新版本 home)服務所有實例,SID_LIST_LISTENER 註冊多 SID。
  • 常見安裝報錯速查

    錯誤原因解決
    INS-32026中央庫存目錄權限/鎖以 root 運行 runInstaller -detachHome 清理
    PRVF-0002OS 套件缺失安裝 oracle-database-preinstall-19c 或手動補包
    ORA-01034實例未啟動檢查 ORACLE_SID、SPFILE、alert log
    TNS-12560監聽器/網路lsnrctl start、防火牆、hosts、tnsnames.ora
    OUI-10030臨時空間不足設置 TEMP=/big/tmp 指向大分區

    安裝卸載看似基礎,實則關繫整個生命週期的穩定性。**標準化、腳本化、文檔化、演練化** 是從「能裝上」進階到「裝得穩、拆得乾淨」的必經之路。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved