Oracle 11gR2自动安装脚本


备注:
  机器配置不限,本脚本只是帮助把软件安装好及配置好监听和库,保证能用的前提,具体参数需要自行根据实际情况进行调整。
  安装时必须提前配置好yum环境,如需查看如何配置yum请看:http://www.cnblogs.com/zhushenke/articles/8966262.html
  机器的系统必须为6.x或者7.x版本
  如需博主提供的安装包,请移步:链接:https://pan我是点baidu.com/s/1vhzzs42v3MHC2XF3xzgjew 密码:kxqv
####################Steup 1 Install oracle software

1 #!/bin/bash
 2 export PATH=$PATH  3 
 4 ###set firewalld&selinux  5 os=`cat /etc/redhat-release|awk '{print $4}'|awk -F'.' '{print $1}'`  6 if [ ${os} == "7" ];then
 7     systemctl disable firewalld && systemctl stop firewalld  8         systemctl disable abrt-ccpp  9  systemctl disable abrtd  10  systemctl disable atd  11  systemctl disable auditd  12  systemctl disable cpuspeed  13  systemctl disable cups  14  systemctl disable dnsmasq  15  systemctl disable firstboot  16         systemctl disable lvm2-monitor  17  systemctl disable netconsole  18  systemctl disable netfs  19  systemctl disable ntpd  20  systemctl disable ntpdate  21  systemctl disable portreserve  22  systemctl disable postfix  23  systemctl disable rdisc  24  systemctl disable restorecond  25  systemctl disable saslauthd  26  systemctl disable wdaemon  27  systemctl disable wpa_supplicant  28  systemctl disable NetworkManager  29         systemctl disable blk-availability  30  systemctl disable cpuspeed  31         systemctl disable lvm2-monitor  32  systemctl disable restorecond  33  systemctl disable netconsole  34     if [ `getenforce` == "Enforcing" ];then
 35         setenforce 0
 36         sed -i "s!SELINUX=enforcing!SELINUX=disabled!g" /etc/selinux/config  37     elif [ `getenforce` == "Permissive" ];then
 38         sed -i "s!SELINUX=enforcing!SELINUX=disabled!g" /etc/selinux/config  39     else
 40  continue  41     fi
 42 else
 43     chkconfig iptables off && chkconfig ip6tables off && service iptables stop && service ip6tables stop  44         chkconfig abrt-ccpp off  45  chkconfig abrtd off  46  chkconfig atd off  47  chkconfig auditd off  48  chkconfig cpuspeed off  49  chkconfig cups off  50  chkconfig dnsmasq off  51  chkconfig firstboot off  52         chkconfig lvm2-monitor off  53  chkconfig netconsole off  54  chkconfig netfs off  55  chkconfig ntpd off  56  chkconfig ntpdate off  57  chkconfig portreserve off  58  chkconfig postfix off  59  chkconfig rdisc off  60  chkconfig restorecond off  61  chkconfig saslauthd off  62  chkconfig wdaemon off  63  chkconfig wpa_supplicant off  64  chkconfig NetworkManager off  65         chkconfig blk-availability off  66  chkconfig cpuspeed off  67         chkconfig lvm2-monitor off  68  chkconfig restorecond off  69  chkconfig netconsole off  70     if [ `getenforce` == "Enforcing" ];then
 71                 setenforce 0
 72                 sed -i "s!SELINUX=enforcing!SELINUX=disabled!g" /etc/selinux/config  73         elif [ `getenforce` == "Permissive" ];then
 74                 sed -i "s!SELINUX=enforcing!SELINUX=disabled!g" /etc/selinux/config  75         else
 76  continue  77         fi
 78 fi
 79 
 80 ###set the ip in hosts  81 hostname=`hostname`  82 ip=`ip a|grep 'inet '|grep -v '127.0.0.1'|awk '{print $2}'|awk -F '/' '{print $1}'`  83 for i in ${ip}  84 do
 85     a=`grep "${i}" /etc/hosts`  86     if [ ! -n "${a}" ];then
 87         echo "${i} ${hostname}" >> /etc/hosts  88     else
 89  break  90     fi
 91 done
 92 
 93 ###create group&user  94 ora_user=oracle  95 ora_group=('oinstall' 'dba' 'oper')  96 for i in ${ora_group[@]}  97 do
 98     a=`grep '${i}' /etc/group`  99     if [ ! -n ${a} ];then
