首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Linux下Oracle自動化安裝腳本全解析:從核心參數到環境變數一鍵部署

     編輯:Oracle 資料庫基礎

腳本設計目標

手動安裝Oracle步驟繁雜且易出錯(核心參數、用戶/群組、目錄權限、環境變數、/etc/hosts、SELinux等)。本腳本實現互動式輸入關鍵參數,自動完成所有前置作業,支援RHEL/OEL/CentOS 6/7/8系列。

核心功能模組

1. 互動式參數收集

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}

2. 系統層面配置

  • 主機名與/etc/hosts:更新/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。

3. 核心參數寫入 /etc/sysctl.conf

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生效。

4. 用戶資源限制 /etc/security/limits.conf

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)。

5. 環境變數配置

/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

進階:Oracle 11g R2 手動安裝檢查清單(腳本未覆蓋)

  • 檢查RPM套件: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目錄。
  • 關閉SELinux(/etc/selinux/config設SELINUX=disabled)並重啟。
  • 配置ASM磁碟(oracleasm createdisk或multipath綁定)。
  • 運行runInstaller或runInstaller -silent -responseFile ...。
  • 以root執行$ORACLE_HOME/root.sh。
  • NetCA建立Listener、DBCA建庫。

使用建議

將腳本存為oracle_preinstall.sh,給予chmod +x,以root執行。生產環境前請在測試機驗證核心參數值是否符合硬體規模(記憶體大小決定shmmax上限)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved