为了账号安全,请及时绑定邮箱和手机立即绑定

Linux平台Oracle安装脚本

标签:
Oracle

# 脚本仅供交流学习使用!

# 脚本当前版本为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 System

GetOracleVersion() {

        read -p "Which Version of Oracle You Will Install? [11|10]?     " VERSION

}

GetOracleVersion

SetVersion() {

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

        SetVersion

fi

}

SetVersion

MEMORY=$(cat /proc/meminfo | grep MemTotal | awk '{print $2}')

SWAP=$(cat /proc/meminfo | grep SwapTotal | awk '{print $2}')

MEMORY_REQ=1048576

if [ $MEMORY -lt $MEMORY_REQ ]

        then echo 'Physical Memory is too small! '

        exit 1

else

        echo 'Physical Memory Check OK! '

fi

if [ $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

                                fi

elif  [ $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

                                fi

fi

echo 'Oracle Version and System hardware has been checked! '

#2.Software

Rpm() {

rpm -ivh compat-libstdc++*

rpm -ivh compat-libstdc++*

rpm -ivh elfutils-libelf*i386.rpm

rpm -ivh elfutils-libelf*x86_64.rpm

rpm -ivh elfutils-libelf-devel-static*x86_64.rpm elfutils-libelf-devel*x86_64.rpm

rpm -ivh elfutils-libelf-devel-static*i386.rpm elfutils-libelf-devel*i386.rpm

rpm -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.rpm

rpm -ivh libstdc++-devel*i386.rpm

rpm -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

                    }

GetYum

RetroYum() {

if [ $YUM = y ]

        then Yum

elif [ $YUM = n ]

        then read -p "Please input rpm package's location: " MEDIA_DIR

        cd $MEDIA_DIR

        Rpm

else

        GetYum

        RetroYum

fi

}

RetroYum

echo 'Necessary RPM Package has been installed! '

#3.User and Groups

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba oracle

mkdir -p /u01/app/oracle;chown -R oracle:oinstall /u01

read -p "Please input password for user oracle: " PASSWORD

echo "$PASSWORD" | passwd --stdin oracle

echo 'User and Group has been Created! '

#4.Environment

read -p "Please input ORACLE SID: " SID

su -c "echo 'export ORACLE_BASE=/u01/app/oracle' >> ~/.bash_profile" oracle

su -c "echo 'export ORACLE_SID=$SID' >> ~/.bash_profile" oracle

export ORACLE_BASE=/u01/app/oracle

if [ $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_1

elif [ $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_1

else

                exit 3

fi

su -c 'echo "export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin" >> ~/.bash_profile' oracle

echo 'Software Enviroment has been finished! '

#5.Operate System and Kernel Parameters

read -p "Please input your ip address: " IP_ADDRESS

echo "$IP_ADDRESS $(hostname)" >> /etc/hosts

echo 'fs.aio-max-nr = 1048576' >> /etc/sysctl.conf

echo 'fs.file-max = 6815744' >> /etc/sysctl.conf

echo 'kernel.shmmni = 4096' >> /etc/sysctl.conf

echo 'kernel.sem = 250 32000 100 128' >> /etc/sysctl.conf

echo 'net.core.rmem_default = 262144' >> /etc/sysctl.conf

echo 'net.core.rmem_max = 4194304' >> /etc/sysctl.conf

echo 'net.core.wmem_default = 262144' >> /etc/sysctl.conf

echo 'net.core.wmem_max = 1048586' >> /etc/sysctl.conf

if [ $VERSION = 11 ]

        then echo 'net.ipv4.ip_local_port_range = 9000 65500' >> /etc/sysctl.conf

elif [ $VERSION = 10 ]

        then echo 'net.ipv4.ip_local_port_range = 1024 65000' >> /etc/sysctl.conf

fi

sysctl -p

echo 'oracle soft nproc 2047' >>  /etc/security/limits.conf

echo 'oracle hard nproc 16384' >> /etc/security/limits.conf

echo 'oracle soft nofile 1024' >> /etc/security/limits.conf

echo 'oracle hard nofile 65536' >>    /etc/security/limits.conf

echo 'oracle soft stack 10240' >> /etc/security/limits.conf

echo 'Operate System and Kernel Parameter has been finished! '

echo 'Now You Can Run runInstaller to start Installation of Oracle! '

THE END

©著作权归作者所有:来自51CTO博客作者Xin23的原创作品,谢绝转载,否则将追究法律责任

Oracle安装Oracle


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消