# 指令碼僅供交流學習使用!
# 指令碼目前的版本為1.0.實現了實體記憶體&交換空間的檢測,RPM包的自動安裝(需配置Yum或者掛載光碟片,如果你複製了所有需要的RPM包到某個目錄,也OK.),使用者&使用者組的建立,軟體環境變數的配置,系統核心參數配置等功能.指令碼執行成功後,即可將Oracle安裝包解壓然後runInstaller開啟圖形化安裝了.# 指令碼已在Red Hat Enterprise Linux 5.4 64bit上測試通過(Oracle 10g/Oracle11g).原則上適用於RHEL 5和RHEL 6.# 歡迎提出改進意見.
# 指令碼可通過附件下載
#!/bin/bash# Version 1.0# AUTHOR: Xin23 http://weibo.com/231988#1.Oracle Version and SystemGetOracleVersion() { read -p "Which Version of Oracle You Will Install? [11|10]? " VERSION}GetOracleVersionSetVersion() {if [ $VERSION -eq 11 ] then echo 'Oracle Version is 11! 'elif [ $VERSION -eq 10 ] then echo 'Oracle Version is 10! 'else echo 'Please Retype The Version of Oracle You Will Install! ' GetOracleVersion SetVersionfi}SetVersionMEMORY=$(cat /proc/meminfo | grep MemTotal | awk '{print $2}')SWAP=$(cat /proc/meminfo | grep SwapTotal | awk '{print $2}')MEMORY_REQ=1048576if [ $MEMORY -lt $MEMORY_REQ ] then echo 'Physical Memory is too small! ' exit 1else echo 'Physical Memory Check OK! 'fiif [ $VERSION -eq 10 ] then if [ $MEMORY -lt 2097152 ] then if [ $SWAP -lt $(echo "$MEMORY*3/2"|bc) ] then echo 'Swap is too small! ' exit 2 else echo 'Swap Check OK! ' fi elif [ $MEMORY -gt 2097152 ] || [ $MEMORY -lt 8388608 ] then if [ $SWAP -lt $MEMORY ] then echo 'Swap is too small! ' exit 2 else echo 'Swap Check OK! ' fi elif [ $MEMORY -gt 8388608 ] then if [ $SWAP -lt $(echo "$MEMORY*3/4"|bc) ] then echo 'Swap is too small! ' exit 2 else echo 'Swap Check OK! ' fi fielif [ $VERSION -eq 11 ] then if [ $MEMORY -lt 2097152 ] then if [ $SWAP -lt $(echo "$MEMORY*3/2"|bc) ] then echo 'Swap is too small! ' exit 2 else echo 'Swap Check OK! ' fi elif [ $MEMORY -gt 2097152 ] || [ $MEMORY -lt 16777216 ] then if [ $SWAP -lt $MEMORY ] then echo 'Swap is too small! ' exit 2 else echo 'Swap Check OK! ' fi elif [ $MEMORY -gt 16777216 ] then if [ $SWAP -lt 16777216 ] then echo 'Swap is too small! ' exit 2 else echo 'Swap Check OK! ' fi fifiecho 'Oracle Version and System hardware has been checked! '#2.SoftwareRpm() {rpm -ivh compat-libstdc++*rpm -ivh compat-libstdc++*rpm -ivh elfutils-libelf*i386.rpmrpm -ivh elfutils-libelf*x86_64.rpmrpm -ivh elfutils-libelf-devel-static*x86_64.rpm elfutils-libelf-devel*x86_64.rpmrpm -ivh elfutils-libelf-devel-static*i386.rpm elfutils-libelf-devel*i386.rpmrpm -ivh libaio-devel*rpm -ivh sysstat*rpm -ivh unixODBC-[[:digit:]]*rpm -ivh unixODBC-devel*rpm -ivh kernel-headers*rpm -ivh glibc-headers*rpm -ivh glibc-devel*rpm -ivh libgomp*rpm -ivh libstdc++-devel*x86_64.rpmrpm -ivh libstdc++-devel*i386.rpmrpm -ivh gcc-[[:digit:]]*rpm -ivh gcc-c++*rpm -ivh libXp-[[:digit:]]*}Yum() { yum -y install compat-libstdc++ yum -y install elfutils-libelf-devel-static yum -y install elfutils-libelf-devel yum -y install libaio-devel yum -y install sysstat yum -y install unixODBC yum -y install unixODBC-devel yum -y install kernel-headers yum -y install glibc-headers yum -y install glibc-devel yum -y install libgomp yum -y install gcc yum -y install gcc-c++ yum -y install libstdc++-devel yum -y install libXp}GetYum() { read -p "Have you config the yum? [y|n] " YUM }GetYumRetroYum() {if [ $YUM = y ] then Yumelif [ $YUM = n ] then read -p "Please input rpm package's location: " MEDIA_DIR cd $MEDIA_DIR Rpmelse GetYum RetroYumfi}RetroYumecho 'Necessary RPM Package has been installed! '#3.User and Groupsgroupadd oinstallgroupadd dbauseradd -g oinstall -G dba oraclemkdir -p /u01/app/oracle;chown -R oracle:oinstall /u01read -p "Please input password for user oracle: " PASSWORDecho "$PASSWORD" | passwd --stdin oracleecho 'User and Group has been Created! '#4.Environmentread -p "Please input ORACLE SID: " SIDsu -c "echo 'export ORACLE_BASE=/u01/app/oracle' >> ~/.bash_profile" oraclesu -c "echo 'export ORACLE_SID=$SID' >> ~/.bash_profile" oracleexport ORACLE_BASE=/u01/app/oracleif [ $VERSION = 11 ] then su -c 'echo "export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1" >> ~/.bash_profile' oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1elif [ $VERSION = 10 ] then su -c 'echo "export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1" >> ~/.bash_profile' oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1else exit 3fisu -c 'echo "export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin" >> ~/.bash_profile' oracleecho 'Software Enviroment has been finished! '#5.Operate System and Kernel Parametersread -p "Please input your ip address: " IP_ADDRESSecho "$IP_ADDRESS $(hostname)" >> /etc/hostsecho 'fs.aio-max-nr = 1048576' >> /etc/sysctl.confecho 'fs.file-max = 6815744' >> /etc/sysctl.confecho 'kernel.shmmni = 4096' >> /etc/sysctl.confecho 'kernel.sem = 250 32000 100 128' >> /etc/sysctl.confecho 'net.core.rmem_default = 262144' >> /etc/sysctl.confecho 'net.core.rmem_max = 4194304' >> /etc/sysctl.confecho 'net.core.wmem_default = 262144' >> /etc/sysctl.confecho 'net.core.wmem_max = 1048586' >> /etc/sysctl.confif [ $VERSION = 11 ] then echo 'net.ipv4.ip_local_port_range = 9000 65500' >> /etc/sysctl.confelif [ $VERSION = 10 ] then echo 'net.ipv4.ip_local_port_range = 1024 65000' >> /etc/sysctl.conffisysctl -pecho 'oracle soft nproc 2047' >> /etc/security/limits.confecho 'oracle hard nproc 16384' >> /etc/security/limits.confecho 'oracle soft nofile 1024' >> /etc/security/limits.confecho 'oracle hard nofile 65536' >> /etc/security/limits.confecho 'oracle soft stack 10240' >> /etc/security/limits.confecho 'Operate System and Kernel Parameter has been finished! 'echo 'Now You Can Run runInstaller to start Installation of Oracle! '
THE END
本文出自 “Xin23的流水賬” 部落格,謝絕轉載!