100         groupdel ${i} && groupadd ${i} 101     else    
102  groupadd ${i} 103     fi
104 done
105 a=`grep 'oracle' /etc/passwd` 106 if [ ! -n ${a} ];then
107     userdel -r ${ora_user} && useradd -u 501 -g ${ora_group[0]} -G ${ora_group[1]},${ora_group[2]} ${ora_user} 108 else
109     useradd -u 501 -g ${ora_group[0]} -G ${ora_group[1]},${ora_group[2]} ${ora_user} 110 fi
111 echo "wincenter" | passwd --stdin ${ora_user} 112 ###create directory and grant priv 113 count=0
114 while [ $count -lt 3 ] 115 do
116     read -p "Please input the ORACLE_SID(e.g:orcl):" S1 117     read -p "Please input the ORACLE_SID again(e.g:orcl):" S2 118     if [ "${S1}" == "${S2}" ];then
119         export ORACLE_SID=${S1} 120  break 121     else
122         echo "You input ORACLE_SID not same."
123         count=$[${count}+1] 124     fi
125 done
126 count=0
127 while [ $count -lt 3 ] 128 do
129         read -p "Please input the ORACLE_BASE(e.g:/oracle/app):" S1 130         read -p "Please input the ORACLE_BASE again(e.g:/oracle/app):" S2 131         if [ "${S1}" == "${S2}" ];then
132                 export ORACLE_BASE=${S1} 133  break 134         else    
135                 echo "You input ORACLE_BASE not same."
136                 count=$[${count}+1] 137         fi 
138 done
139 count=0
140 while [ $count -lt 3 ] 141 do
142         read -p "Please input the ORACLE_HOME(e.g:/oracle/app/db):" S1 143         read -p "Please input the ORACLE_HOME again(e.g:/oracle/app/db):" S2 144         if [ "${S1}" == "${S2}" ];then
145                 export ORACLE_HOME=${S1} 146  break 147         else        
148                 echo "You input ORACLE_HOME not same."
149                 count=$[${count}+1] 150         fi      
151 done
152 if [ ! -d ${ORACLE_HOME} ];then
153     mkdir -p ${ORACLE_HOME} 154 else
155  continue 156 fi
157 if [ ! -d ${ORACLE_BASE}/data ];then
158     mkdir -p ${ORACLE_BASE}/data 159 else
160  continue 161 fi
162 if [ ! -d ${ORACLE_BASE}/recovery ];then
163     mkdir -p ${ORACLE_BASE}/recovery 164 else
165  continue 166 fi
167 ora_dir=`echo ${ORACLE_HOME}|awk -F '/' '{print $2}'` 168 last_dir=`echo ${ORACLE_HOME}|awk -F '/' '{print $NF}'` 169 
170 ###install require packages 171 yum -y install elfutils-libelf-devel binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel zip unzip tree 172 
173 ###set the sysctl,limits and profile 174 a=`grep 'fs.aio-max-nr' /etc/sysctl.conf` 175 if [ ! -n "${a}" ];then
176 cat << EOF >> /etc/sysctl.conf 177 fs.aio-max-nr = 1048576
178 fs.file-max = 6815744
179 kernel.shmall = 2097152
180 kernel.shmmax = 4294967295
181 kernel.shmmni = 4096
182 kernel.sem = 250 32000 100 128
183 net.ipv4.ip_local_port_range = 9000 65500
184 net.core.rmem_default = 262144
185 net.core.rmem_max = 4194304
186 net.core.wmem_default = 262144
187 net.core.wmem_max = 1048576
188 EOF 189 else
190  continue 191 fi
192 a=`grep 'oracle' /etc/security/limits.conf` 193 if [ ! -n "${a}" ];then
194 cat << EOF >> /etc/security/limits.conf 195 oracle soft nproc 2047
196 oracle hard nproc 16384
197 oracle soft nofile 1024
198 oracle hard nofile 65536
199 oracle soft stack 10240
200 EOF 201 else
202  continue 203 fi
204 a=`grep 'ORACLE_SID' /home/${ora_user}/.bash_profile` 205 if [ ! -n "${a}" ];then
206 cat << EOF >> /home/${ora_user}/.bash_profile 207 export ORACLE_SID=${ORACLE_SID} 208 export ORACLE_BASE=${ORACLE_BASE} 209 export ORACLE_HOME=\$ORACLE_BASE/${last_dir} 210 export PATH=\$PATH:\$ORACLE_HOME/bin 211 EOF 212 else
213  continue 214 fi
215 a=`grep 'oracle' /etc/profile` 216 if [ ! -n "${a}" ];then
217 cat << EOF >> /etc/profile 218 if [ \$USER = "oracle" ];then
219     if [ \$SHELL = "/bin/ksh" ];then
220         ulimit -p 16384
221         ulimit -n 65536
222     else
223         ulimit -u 16384 -n 65536
224     fi
225 else
226  continue 227 fi
228 EOF 229 else
230  continue 231 fi
232 a=`grep 'pam_limits.so' /etc/pam.d/login` 233 if [ ! -n "${a}" ];then
234 cat << EOF >> /etc/pam.d/login
235 session   required    /lib/security/pam_limits.so 236 session required pam_limits.so 237 EOF 238 else
239  continue 240 fi
241 sysctl -p && source /home/${ora_user}/.bash_profile 242 
243 ###unzip the install package and set response file
244 count=0
245 while [ $count -lt 3 ] 246 do
247     read -p "Please input the zip file location(e.g:/oracle/db.zip):" zfile 248     if [ ! -f ${zfile} ];then
249         echo "You input location not found zip file."
250         count=$[${count}+1] 251     else
252         export zfile=${zfile} 253  break 254     fi
255 done
256 unzip ${zfile} -d /${ora_dir} && chown -R ${ora_user}:${ora_group[0]}  /${ora_dir} && chmod -R 775 /${ora_dir} 257 
258 free_m=`free -m | grep 'Mem:'|awk '{print $2}'` 259 db_response_file=`find / -type f -name db_install.rsp` 260 data_dir=${ORACLE_BASE}/data 261 recovery_dir=${ORACLE_BASE}/recovery 262 cd `find / -type f -name db_install.rsp | sed -n 's:/[^/]*$::p'` && cd ../
263 install_dir=`pwd` 264 sed -i "s!oracle.install.option=!oracle.install.option=INSTALL_DB_SWONLY!g" ${db_response_file} 265 sed -i "s!ORACLE_HOSTNAME=!ORACLE_HOSTNAME=${hostname}!g" ${db_response_file} 266 sed -i "s!UNIX_GROUP_NAME=!UNIX_GROUP_NAME=${ora_group[0]}!g" ${db_response_file} 267 sed -i "s!INVENTORY_LOCATION=!INVENTORY_LOCATION=${ORACLE_BASE}/oraInventory!g" ${db_response_file} 268 sed -i "s!SELECTED_LANGUAGES=en!SELECTED_LANGUAGES=en,zh_CN!g" ${db_response_file} 269 sed -i "s!ORACLE_HOME=!ORACLE_HOME=${ORACLE_HOME}!g" ${db_response_file} 270 sed -i "s!ORACLE_BASE=!ORACLE_BASE=${ORACLE_BASE}!g" ${db_response_file} 271 sed -i "s!oracle.install.db.InstallEdition=!oracle.install.db.InstallEdition=EE!g" ${db_response_file} 272 sed -i "s!oracle.install.db.DBA_GROUP=!oracle.install.db.DBA_GROUP=${ora_group[1]}!g" ${db_response_file} 273 sed -i "s!oracle.install.db.OPER_GROUP=!oracle.install.db.OPER_GROUP=${ora_group[2]}!g" ${db_response_file} 274 sed -i "s!oracle.install.db.config.starterdb.type=!oracle.install.db.config.starterdb.type=GENERAL_PURPOSE!g" ${db_response_file} 275 sed -i "s!oracle.install.db.config.starterdb.globalDBName=!oracle.install.db.config.starterdb.globalDBName=${ORACLE_SID}!g" ${db_response_file} 276 sed -i "s!oracle.install.db.config.starterdb.SID=!oracle.install.db.config.starterdb.SID=${ORACLE_SID}!g" ${db_response_file} 277 sed -i "s!oracle.install.db.config.starterdb.characterSet=AL32UTF8!oracle.install.db.config.starterdb.characterSet=ZHS16GBK!g" ${db_response_file} 278 sed -i "s!oracle.install.db.config.starterdb.memoryLimit=!oracle.install.db.config.starterdb.memoryLimit=$[free_m*8/10]!g" ${db_response_file} 279 sed -i "s!oracle.install.db.config.starterdb.password.ALL=!oracle.install.db.config.starterdb.password.ALL=wincenter!g" ${db_response_file} 280 sed -i "s!oracle.install.db.config.starterdb.storageType=!oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE!g" ${db_response_file} 281 sed -i "s!oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=!oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=${data_dir}!g" ${db_response_file} 282 sed -i "s!oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=!oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=${recovery_dir}!g" ${db_response_file} 283 sed -i "s!oracle.installer.autoupdates.option=!oracle.installer.autoupdates.option=SKIP_UPDATES!g" ${db_response_file} 284 sed -i "s!SECURITY_UPDATES=!SECURITY_UPDATES=true!g" ${db_response_file} 285 su - oracle -c "${install_dir}/runInstaller -silent -ignoreDiskWarning -ignoreSysPrereqs -ignorePrereq -responseFile ${db_response_file}"

