本文記錄在 Linux (RedHat/AS 系列) 上安裝 Oracle 9i (9.2.0.4) 的完整步驟:從解壓、打補丁、建用戶、核心調優、建庫到常見安裝報錯處理,適合需維護舊版 Oracle 環境的 DBA 參考。
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
cp Oracle.bashrc /opt/OracleHome/.bashrc
# 建立 1GB 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=`expr 512 \* 1024 \* 1024`
# 寫入 /etc/sysctl.conf 永久生效
echo "kernel.sem=250 32000 100 128" >> /etc/sysctl.conf
echo "kernel.shmmax=`expr 512 \* 1024 \* 1024`" >> /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
unset LANG
# 或修改 /root/.i18n 及 /etc/sysconfig/i18n
# 內容改為:LANG="en_US"
$ORACLE_HOME/ctx/lib/env_ctx.mk,在 INSO_LINK= 行尾加 $(LDLIBFLAG)dluserdel oracle; adduser -u 499 -d /opt/OracleHome -g dba oracleDBCA 建立資料庫,較彈性可控hdparm -d 1 /dev/hda (加入 /etc/rc.local)hdparm -t /dev/hda (應 > 20MB/s)新專案請直接選 AL32UTF8 (Unicode),避免日後 ZHS16GBK/UTF8 混用導致遷移亂碼。舊專案若必須用 GBK,請確保 NLS_LANG 客戶端一致設定為 SIMPLIFIED CHINESE_CHINA.ZHS16GBK。