Oracle 官方建議:記憶體 ≥ 512MB,Swap ≥ 1GB 或 2×RAM (RAM > 2GB 時 Swap 可為 2-4GB)。即使只有 256MB 實體記憶體,配合 1GB Swap 仍可勉強跑測試環境。
# grep MemTotal /proc/meminfo
# grep SwapTotal /proc/meminfo
# cpio -idvm < lnx_920_disk1.cpio
# cpio -idvm < lnx_920_disk2.cpio
# cpio -idvm < lnx_920_disk3.cpio
產生 Disk1、Disk2、Disk3 三個目錄。
# unzip Oraclerpm.zip
# rpm -ivh *.i586.rpm --nodeps --force
# groupadd dba
# mkdir /opt/OracleHome
# adduser -u 499 -d /opt/OracleHome -g dba oracle
# chown oracle.dba /opt/OracleHome
# mkdir /opt/OracleHome/Ora9i
# chown oracle.dba /opt/OracleHome/Ora9i
# touch /etc/rac_on
# mkdir /opt/tmp
# chmod 1777 /opt/tmp
# 建立 1GB Swap 檔 (若實體 Swap 不足)
# dd if=/dev/zero of=/opt/tmpswap bs=1k count=1024000
# chmod 600 /opt/tmpswap
# mkswap /opt/tmpswap
# swapon -v /opt/tmpswap
# 核心參數調整
# sysctl -w kernel.sem="250 32000 100 128"
# sysctl -w kernel.shmmax=536870912 # 512MB,建議設為實體記憶體一半
# 寫入 /etc/sysctl.conf 永久生效
# echo "kernel.sem=250 32000 100 128" >> /etc/sysctl.conf
# echo "kernel.shmmax=536870912" >> /etc/sysctl.conf
# 檔案描述符與進程限制
# echo 65536 > /proc/sys/fs/file-max
# ulimit -n 65536
# ulimit -u 16384
# 建議加入 /etc/rc.local 開機自動執行
# xhost localhost
# su - oracle
# cd /opt/source/Disk1
# ./runInstaller
強烈建議選 「僅安裝軟體」,安裝完成後使用 dbca 獨立建庫,靈活度更高。
# 臨時解法
unset LANG
# 永久解法:修改語系設定
# vi /root/.i18n # 註解所有行,加入 LANG="en_US"
# vi /etc/sysconfig/i18n # 同樣處理,新用戶登入會自動複製此設定
編輯 $ORACLE_HOME/ctx/lib/env_ctx.mk,在 INSO_LINK= 行尾加入:
$(LDLIBFLAG)dl
# userdel oracle
# adduser -u 499 -d /opt/OracleHome -g dba oracle
# hdparm -t /dev/hda # 測試讀取速度,若 < 10MB/s 需開啟 DMA
# hdparm -d 1 /dev/hda # 開啟 DMA
# echo "hdparm -d 1 /dev/hda" >> /etc/rc.local # 開機自動執行
總結:Oracle 9i 在 Linux 上安裝的核心在於 Swap 空間足夠、核心參數預調、語系設定正確。採用「軟體分離安裝 + DBCA 建庫」模式可大幅降低安裝失敗率。安裝完成後別忘了套用最新 Patch Set 並建立資料庫備份策略。