ORACLE环境安装脚本

Posted shaozi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE环境安装脚本相关的知识,希望对你有一定的参考价值。

分享一个自己写shell脚本,写得有点粗糙,还有很多要改进的地方,以后会继续学习,写出更好的脚本。

  1 #!/usr/bin/bash
  2 
  3 . /etc/init.d/functions
  4 
  5 #安装依赖包
  6 function yumPackge
  7 {
  8     echo "######################安装依赖包########################"
  9     yum install -y binutils* >/dev/null 2>&1 && action "安装binutils*" /bin/true || action "安装binutils*" /bin/false    
 10     yum install -y compat-libstdc* >/dev/null 2>&1 && action "安装compat-libstdc*" /bin/true || action "安装compat-libstdc*" /bin/false
 11     yum install -y elfutils-libelf* >/dev/null 2>&1 && action "安装elfutils-libelf*" /bin/true || action "安装elfutils-libelf*" /bin/false
 12     yum install -y gcc* >/dev/null 2>&1 && action "安装gcc*" /bin/true || action "安装gcc*" /bin/false
 13     yum install -y glibc* >/dev/null 2>&1 && action "安装glibc*" /bin/true || action "安装glibc*" /bin/false
 14     yum install -y ksh* >/dev/null 2>&1 && action "安装ksh*" /bin/true || action "安装ksh*" /bin/false    
 15     yum install -y libaio* >/dev/null 2>&1 && action "安装libaio*" /bin/true || action "安装libaio*" /bin/false
 16     yum install -y libaio.so.1 >/dev/null 2>&1 && action "安装libaio.so.1" /bin/true || action "安装libaio.so.1" /bin/false
 17     yum install -y libgcc* >/dev/null 2>&1 && action "安装libgcc*" /bin/true || action "安装libgcc*" /bin/false
 18     yum install -y libstdc* >/dev/null 2>&1 && action "安装libstdc*" /bin/true || action "安装libstdc*" /bin/false    
 19     yum install -y make* >/dev/null 2>&1 && action "安装make*" /bin/true || action "安装make*" /bin/false
 20     yum install -y sysstat* >/dev/null 2>&1 && action "安装sysstat*" /bin/true || action "安装sysstat*" /bin/false
 21     yum install -y libXp* >/dev/null 2>&1 && action "安装libXp*" /bin/true || action "安装libXp*" /bin/false    
 22     yum install -y glibc-kernheaders >/dev/null 2>&1 && action "安装glibc-kernheaders" /bin/true || action "安装glibc-kernheaders" /bin/false
 23     echo "#########################结束###########################"
 24 }
 25 
 26 #修改内核
 27 function modifyKennel
 28 {
 29     echo "
 30     fs.aio-max-nr = 1048576
 31     fs.file-max = 6815744
 32     kernel.shmall = 2097152
 33     kernel.shmmax = 4294967295
 34     kernel.shmmni = 4096
 35     kernel.sem = 250 32000 100 128
 36     net.ipv4.ip_local_port_range = 9000 65500
 37     net.core.rmem_default = 262144
 38     net.core.rmem_max = 4194304
 39     net.core.wmem_default = 262144
 40     net.core.wmem_max = 1048576
 41     " >> /etc/sysctl.conf
 42     if [ "$?" -eq 0 ];then
 43     sysctl -p >/dev/null 2>&1
 44     action "修改内核参数" /bin/true
 45     else
 46     action "修改内核参数" /bin/false
 47     fi
 48 }
 49 
 50 #修改资源限制
 51 function modifyLimit
 52 {
 53     echo "
 54     oracle soft nproc 2047
 55     oracle hard nproc 16384
 56     oracle soft nofile 1024
 57     oracle hard nofile 65536
 58     oracle soft stack 10240
 59     grid soft nproc 16384
 60     grid hard nproc 16384
 61     grid soft nofile 65536
 62     grid hard nofile 65536
 63     grid soft stack 10240
 64     grid hard stack 10240
 65     " >> /etc/security/limits.conf
 66     if [ "$?" -eq 0 ];then
 67     action "修改资源限制" /bin/true
 68     else
 69     action "修改资源限制" /bin/false
 70     fi
 71 }
 72 
 73 function modifyProfile
 74 {
 75     echo "
 76     session required /lib/security/pam_limits.so
 77     session required pam_limits.so
 78     " >> /etc/pam.d/login && action "修改login" /bin/true || action "修改login" /bin/false
 79     echo "
 80     if [ $USER = "oracle" ]; then
 81     if [ $SHELL = "/bin/ksh" ]; then
 82     ulimit -p 16384
 83     ulimit -n 65536
 84     else
 85     ulimit -u 16384 -n 65536
 86     fi
 87     fi
 88     " >> /etc/profile
 89     if [ "$?" -eq 0 ];then
 90     source /etc/profile
 91     action "修改profile" /bin/true
 92     else
 93     action "修改profile" /bin/false
 94     fi
 95 }
 96 
 97 #创建oracle、grid组
 98 function createGroup
 99 {
100     [ `cat /etc/group|grep dba|wc -l` -gt 0 ] && groupdel dba
101     [ `cat /etc/group|grep oinstall|wc -l` -gt 0 ] && groupdel oinstall
102     [ `cat /etc/group|grep oper|wc -l` -gt 0 ] && groupdel oper
103     [ `cat /etc/group|grep asmadmin|wc -l` -gt 0 ] && groupdel asmadmin
104     [ `cat /etc/group|grep asmdba|wc -l` -gt 0 ] && groupdel asmdba
105     [ `cat /etc/group|grep asmoper|wc -l` -gt 0 ] && groupdel asmoper
106     read -p "依次输入dba,oinstall,oper,asmadmin,asmdba,asmoper组号:" dbagid oinstallgid opergid asmadmingid asmdbagid asmopergid
107     groupadd -g $dbagid dba
108     groupadd -g $oinstallgid oinstall
109     groupadd -g $opergid oper
110     groupadd -g $asmadmingid asmadmin
111     groupadd -g $asmdbagid asmdba
112     groupadd -g $asmopergid asmoper
113     [ `cat /etc/group|grep dba|wc -l` -gt 0 ] && action "dba组创建成功" /bin/true || action "dba组创建失败" /bin/false
114     [ `cat /etc/group|grep oinstall|wc -l` -gt 0 ] && action "oinstall组创建成功" /bin/true || action "oinstall组创建失败" /bin/false
115     [ `cat /etc/group|grep oper|wc -l` -gt 0 ] && action "oper组创建成功" /bin/true || action "oper组创建失败" /bin/false
116     [ `cat /etc/group|grep asmadmin|wc -l` -gt 0 ] && action "asmadmin组创建成功" /bin/true || action "asmadmin组创建失败" /bin/false
117     [ `cat /etc/group|grep asmdba|wc -l` -gt 0 ] && action "asmdba组创建成功" /bin/true || action "asmdba组创建失败" /bin/false
118     [ `cat /etc/group|grep asmoper|wc -l` -gt 0 ] && action "asmoper组创建成功" /bin/true || action "asmoper组创建失败" /bin/false        
119 }
120 
121 #创建oracle、grid用户
122 function createUser
123 {
124     [ `cat /etc/passwd|grep oracle|wc -l` -gt 0 ] && userdel oracle
125     [ `cat /etc/passwd|grep grid|wc -l` -gt 0 ] && userdel grid
126     read -p "请输入oracle ID:" oracleuid
127     read -s -p "请输入oracle用户密码:" orapasswd && echo -e "\r"
128     read -p "请输入grid ID:" griduid    
129     read -s -p "请输入grid用户密码:" gridpasswd && echo -e "\r"
130     useradd -u $oracleuid -g oinstall -G dba,oper,asmdba,asmadmin oracle
131     [ $? -eq 0 ] &&    action "创建oracle用户成功" /bin/true || action "创建oracle用户失败" /bin/false
132     echo "$orapasswd"|passwd oracle --stdin >/dev/null
133     useradd -u $griduid -g oinstall -G dba,asmadmin,asmdba,asmoper grid
134     [ $? -eq 0 ] &&    action "创建grid用户成功" /bin/true || action "创建grid用户失败" /bin/false    
135     echo "$gridpasswd"|passwd grid --stdin >/dev/null
136 }
137 
138 #创建目录
139 function createDIR
140 {
141     rm -rf /u01/app
142     mkdir -p /u01/app/11.2.0/grid
143     mkdir -p /u01/app/grid
144     mkdir -p /u01/app/oracle/product/11.2.0/db_1
145     if [ -d /u01/app/11.2.0/grid ] && [ -d /u01/app/grid ] && [ -d /u01/app/oracle/product/11.2.0/db_1 ];then
146         action "创建目录成功" /bin/true
147     else
148         action "创建目录失败" /bin/false
149     fi
150     chown -R grid:oinstall /u01 
151     chmod -R 775 /u01/
152     chown -R oracle:oinstall /u01/app/oracle 
153 }
154 
155 
156 function oracleProfile
157 {     
158     if [ `su - oracle -c "env|grep ORA|wc -l"` -gt 0 ];then
159         action "修改oracle环境" /bin/true
160     else
161         su - oracle -c echo -e "export ORACLE_BASE=/u01/app/oracle\nexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1" >> ~/.bash_profile
162         su - oracle -c echo -e "export ORACLE_TERM=xterm\nexport PATH=/usr/sbin:$PATH\nexport PATH=$ORACLE_HOME/bin:$PATH" >> ~/.bash_profile
163         su - oracle -c echo -e "export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib\nexport CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib" >> ~/.bash_profile
164         su - oracle -c echo -e "ulimit -u 16384 -n 65536\numask 022" >> ~/.bash_profile && source ~/.bash_profile
165         if [ `su - oracle -c "env|grep ORA|wc -l"` -gt 0 ];then
166             action "修改oracle环境" /bin/true
167         else
168             action "修改oracle环境" /bin/false
169         fi
170     fi
171 }
172 
173 #修改环境变量
174 function gridProfile
175 {
176     if [ `su - grid -c "env|grep ORA|wc -l"` -gt 0 ];then
177         action "修改grid环境" /bin/true
178     else
179         su - grid -c echo -e "export export ORACLE_SID=+ASM\nexport ORACLE_BASE=/u01/app/grid\nexport ORACLE_HOME=/u01/app/11.2.0/grid" >> ~/.bash_profile
180         su - grid -c echo -e "export PATH=$PATH:$HOME/bin\nexport PATH=/usr/sbin:$PATH:$ORACLE_HOME/bin:$PATH" >> ~/.bash_profile
181         su - grid -c echo -e "export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib\nexport CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib" >> ~/.bash_profile
182         su - grid -c echo -e "export TEMP=/tmp\nexport TMP=/tmp\nexport TMPDIR=/tmp\numask 022" >> ~/.bash_profile && source ~/.bash_profile
183         if [ `su - grid -c "env|grep ORA|wc -l"` -gt 0 ];then
184             action "修改grid环境" /bin/true
185         else
186             action "修改grid环境" /bin/false
187         fi
188     fi
189 }
190 
191 #主函数
192 function main
193 {
194     yumPackge
195     modifyLimit
196     modifyKennel
197     modifyProfile
198     createGroup
199     createUser
200     createDIR
201     oracleProfile
202     gridProfile
203 }
204 
205 main

 

以上是关于ORACLE环境安装脚本的主要内容,如果未能解决你的问题,请参考以下文章

Linux环境一键自动化安装oracle软件的构想(附shell脚本)

Oracle 10g 安装环境配置脚本

⭐️ Shell 脚本一键安装,Oracle 21C Single 抢先体验!!!

CentOS7通过shell脚本自动部署oracle12c

续:纠正:ubuntu7.04可以安装,而且完美的安装 ! for《Oracle-10.2.0.1,打补丁10.2.0.5:在 debian 版本4不含4以上,及 ubuntu 7.04不含(代码片段

Oracle 用脚本安装第二个数据库