Red Hat 9.0 採用較新版 GCC,導致 Oracle 9.2、IBM DB2 等大型資料庫安裝時出現相容性問題。本文記錄實測成功的安裝流程與錯誤排解,供參考。
groupadd dba
useradd -g dba oracle
passwd oracle
註:雖然 OFA 建議建立 oinstall(安裝)與 dba(管理)兩個群組,但單一 dba 群組在實務上通常足夠。
本範例將 ORACLE_HOME 設為 /soft/oracle,確保 oracle 使用者對該目錄具備讀寫權限。
編輯 /etc/sysctl.conf,新增:
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
執行 sysctl -p 使設定即時生效。
編輯 /etc/security/limits.conf,新增:
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
編輯 /home/oracle/.bash_profile,加入:
export ORACLE_HOME=/soft/oracle
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/apache/bin:$PATH
export ORACLE_SID=or9i
export THREADS_FLAG=native
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
以 oracle 使用者登入圖形介面,執行:
LANG= ./runInstaller
(圖一:歡迎畫面 → 圖二:檢視需求 → 輸入 Unix 群組名 "dba" → 執行 /tmp/orainstRoot.sh)
(圖三)選擇 Software Only(僅安裝軟體),稍後再用 DBCA 建立資料庫。
(圖四)安裝過程中出現此錯誤,可暫時選擇 Ignore,安裝完成後再處理。
(圖五)編輯 $ORACLE_HOME/ctx/lib/env_ctx.mk 第 1365 行(INSO_LINK),在行尾加入 $(LDLIBFLAG)dl:
INSO_LINK = -L$(CTXLIB) $(LDLIBFLAG)m $(LDLIBFLAG)dl $(LDLIBFLAG)sc_ca ...
存檔後點選 Retry 繼續安裝。
依提示以 root 執行 $ORACLE_HOME/root.sh,軟體安裝階段結束。
以 oracle 使用者依序執行:
cd $ORACLE_HOME/network/lib
make -f ins_net_client.mk install
# 修正 ins_ctx.mk 第 13-14 行
# 原始:
# ctxhx: $(CTXHXOBJ)
# $(LINK) $(CTXHXOBJ) $(INSO_LINK)
# 修改為:
# ctxhx: $(CTXHXOBJ)
# $(LINK) -ldl $(CTXHXOBJ) $(INSO_LINK)
make -f $ORACLE_HOME/ctx/lib/ins_ctx.mk install
執行 dbca 圖形化建立資料庫,或使用腳本建立。大型資料庫安裝涉及核心參數、環境變數、編譯相容性等多層面,建議安裝前詳讀官方 PDF 文件並參考社群經驗。身為 DBA,除精通 Oracle 技術外,扎實的 Unix/Linux 系統管理能力同樣不可或缺。