Linux平台Oracle安裝指令碼

來源:互聯網
上載者:User

# 指令碼僅供交流學習使用!

# 指令碼目前的版本為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的流水賬” 部落格,謝絕轉載!

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.