手動安裝Oracle步驟繁雜且易出錯(核心參數、用戶/群組、目錄權限、環境變數、/etc/hosts、SELinux等)。本腳本實現互動式輸入關鍵參數,自動完成所有前置作業,支援RHEL/OEL/CentOS 6/7/8系列。
read -p "Please enter HOSTNAME [oracle]: " HOSTNAME
HOSTNAME=${HOSTNAME:-oracle}
read -p "Please enter ORACLE_BASE [/u1]: " ORACLE_BASE
ORACLE_BASE=${ORACLE_BASE:-/u1}
read -p "Please enter ORACLE_HOME name [oracle]: " OH_NAME
OH_NAME=${OH_NAME:-oracle}
ORACLE_HOME=${ORACLE_BASE}/${OH_NAME}
read -p "Please enter ORACLE_SID [oral]: " ORACLE_SID
ORACLE_SID=${ORACLE_SID:-oral}
/etc/sysconfig/network、寫入IP hostname至/etc/hosts。oinstall、dba、oracle用戶,家目錄指向ORACLE_HOME。mkdir -p $ORACLE_BASE && chown -R oracle:oinstall $ORACLE_BASE && chmod -R 775 $ORACLE_BASE。kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
fs.file-max = 6815744 # 建議補充
fs.aio-max-nr = 1048576 # 建議補充
執行sysctl -p生效。
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
並啟用pam_limits.so(/etc/pam.d/login、/etc/pam.d/su)。
/etc/profile(全域登入腳本):
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384; ulimit -n 65536;
else ulimit -u 16384 -n 65536; fi
fi
$ORACLE_HOME/.bash_profile(oracle用戶專屬):
export ORACLE_BASE=/u1
export ORACLE_HOME=$ORACLE_BASE/oracle
export ORACLE_SID=oral
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG="TRADITIONAL CHINESE_TAIWAN.ZHT16MSWIN950" # 或 AL32UTF8
export TNS_ADMIN=$ORACLE_HOME/network/admin
rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel/etc/oraInst.loc指向Inventory目錄。/etc/selinux/config設SELINUX=disabled)並重啟。oracleasm createdisk或multipath綁定)。runInstaller或runInstaller -silent -responseFile ...。$ORACLE_HOME/root.sh。將腳本存為oracle_preinstall.sh,給予chmod +x,以root執行。生產環境前請在測試機驗證核心參數值是否符合硬體規模(記憶體大小決定shmmax上限)。