某程序员在阿里云部署了一套oracle 11g,老板说他们搞了好几天,监听一直启动不来,让我给看看。登上去一瞧,原来是主机名设置的问题(把阿里云的弹性ip直接写在/etc/hosts文件,而云主机的网卡地址一般是私有地址)。这个事情,我还专门发了一篇文章,地址为http://blog.51cto.com/sery/2084706 。修复完这个问题以后,觉得直接把数据库这样放在公网上很不妥当,通时又发现其它一些问题,比如磁盘空间规划不合理、混装java等。于是建议把此机作为测试环境,另购几台云主机,放入vpc网络,重新部署应用和数据库,把数据库与其它应用独立开来。
都怪我多事,只好亲自操刀,重新在云上给部署oracle了。本人从来不推荐在公有云部署oracle,主要原因有以下几点:
1、云主机没有交换分区swap,了解好几家服务商,都是这样呢!
2、云服务器的操作系统可定制性不灵活。在我的经验中,oracle 11g部署在centos5这样的操作系统上,不会有依赖问题,而在centos6 以上版本,一些依赖包在安装oracle过程中,校验就会出错。
3、云主机性能问题。一般情况下,我们都会选很高配置的物理服务器来部署。
在公有云部署oracle,尽管别扭,但还得干活啊。虽然在安装过程中,有几个包不匹配(实际是版本高了),忽略掉这些校验,部署上去,运行好一段时间(大概1个多月),也没见看开发人员叫唤,时不时查告警日志,也未见异常,说明安装还是成功的。目前,个人手里没有线上的云服务器,这里就用虚拟环境,来还原一下整个部署过程,希望能对有需要的人有所帮助.
选购一台centos7的云主机,外加一个250G的云盘。云盘分两个区,一个用于交换分区,剩下的用作oracle的安装目录及数据存储。划分出来的数据分区,挂接到系统上。为了符合oracle的安装习惯,挂接点为/u01.
在正式执行oracle的安装脚本之前,有一系列的前置操做,由于本人经常做部署,为了省事,写了一个脚本,内容为:
[[email protected] ~]# more oracle_rep.bash #!/bin/bash #writed by sery 2012-05-16 ######################################### #install depending packages # ######################################### yum install gcc* gcc-* gcc-c++-* glibc-devel-* glibc-headers-* compat-libstdc* libstdc* elfutils-libelf-devel* libaio-devel* sysstat* unixODBC-* pdksh-* ######################################## #add groups,user and create dir # ######################################## /usr/sbin/groupadd -g 501 oinstall /usr/sbin/groupadd -g 502 dba useradd -u 1000 -g oinstall -G dba oracle mkdir /u01/app/ mkdir -p /u01/app/oraInventory mkdir -p /u01/app/oracle chown -R oracle:oinstall /u01/app chmod -R 775 /u01/app ############################################## #modify sysctl.conf # ############################################## cat >> /etc/sysctl.conf <<done fs.file-max = 6815744 kernel.shmall = 2097152 #kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 fs.aio-max-nr = 1048576 done sysctl -p ############################################### #modify /etc/security/limits.conf # ############################################### cat >> /etc/security/limits.conf << done oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 done ################################################ #modify /etc/pam.d/login # ################################################ echo "session required pam_limits.so">>/etc/pam.d/login ################################################ # setting user oracle env # ################################################ cat >> /home/oracle/.bash_profile <<done export ORACLE_SID=zyzf1 export ORACLE_UNQNAME=zyzf1 export ORACLE_base=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/11.2.0 export PATH=$ORACLE_HOME/bin:$PATH done |
授予该脚本执行权限,然后执行./oracle_rep.bash。执行完毕,挨个检查一下,看是否生成目录、是否创建了用户、是否修改了相关配置文件....
接下来,配置和启用vnc,以图形方式来远程安装oracle。物理服务器时代,我们还可能去机房,做在物理服务器前边,接上显示器。但用了云主机以后,这个路没有了哟,当然也算解放了,不用去机房接受噪音和辐射嘛!
云主机安装的centos可能没有默认安装vnc服务,
原文地址:http://blog.51cto.com/sery/2107701