oracle 11g r2 一键配置脚本

前端之家收集整理的这篇文章主要介绍了oracle 11g r2 一键配置脚本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

最近工作需要安装oracle 11g R2在阿里云ECS上,因此编写了一个脚本来完成图形化安装界面之前的准备工作,这样节省时间,shell如下:

  1. #!/bin/bash
  2. SYSCTL="/etc/sysctl.conf"
  3. LIMITS="/etc/security/limits.conf"
  4. PAM="/etc/pam.d/login"
  5. PROFILE="/etc/profile"
  6. BASH_PROFILE="/home/oracle/.bash_profile"
  7. oracle_passwd='oracle'
  8. SID=orcl
  9. lang="AMERICAN_AMERICA.AL32UTF8"
  10. #ora_install_dir=/u01
  11. #ora_database_dir=/u02
  12. ORACLE_BASE=$ora_install_dir/app/oracle
  13. ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db
  14.  
  15. #初始化检查,OS版本、内存、磁盘情况
  16. check_init()
  17. {
  18. OS=`cat/etc/redhat-release`
  19. MEM=`free-m|grep'Mem'|awk'{print$2}'`
  20. cpuS=`grep-i"processor"/proc/cpuinfo|wc-l`
  21. echo"系统版本:$OS"
  22. echo"内存:${MEM}M"
  23. echo"cpu核数:$cpuS"
  24. }
  25.  
  26. #检查swap空间是否分配
  27. check_swap()
  28. {
  29. swap_check="`grep-i'swaptotal'/proc/meminfo|awk'{print$2}'`"
  30. if[[$swap_check="0"]];then
  31. echo"swapspaceNotset,pleasecreateforswapspace!!!"
  32. exit1
  33. fi
  34. }
  35.  
  36. #检查是否root用户执行脚本
  37. isroot()
  38. {
  39. if[$USER!="root"];then
  40. echo-e"\n\e[1;31mTheusermustberoot,andyouuseris$USER,pleasesutoroot.\e[0m"
  41. exit4
  42. fi
  43. }
  44.  
  45. #创建oracle用户
  46. oracle_useradd()
  47. {
  48. if[[`grep"oracle"/etc/passwd`!=""]];then
  49. echo-e"\e[1;31mUseroracleexits,deleteandcreateoracle!\e[0m"&&sleep2
  50. userdel-rforacle
  51.  
  52. fi
  53. if[[`grep"oinstall"/etc/group`=""]];then
  54. groupaddoinstall
  55. fi
  56. if[[`grep"dba"/etc/group`=""]];then
  57. groupadddba
  58. fi
  59. useraddoracle-goinstall-Gdba&&echo$oracle_passwd|passwdoracle--stdin
  60. if[$?-eq0];then
  61. echo-e"\n\e[1;32moracle'spasswordupdatesuccessfully---OK!\e[0m"
  62. else
  63. echo-e"\n\e[1;31moracle'spasswordsetFailed.---NO!\e[0m"
  64. fi
  65. }
  66.  
  67. #创建oracle使用的目录
  68. oracle_dirs()
  69. {
  70. read-p"pleaseinputoracleinstalldirname,default/u01":ora_install_dir
  71. read-p"pleaseinputoracledatabasedirname,default/u02":ora_database_dir
  72. mkdir-p$ora_install_dir/app/oracle/{oraInventory,product/11.2.0/db}
  73. mkdir-p"$ora_database_dir/oradata/oradb"
  74. chown-Roracle:oinstall$ora_install_dir
  75. chown-Roracle.oinstall$ora_database_dir
  76. chmod-R755$ora_install_dir$ora_database_dir
  77. if[$?==0];then
  78. echo"$ora_install_dircreatesucessfully!"
  79. echo"$ora_database_dircreatesucessfully!"
  80. else
  81. echo"$ora_install_diror$ora_database_dircreateFailed,pleasecheck!"
  82. exit2
  83. fi
  84. }
  85. #配置profile文件
  86. oracle_profile()
  87. {
  88. if[-f"/etc/profile.bak"];then
  89. rm-rf/etc/profile>/dev/null
  90. cp/etc/profile.bak/etc/profile
  91. cat<<EOF>>$PROFILE
  92. if[$USER="oracle"];then
  93. if[$SHELL="/bin/ksh"];then
  94. ulimit-p16384
  95. ulimit-n65536
  96. else
  97. ulimit-u16384-n65536
  98. fi
  99. fi
  100. EOF
  101. else
  102. cp/etc/profile/etc/profile.bak
  103. cat<<EOF>>$PROFILE
  104. if[$USER="oracle"];then
  105. if[$SHELL="/bin/ksh"];then
  106. ulimit-p16384
  107. ulimit-n65536
  108. else
  109. ulimit-u16384-n65536
  110. fi
  111. fi
  112. EOF
  113. fi
  114. if[$?-eq0];then
  115. echo-e"\n\e[1;32m$PROFILEupdatesuccessfully...OK!\e[0m"
  116. fi
  117. }
  118. #配置.bash_profile()
  119. oracle_bash()
  120. {
  121. if[-f"/home/oracle/.bash_profile.bak"];then
  122. rm-rf$BASH_PROFILE>/dev/null
  123. cp/home/oracle/.bash_profile.bak$BASH_PROFILE
  124. cat<<EOF>>$BASH_PROFILE
  125. exportORACLE_BASE=$ORACLE_BASE
  126. exportORACLE_HOME=$ORACLE_BASE/product/11.2.0/db
  127. exportORACLE_SID=$SID
  128. exportORACLE_TERM=xterm
  129. exportORACLE_OWNER=oracle
  130. exportTNS_ADMIN=$ORACLE_HOME/network/admin
  131. exportORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
  132. exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/lib:/usr/lib:/usr/local/lib
  133. exportLIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/lib:/usr/lib:/usr/local/lib
  134. exportPATH=$PATH:/sbin:/usr/bin:/usr/sbin:$JAVA_HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/lib:$HOME/bin:$ORACLE_HOME/OPatch:.
  135. umask022
  136. exportNLS_LANG=$lang
  137. EOF
  138. else
  139. cp$BASH_PROFILE/home/oracle/.bash_profile.bak
  140. cat<<EOF>>$BASH_PROFILE
  141. exportORACLE_BASE=$ORACLE_BASE
  142. exportORACLE_HOME=$ORACLE_BASE/product/11.2.0/db
  143. exportORACLE_SID=$SID
  144. exportORACLE_TERM=xterm
  145. exportORACLE_OWNER=oracle
  146. exportTNS_ADMIN=$ORACLE_HOME/network/admin
  147. exportORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
  148. exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/lib:/usr/lib:/usr/local/lib
  149. exportLIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/lib:/usr/lib:/usr/local/lib
  150. exportPATH=$PATH:/sbin:/usr/bin:/usr/sbin:$JAVA_HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/lib:$HOME/bin:$ORACLE_HOME/OPatch:.
  151. umask022
  152. exportNLS_LANG=$lang
  153. EOF
  154. fi
  155. if[$?-eq0];then
  156. echo-e"\n\e[1;32m$BASH_PROFILEupdatesuccessfully...OK!\e[0m"
  157. fi
  158. }
  159. #设置limit资源限制
  160. oracle_limit()
  161. {
  162. if[-f"/etc/security/limits.conf.bak"];then
  163. rm-rf$LIMITS>/dev/null
  164. cp/etc/security/limits.conf.bak$LIMITS
  165. cat<<EOF>>$LIMITS
  166. oraclesoftnproc8192
  167. oraclehardnproc16384
  168. oraclesoftnofile8192
  169. oraclehardnofile65536
  170. EOF
  171. else
  172. cp$LIMITS/etc/security/limits.conf.bak
  173. cat<<EOF>>$LIMITS
  174. oraclesoftnproc8192
  175. oraclehardnproc16384
  176. oraclesoftnofile8192
  177. oraclehardnofile65536
  178. EOF
  179. fi
  180. if[$?-eq0];then
  181. echo-e"\n\e[1;32m$LIMITSupdatesucessfully...OK!\e[0m"
  182. fi
  183. }
  184. #设置内核参数
  185. oracle_kernal()
  186. {
  187. if[-f/etc/sysctl.conf.bak];then
  188. rm-rf$SYSCTL>/dev/null
  189. cp/etc/sysctl.conf.bak$SYSCTL
  190. sed-i's/kernel.msgmnb.*/#kernel.msgmnb=65536/g'$SYSCTL
  191. sed-i's/kernel.msgmax.*/#kernel.msgmax=65536/g'$SYSCTL
  192. sed-i's/kernel.shmmax.*/#kernel.shmmax=68719476736/g'$SYSCTL
  193. sed-i's/kernel.shmall.*/#kernel.shmall=4294967296/g'$SYSCTL
  194. cat<<EOF>>$SYSCTL
  195. kernel.shmall=2097152
  196. kernel.shmmax=2147483648
  197. kernel.shmmni=40960
  198. kernel.sem=25032000100128
  199. kernel.msgmni=4096
  200. kernel.msgmax=65536
  201. kernel.msgmnb=84000
  202. fs.file-max=6815744
  203. net.ipv4.ip_local_port_range=900065500
  204. fs.file-max=6815744
  205. net.core.rmem_default=262144
  206. net.core.rmem_max=4194304
  207. net.core.wmem_default=262144
  208. net.core.wmem_max=1048576
  209. fs.aio-max-nr=1048576
  210. net.ipv4.tcp_wmem=262144262144262144
  211. net.ipv4.tcp_rmem=419430441943044194304
  212. EOF
  213. else
  214. cp$SYSCTL/etc/sysctl.conf.bak
  215. sed-i's/kernel.msgmnb.*/#kernel.msgmnb=65536/g'$SYSCTL
  216. sed-i's/kernel.msgmax.*/#kernel.msgmax=65536/g'$SYSCTL
  217. sed-i's/kernel.shmmax.*/#kernel.shmmax=68719476736/g'$SYSCTL
  218. sed-i's/kernel.shmall.*/#kernel.shmall=4294967296/g'$SYSCTL
  219. cat<<EOF>>$SYSCTL
  220. kernel.shmall=2097152
  221. kernel.shmmax=2147483648
  222. kernel.shmmni=40960
  223. kernel.sem=25032000100128
  224. kernel.msgmni=4096
  225. kernel.msgmax=65536
  226. kernel.msgmnb=84000
  227. fs.file-max=6815744
  228. net.ipv4.ip_local_port_range=900065500
  229. fs.file-max=6815744
  230. net.core.rmem_default=262144
  231. net.core.rmem_max=4194304
  232. net.core.wmem_default=262144
  233. net.core.wmem_max=1048576
  234. fs.aio-max-nr=1048576
  235. net.ipv4.tcp_wmem=262144262144262144
  236. net.ipv4.tcp_rmem=419430441943044194304
  237. EOF
  238. fi
  239. if[$?-eq0];then
  240. echo-e"\n\e[1;32m$SYSCTLupdatesucessfully...OK!\e[0m"
  241. fi
  242. }
  243. #关闭iptablesandselinux
  244. iptables_selinux()
  245. {
  246. serviceiptablesstop&&chkconfigiptablesoff
  247. setenforce0&>/dev/null
  248. sed-i'/SELINUX/s/enforcing/disabled/;/SELINUX/s/permissive/disabled/'/etc/selinux/config
  249. }
  250. #下载oracle安装文件
  251. get_oracle()
  252. {
  253. wgethttp://10.139.96.23:8080/p13390677_112040_Linux-x86-64_1of7.zip-P/home/oracle&&wgethttp://10.139.96.23:8080/p13390677_112040_Linux-x86-64_2of7.zip-P/home/oracle
  254. }
  255.  
  256. #oracle安装准备主程序
  257. main()
  258. {
  259. isroot
  260. check_init&&sleep1
  261. oracle_useradd&&sleep1
  262. oracle_dirs&&sleep1
  263. oracle_profile&&sleep1
  264. oracle_bash&&sleep1
  265. oracle_limit&&sleep1
  266. oracle_kernal&&sleep1
  267. iptables_selinux&&sleep1
  268. get_oracle&&sleep1
  269. if[$?-eq0];then
  270. echo-e"\n\e[1;32moracle初始化配置已经完成,请确保图形化界面正常工作,执行./database安装程序!\e[0m"
  271. fi
  272. }
  273. main

猜你在找的Oracle相关文章