雖然Oracle 10g已停止主流支援,但存量系統仍需重建或遷移。本文記錄在Red Hat Enterprise Linux 3/4 (x86)上,繞過圖形安裝向導,純命令行完成用戶建立、內核調優、目錄佈局、安裝包解壓、靜默安裝、資料庫創建、監聽配置、自啟動服務的全流程,適合自動化腳本化與離線環境部署。
# 1. 安裝依賴包 (掛載RHEL ISO)
yum localinstall gcc-3.4.6 make-3.80 binutils-2.16 openmotif-2.2.3 \
compat-db-4.2.52 compat-gcc-34 compat-gcc-c++-34 \
compat-libstdc++-33 compat-libstdc++-devel-33 libaio-0.3.106 libaio-devel-0.3.106
# 2. 內核參數 (/etc/sysctl.conf 追加)
kernel.shmmax = 1073741824
kernel.shmall = 262144
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
sysctl -p
# 3. 用戶與目錄
groupadd -g 500 oinstall
groupadd -g 501 dba
useradd -u 500 -g oinstall -G dba oracle
echo "oracle_password" | passwd --stdin oracle
mkdir -p /u01/app/oracle /u02/oradata
chown -R oracle:oinstall /u01 /u02
chmod -R 775 /u01 /u02
# 4. Shell限制 (/etc/security/limits.conf)
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
# 切換oracle用戶
su - oracle
# 環境變數 (~/.bash_profile)
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=ORCL
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
# 解壓安裝介質 (假設ISO掛載於/mnt/cdrom)
cd /tmp
unzip -q /mnt/cdrom/10201_database_linux32.zip
cd database
# 靜默安裝響應文件 (db_install.rsp)
cat > db_install.rsp <
# 1. DBCA靜默創建資料庫 (dbca.rsp)
cat > dbca.rsp < $ORACLE_HOME/network/admin/listener.ora <
# /etc/oratab 確認條目
ORCL:/u01/app/oracle/product/10.2.0/db_1:Y
# 建立啟動腳本 /etc/init.d/oracle
cat > /etc/init.d/oracle <<'EOF'
#!/bin/bash
# chkconfig: 345 99 10
# description: Oracle 10g Auto Start/Stop
ORA_HOME=/u01/app/oracle/product/10.2.0/db_1
ORA_OWNER=oracle
case "$1" in
start) su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME" ;;
stop) su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME" ;;
*) echo "Usage: $0 {start|stop}"; exit 1 ;;
esac
EOF
chmod +x /etc/init.d/oracle
chkconfig --add oracle
chkconfig oracle on
sqlplus / as sysdba 連線成功,SELECT * FROM v$version 顯示10.2.0.1.0lsnrctl status 顯示LISTENER READY,服務ORCL READYtnsping ORCL 成功,sqlplus user/pwd@ORCL 連線正常emctl status dbconsole (若安裝Enterprise Manager) 運行正常手工部署雖繁瑣,但能深入掌握每一層依賴關係,為後續自動化(Ansible/Terraform)、容器化(Docker/Podman)、遷移上雲打下堅實基礎。