接上一篇: Vmware+RHEL5+Oracle 10G RAC安装实验--详细过程(一)
期间如果遇到文中没有提及的问题建议就google吧,不要放弃!总有解决的办法的!
五、配置第2台节点rac2
关闭节点1,并退出虚拟机,为了方便快捷,我们就不一一按配置第一台节点那们操作了。直接将rac1目录复制一份到rac2,然后修改.vmx文件中的配置即可创建第二台节点rac2。
1、打开rac1安装目录,复制一份到rac2:
20GB的大小,复制还是需要一点时间的。
2、完成复制后,打开vmx文件把rac1更改为rac2
更改完成保存关闭。
3、双击打开vmx文件,并启动rac2节点,出现如下提示
选择create ,ok
4、启动rac2,进入系统修改相关配置:hostname,IP地址,hosts文件 等(注意以下操作是在rac2上操作,因其是从rac1复制过来的,所以显示rac1,建议此时先不要启动rac1)
修改hostname,把rac1改成rac2
修改IP地址,先ifconfig查看一下eth0与eth1的mac地址,并纪录下来
修改etho的IP地址,192.168.0.21 为192.168.0.22 ,并相应更改前面记录下来的mac地址:HWaddr:00:0C:29:2E:36:90
修改eth1的IP地址,10.10.17.221 为10.10.17.222 ,并相应更改前面记录下来的mac地址:HWaddr:00:0C:29:2E:36:9A
修改hosts文件,把第一行里的rac1更改为rac2 如下:
5、修改oracle用户下的环境变量,把ORACLE_SID =RACDB1 更改为RACDB2:
[root@rac1 network-scripts]# vi /home/oracle/.bash_profile
上述全部更改完成后重启rac2节点
六、配置clusterware安装环境
在clusterware (CRS) 和Rac Database 安装过程中,Oracle Universal Installer (OUI) 必须能够以oracle的身份自动将软件复制到所有RAC 节点。这里我们通过配置ssh 让oracle 用户拥有不输入密码即可访问各节点的能力。
1、首先两个节点间互ping,要确保都是通的
[root@rac1 ~]# ping 192.168.0.22
[root@rac1 ~]# ping 10.10.17.222
要建立用户等效性,需要在两个节点上以oracle 用户身份生成用户的公钥和私钥,首先在rac1 执行:
[root@rac1 opt]# su - oracle
[oracle@rac1 ~]$ mkdir ~/.ssh
[oracle@rac1 ~]$ chmod 700 ~/.ssh
[oracle@rac1 ~]$ ssh-keygen -t rsa
[oracle@rac1 ~]$ ssh-keygen -t dsa
然后在rac2上执行
[root@rac2 ~]# ping 192.168.0.21
[root@rac2 ~]# ping 10.10.17.221
[root@rac2 opt]# su - oracle
[oracle@rac2 ~]$ mkdir ~/.ssh
[oracle@rac2 ~]$ chmod 700 ~/.ssh
[oracle@rac2 ~]$ ssh-keygen -t rsa
[oracle@rac2 ~]$ ssh-keygen -t dsa
再切回rac1执行以下:
[oracle@rac1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[oracle@rac1 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
再执行:
[oracle@rac1 ~]$ ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[oracle@rac1 ~]$ ssh rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
[oracle@rac1 ~]$ scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys
注以上命令会提示输入rac2 oracle用户的密码,按照提示输入即可,如果失败可重新尝试执行命令,执行过程如下:
两机相互执行,看看是否还需要输入密码:
[oracle@rac1 ~]$ ssh rac1 date
[oracle@rac1 ~]$ ssh rac2 date
[oracle@rac1 ~]$ ssh rac1-priv date
[oracle@rac1 ~]$ ssh rac2-priv date
切换至node2 执行
[oracle@rac2 ~]$ ssh rac1 date
[oracle@rac2 ~]$ ssh rac2 date
[oracle@rac2 ~]$ ssh rac1-priv date
[oracle@rac2 ~]$ ssh rac2-priv date
执行过程如下:
注意:上述命令返回的信息,由于 rac对节点时间较敏感,因此如果此处显示时间不一至,建议同步,具体方法可以google,关于rac时间同步问题。
因是虚拟机环境,建议先安装vmwaretool,实现虚拟机与真实主机时间同步,然后再通过ntp实现其中一节点与另一节点时间同步,可以参考这篇文章:http://mrxiong.blog.51cto.com/287318/708337
2、配置asm共享存储:
注意:必须以root用户身份执行
在rac1执行:
[root@rac1 ~]# /etc/init.d/oracleasm configure
分别输入:oracle,dba,y,y
执行过程如下
提示:如果本步执行出错(可能出错机率最高的是在Scanning system for ASM),不妨将转换一下命令行的执行方式,改成:
[root@rac1 ~]# sh /etc/init.d/oracleasm configure
有可能解决你的问题!
再转到rac2执行:
[root@rac2 ~]# /etc/init.d/oracleasm configure
过程如下
再切换到rac1执行:
[root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdd1
[root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL1 /dev/sde1
执行过程如下
再执行如下:
[root@rac1 ~]# /etc/init.d/oracleasm scandisks
并查看一下当前的磁盘组:
[root@rac1 ~]# /etc/init.d/oracleasm listdisks
再切换到rac2执行:
[root@rac1 ~]# /etc/init.d/oracleasm scandisks
并查看一下当前的磁盘组:
[root@rac1 ~]# /etc/init.d/oracleasm listdisks
过程如下:
提示:如果在以上两个节点查看当前的磁盘组都可以正常显示VOL1,VOL2,那么恭喜你,asm配置成功。
七、安装Clusterware
注:以下操作如没有特别说明,都以oracle用户身份执行
安装前还是先说说我遇到的问题吮吸,由于安装Clusterware对节点时间同步比较敏感,所以在执行安装前强烈建议进行时间同步。同时也遇到一个奇怪的问题,在安装过程需已经对两节点进行了时间同步,两节点时间差在20s内,但在安装到以下时弹出如下错误PRKC-1002:
这是对本人比较崩溃的错误,为此还重装过两次系统。最后通过google得知,建议rac1节点设置比较rac2节点慢10分钟来再进行安装,好吧,那就试试,结果还是神奇的解决了,而且测试过几时都是成功的。
好,以下开始安装Clusterware软件:
1、首先把需要安装的clusterware软件通过共享拷贝到rac1上,执行过程如下(注下述是以root用户身份执行):
进行解压如下:
2、cd到clusterware安装软件 的cluvfy工具下,进行安装前的环境检查:
出来的信息挺多的,具体不详贴出来了,主要有以下异常信息:
还好有君三思的文档支持,上述错误都可以忽略,是bug?
3、运行安装命令,添加参数:-ignoreSysPrereqs,了RHEL5,并不被oracle10g 所支持,因此在执行安装时需要指定-ignoreSysPrereqs 跳过安装时的操作系统检查。
4、感觉很好,出现安装欢迎界面:
下一步
5、选择安装临时文件夹
如果前面配置都正确的话,应该是出现上述界面 的
下一步
6、选择安装路径,默认是db_1,这里更改为crs_1:
7、环境检查,如提示操作系统什么的,如下提示可以忽略,如果其他就要注意一下了:
选择user verified
8、指定节点
点击add
下一步
9、设置网卡,这里我们指定eth0 为public 地址。
选中eth0,点击Edit:
10、指定OCR 的存储位置,ocr大概需要至少100M空间,所以之前设置的大小已经足够了,测试环境就没有选择镜像了。
11、voting disk的存储位置
12、准备安装了
13、开始安装:
再来一张:
14、这一步比较重要:
就在这一步经历过多次失败,就差一点要放弃了!
还好,有君三思强大的文档支持,以及无敌的google,总算是成功解决。废话就少说了。
按上述提示在rac1、rac2上,使用root用户登录,并建议按下列顺序执行:
在rac1 上执行:/opt/ora10g/oraInventory/orainstRoot.sh
在rac2 上执行:/opt/ora10g/oraInventory/orainstRoot.sh
在rac1 上执行:/opt/ora10g/product/10.2.0/crs_1/root.sh
执行完上述三个命令后,在rac2上执行以下时需注意(经过前几次失败及君三思文档提示,还是先不要执行以下命令)
在rac2 上执行:/opt/ora10g/product/10.2.0/crs_1/root.sh
跳过上述命令,先修改vipca 文件
[root@rac2 opt]# vi /opt/ora10g/product/10.2.0/crs_1/bin/vipca
找到如下内容:
Remove this workaround when the bug 3937317 is fixed
arch=`uname -m
if [ "$arch" = "i686" -o "$arch" = "ia64" ]
then
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
fi
#End workaround
在fi 后新添加一行:
unset LD_ASSUME_KERNEL
再修改srvctl 文件
[root@rac2 opt]# vi /opt/ora10g/product/10.2.0/crs_1/bin/srvctl
找到如下内容:
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
同样在其后新增加一行:
unset LD_ASSUME_KERNEL
保存退出,这时可以在rac2 执行root.sh 了
执行 /opt/ora10g/product/10.2.0/crs_1/root.sh 过程中还是会发现出现错误提示。
如果出现如上述错误,那么接下来请继续在rac2上执行以下操作:
又出现错误了,发觉该遇到的错误都给我遇上了。
解决办法如下:
ok,执行完以上后,运行opt/ora10g/product/10.2.0/crs_1/bin/vipca
这次终于好了,next
默认,下一步
这里需填写vip的ip alias name,那就照填,只要填定一个正确,其它都会自动填上的
下一步
点击finish
开始配置
完成后点击ok即可
很顺利了!exit
15、这时可以切回到rac1点击弹出的提示了,点击后会进行以下:
16、大功告成!一小步
17、如果前面配置环境检查出错
以root 身份执行$ORA_CRS_HOME/cfgtoollogs/configToolFailedCommands.sh
然后执行:
[root@rac1 ~]# /opt/ora10g/product/10.2.0/crs_1/bin/./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
结果显示正确就可以。
不报错的话当然就不需要执行了,如果没有错误你应该也找不到configToolFailedCommands.sh 文件。
好了,这一篇就到此为止,接下来将进行database安装,及数据库创建等!!
本文转自pimg200551CTO博客,原文链接: http://blog.51cto.com/pimg2005/1131078,如需转载请自行联系原作者