在 Linux 生產環境部署 Oracle 11g R2 需嚴格遵循作業系統層面的核心參數、使用者/群組、目錄權限、環境變數、防火牆等前置作業。本文以 Red Hat Enterprise Linux 6.2 (RHEL 6.2) 為例,記錄完整安裝前配置與圖形化安裝前半段流程 (至建立清單目錄)。
依 Oracle 安裝指南建議值寫入:
kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmax = 2147483648 # 物理記憶體一半 (4GB RAM 時)
kernel.shmmni = 4096
fs.aio-max-nr = 1048576
fs.file-max = 6815744
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 9000 65500
套用並驗證:
# sysctl -p
# sysctl -a | grep -E "kernel.shm|fs.file-max|net.core"

確保主機名對應真實 IP (非 127.0.0.1),否則監聽器可能只綁定 loopback:
192.168.100.197 oracle oracle.localdomain rhel6.localdomain
# groupadd -g 54321 oinstall # Oracle Inventory 群組
# groupadd -g 54322 dba # OSDBA 群組
# groupadd -g 54323 oper # OSOPER 群組 (可選)
# useradd -u 54321 -g oinstall -G dba,oper -d /home/oracle -m oracle
# passwd oracle # 設定密碼
# mkdir -p /u01/app/oracle
# mkdir -p /u01/app/oraInventory
# chown -R oracle:oinstall /u01/app/oracle
# chown -R oracle:oinstall /u01/app/oraInventory
# chmod -R 775 /u01/app
說明:採用 OFA (Optimal Flexible Architecture) 標準路徑 /u01/app/oracle,Inventory 獨立放置 /u01/app/oraInventory。
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=$ORACLE_HOME/bin:/usr/sbin:/bin:/usr/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
# Shell limits for oracle user
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
umask 022
立即生效並驗證:
$ source ~/.bash_profile
$ env | grep ORA

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
session required pam_limits.so
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT # Listener
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1158 -j ACCEPT # EM Console
# 若自訂埠口請同步新增
重啟防火牆:
# service iptables restart
切換至 oracle 使用者,進入解壓目錄 database,執行 ./runInstaller。

取消勾選「我希望透過 My Oracle Support 接收安全性更新」→ Next → 彈出確認視窗選 Yes。


選「建立並設定資料庫」→ Next。

選「伺服器類別」以啟用進階選項 → Next。

單機環境選「單一實例資料庫安裝」→ Next。

選「進階安裝」→ Next。

將「Simplified Chinese」從左欄移至右欄 → Next。

選「企業版」→ Next。

Oracle 基底目錄:/u01/app/oracle (自動帶出 /u01/app/oracle/product/11.2.0/dbhome_1) → Next。

Oracle 清單目錄:/u01/app/oraInventory,群組 oinstall → Next。

下篇將繼續記錄:必要條件檢查、資料庫識別與儲存、管理選項、資料庫檔案位置、復原設定、資料庫內容、初始化參數、安全性設定、自動維護任務、執行安裝、資料庫建立進度、密碼管理、安裝完成等後續步驟。
完成上述 OS 層面配置與 OUI 前半段設定,已奠定穩定安裝基礎。請務必在正式執行安裝前,以 runcluvfy.sh stage -pre dbinst (Cluster Verification Utility) 執行預檢,確保所有必要條件通過。