设为首页 收藏本站
查看: 684|回复: 0

[经验分享] Linux平台Oracle安装脚本

[复制链接]

尚未签到

发表于 2018-9-22 13:59:26 | 显示全部楼层 |阅读模式
#!/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! '



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-599957-1-1.html 上篇帖子: Oracle RAC集群简介 下篇帖子: Linux+apach2.2+php5.2+ oracle10-todayboy
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表