####################Steup 2 Confiture oracle listener&dbca
 1 #!/bin/bash
 2 export PATH=$PATH
 3 
 4 PASSWORD="wincenter"
 5 ORACLE_SID=`su - oracle -c 'source ~/.bash_profile && echo $ORACLE_SID'`
 6 ORACLE_BASE=`su - oracle -c 'source ~/.bash_profile && echo $ORACLE_BASE'`
 7 ORACLE_HOME=`su - oracle -c 'source ~/.bash_profile && echo $ORACLE_HOME'`
 8 
 9 temp=`ls ${ORACLE_BASE}|grep 'data'`
10 if [ ! -n ${temp} ];then
11         mkdir ${ORACLE_BASE}/data
12         export DATAFILE=${ORACLE_BASE}/data
13 else
14         export DATAFILE=${ORACLE_BASE}/data
15 fi
16 temp=`ls ${ORACLE_BASE}|grep 'area'`
17 if [ ! -n ${temp} ];then
18         mkdir ${ORACLE_BASE}/flash_recovery_area
19         export RECOVERY=${ORACLE_BASE}/flash_recovery_area
20 else
21         export RECOVERY=${ORACLE_BASE}/flash_recovery_area
22 fi
23 NETCA=`find / -type f -name netca.rsp`
24 sed -i "s!INSTALL_TYPE=""typical""!INSTALL_TYPE=""custom""!g" ${NETCA}
25 MEM=`free -m|grep 'Mem:'|awk '{print $2}'`
26 TOTAL=$[MEM*8/10]
27 
28 ###set listener&tnsnames
29 su - oracle << EOF
30 source ~/.bash_profile
31 ${ORACLE_HOME}/bin/netca -silent -responsefile ${NETCA}
32 dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname ${ORACLE_SID} -sid ${ORACLE_SID} -sysPassword ${PASSWORD} -systemPassword ${PASSWORD} -responseFile NO_VALUE -datafileDestination ${DATAFILE} -redoLogFileSize 1000 -recoveryAreaDestination ${RECOVERY} -storageType FS -characterSet ZHS16GBK -nationalCharacterSet AL16UTF16 -sampleSchema false -memoryPercentage 80 -totalMemory $TOTAL -databaseType OLTP -emConfiguration NONE
33 EOF

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM