客户要做在一个测试环境下部署一套oracle 11g rac,用的是虚拟机,要知道,以前我做的全是真实场景。目前还没有兄弟替我完成这个任务,只好挽起袖子亲自上阵了。
全部精力放在做快消品O2O上,很久没接触系统,弄起来比较生疏。在部署过程中,遇到很多障碍,特记录于此。
◆连接虚拟机实例(proxmox)
客户给的是一个web方式登录,以浏览器的方式,管理虚拟机,再通过java,弹出vnc一类的窗口。开始只能到管理界面,控制台窗口出不来,折腾和交流一阵,才知道是浏览器的兼容问题。这中间,也因为本地windows的java版本低的问题不出现控制台。
#!/bin/bash
#writed by sery,2015-8-15
/sbin/iptables -t nat -A POSTROUTING -s 192.168.40.0/24 -o eth3 -j SNAT --to-source 121.20.48.132
/sbin/iptables -t nat -A POSTROUTING -s 192.168.42.0/24 -o vmbr0 -j SNAT --to-source 192.168.40.21
/sbin/iptables -t nat -A POSTROUTING -o eth3 -j MASQUERADE
我查看历史命令,看见里边也有iptables,但他用的接口不对,正确的接口名称是vmbr0,做了桥接,而不是eth1.这个也是费了些时间,仔细对比才发现问题所在。
◆操作系统版本
安装oracleasm组件的时候,发现系统版本过高,与oracle 11g不匹配。只好让他们把版本换成cents 5.11.内核版本为Linux rac101 2.6.18-398.el5,oracle的官方站点,正好能找到包“oracleasm-2.6.18-398.el5-2.0.5-1.el5.x86_64.rpm”。这个很关键,否则后边创建asm磁盘会失败。
◆ssh验证
grid安装过程中,用安装界面直接点击“setup”,成功,但再往下,就通过不了,提示节点间ssh失败。进行一下操作多次尝试:
◎检查每个节点/etc/hosts文件,生怕哪个字符敲错了,然后继续进行,无效。
◎手工执行ssh-keyge,合并两个节点的key文件,再手工执行ssh,双向登录,无需密码。接着再返回grid安装界面,验证还是过不去。
查看日志,也没发现有用的信息。
执行一下 ./runcluvfy.sh stage -post hwos -n rac101,rac102 -verbose ,发现问题所在,原来是另外一个网络(oracle rac 的私有网络)不通。相互ping内网地址(192.168.41.*)不通。只好骚扰对方,让他们处理。得到的反馈是做了宿主主机的网卡bonding,取消以后,就正常了。
◆asm磁盘丢失
安装继续进行,在选定asm磁盘组的时候,发现里边空空如也。再登录系统,cd /dev/oracleasm/disks ,里边也是空的了。应该是iscsi出故障了,通知对方处理,正常后方可进行后边的操作。
◆asm实例不启动
grid安装完毕后,进行oracle database的安装,也是在选择存储位置的时候,asm磁盘组不见了。通过查看,发现节点2的asm实例不能启动,重启系统也不行。一番检查,发现犯了低级错误:asm的实例SID居然与第一个SID相同(通过相同脚本自动生成的,忘记手工修改了)。修改SID也不行,只好删除整个grid。一着急,执行顺序弄错了,居然删除不了。折腾好一阵子,都准备让他们重装系统。休息一会,把整个安装目录/u01/app全干掉。再重新来一次,终于正常。