客户要做在一个测试环境下部署一套oracle 11g rac,用的是虚拟机,要知道,以前我做的全是真实场景。目前还没有兄弟替我完成这个任务,只好挽起袖子亲自上阵了。
全部精力放在做快消品O2O上,很久没接触系统,弄起来比较生疏。在部署过程中,遇到很多障碍,特记录于此。
◆连接虚拟机实例(proxmox)
客户给的是一个web方式登录,以浏览器的方式,管理虚拟机,再通过java,弹出vnc一类的窗口。开始只能到管理界面,控制台窗口出不来,折腾和交流一阵,才知道是浏览器的兼容问题。这中间,也因为本地windows的java版本低的问题不出现控制台。
不过用这种方式登录以后,用起来很不方便,主要表现在:
◎复制粘贴不好使了。特别是复制文本,以及复制报错信息出来进行搜索。
◎上传文件不方便了。正常情况,安装上lrzsz就能用rz上传本地文件。
◎键盘输入,有时候按一下键却会是一长串字符。
◎连接不稳定,很容易就掉线了。
要解决这样的不便,强烈要求对方给安装一个vpn。我从本地拨号,然后就可以ssh和vnc登录服务器(虚拟机的实例)。
◆使用vpn
对方帮我配好了vpn,拨号正常,也能ssh直接连每一个服务器(虚拟机实例)。我在准备oracle rac安装的过程中,出现一些报错,想拿报错信息到搜索引擎进行搜索,发现外网不通。试了几个网站、登录qq等,都不行。由此判断,vpn服务端没有启用转发规则,只能连通内网。问对方要了系统的权限(测试开发环境),登录上去,确认了一下,安装的是pptpd。然后写了个脚本,运行一下,就正常了。脚本内容如下:
#!/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 |
我查看历史命令,看见里边也有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全干掉。再重新来一次,终于正常。