| 項目 | 規格 |
|---|---|
| 作業系統 | Red Hat Enterprise Linux AS 4 (2.6.9-42.ELsmp) |
| 虛擬化平台 | VMware GSX Server |
| 記憶體分配 | 512 MB |
| 磁碟空間 | 15 GB |
| Oracle 版本 | 9.2.0.4 (無後續 Patch Set) |
| 安裝路徑 | /opt/Oracle/product/9.2 |
# uname -r
2.6.9-42.ELsmp
# grep MemTotal /proc/meminfo
MemTotal: 514440 kB
# cat /proc/swaps
# 交換空間 1048568 KB (約 2x 實體記憶體,符合建議)
kernel.shmmax = 536870912 # 實體記憶體 50% (512MB → 256MB,此處設 512MB)
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128 # SEMMSL SEMMNS SEMOPM SEMMNI
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
# 立即生效
sysctl -p
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
建議採用「完全安裝」避免相依性地獄,以下為關鍵套件清單(缺失需補裝):
compat-db-4.1.25-9
compat-gcc-32-3.2.3-47.3
compat-gcc-32-c++-3.2.3-47.3
compat-libcwait-2.0-1 # 需外部下載
compat-Oracle-rhel4-1.0-3 # 需外部下載
compat-libgcc-296-2.96-132.7.2
compat-libstdc++-296-2.96-132.7.2
compat-libstdc++-33-3.2.3-47.3
gcc-3.4.3-9.EL4
gcc-c++-3.4.3-9.EL4
gnome-libs-1.4.1.2.90-44
gnome-libs-devel-1.4.1.2.90-44
libaio-devel-0.3.102-1
libaio-0.3.102-1
make-3.80-5
openmotif21-2.1.30-11
xorg-x11-deprecated-libs-6.8.1-23.EL
xorg-x11-deprecated-libs-devel-6.8.1-23.EL
# Oracle 官方相容性套件庫
https://oss.oracle.com/projects/compat-oracle/files/RedHat/
# 所需兩個關鍵套件:
compat-libcwait-2.0-2.i386.rpm
compat-oracle-rhel4-1.0-5.i386.rpm
su - root
unzip p3006854_9204_Linux.zip
cd 3006854
sh rhel3_pre_install.sh
# Applying patch... Patch successfully applied
rpm -Uvh compat-libcwait-2.0-2.i386.rpm
rpm -Uvh compat-oracle-rhel4-1.0-5.i386.rpm
# root 執行
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle # 設定密碼
mkdir -p /opt/Oracle/product/9.2
mkdir -p /var/opt/Oracle
chown -R oracle:oinstall /opt/Oracle
chown oracle:dba /var/opt/Oracle
chmod 777 /var/opt/Oracle
# 關鍵:強制 2.4 核心相容模式 (AS4 必須)
export LD_ASSUME_KERNEL=2.4.19
export ORACLE_BASE=/opt/Oracle
export ORACLE_HOME=/opt/Oracle/product/9.2
export ORACLE_SID=ora9i
export ORACLE_TERM=xterm
export ORACLE_OWNER=oracle
export THREAD_FLAG=native
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
export PATH=$PATH:$ORACLE_HOME/bin
# CLASSPATH 可選,視 Java 應用需求
# export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
# export CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
# root 執行
mkdir -p /tmp/tools
chmod 777 /tmp/tools
cd /tmp/tools
# 解壓三片安裝媒體
zcat ship_9204_Linux_disk1.cpio.gz | cpio -idmv
zcat ship_9204_Linux_disk2.cpio.gz | cpio -idmv
zcat ship_9204_Linux_disk3.cpio.gz | cpio -idmv
# 產生 Disk1 Disk2 Disk3 三個目錄
# 1. 允許 X11 轉發 (root)
xhost +
# 2. 切換 oracle 用戶啟動安裝
su - oracle
cd /tmp/tools/Disk1
./runInstaller
# 安裝精靈提示時執行
/opt/Oracle/product/9.2/root.sh
su - oracle
dbca
/opt/Oracle/product/9.2/bin/dbca: line 124: 26649 Segmentation fault
$JRE_DIR/bin/jre -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASSPATH
oracle.sysman.assistants.dbca.Dbca $ARGUMENTS
解決方案 (AS4 核心相容性問題):
su - root
touch /etc/rac_on
# 重新執行 dbca
建庫時 SID 必須與 .bash_profile 中 ORACLE_SID=ora9i 一致。
依精靈設定 SYS/SYSTEM 密碼,完成後即可開始資料庫操作。
結語:Oracle 9i 在 Linux AS4 上安裝雖屬舊版本,但透過核心相容模式、完整套件預裝、Patch 預打、分離建庫策略,可穩定落地。此經驗對維護舊系統遷移仍具參考價值。