注意,在这项配置中,除非特别说明,所有操作都是基于oracle用户的。
1、 检查安装环境
在安装crs之前,建议先利用CVU(Cluster Verification Utility)检查 CRS 的安装前环境
[oracle@node1 cluvfy]$ /data/rhel5/clusterware/cluvfy/runcluvfy.sh stage -pre crsinst -n node1,node2 -verbose
返回信息太多,这里就不贴俺执行的结果了。
需要注意几点,其返回的信息中有几个错误可忽略~~
A) . 与VIP 查找一组适合的接口有关,错误信息如下:
错误信息如下:
ERROR:
Could not find a suitable set of interfaces for VIPs.
这是一个bug,Metalink中有详细说明,doc.id:338924.1,如说明中所述,可以忽略该错误,没什么问题。
B) . 有一堆包的验证会出现错误,要么提示找不到,要么是版本不对。例如:
Check: Package existence for "compat-gcc-7.3-2.96.128"
Node Name Status Comment
------------------------------ ------------------------------ ----------------
node2 missing failed
node1 missing failed
Result: Package existence check failed for "compat-gcc-7.3-2.96.128".
Check: Package existence for "compat-gcc-c++-7.3-2.96.128"
Node Name Status Comment
------------------------------ ------------------------------ ----------------
node2 missing failed
node1 missing failed
Result: Package existence check failed for "compat-gcc-c++-7.3-2.96.128".
...........
...........
这之类的吧
不用管它们,这也是一个BUG,只要确认节点中都已经安装了正确版本的 compat-* 包即可。
C) . 内存检查失败
可以忽略的错误,内存差一点并不会影响到crs的安装,只是慢一些而已。当然如果人家要求512M,你只提供了64M内存,黑黑,这个差别就太大了。
2、 开始安装crs
RAC 的安装并没有太明显的主从关系,一般我们认为,在哪个上面执行了安装,哪个就是主(实际也不完全是这样,主节点安装的时候,也会自动将文件复制到其它节点的)
这里我们选择node1进行安装~~
注意,下列操作需要在视窗模式下执行哟。
执行安装命令
注意xhost +先,另外由于我们使用了RHEL5,并不被oracle10g所支持,因此在执行安装时需要指定-ignoreSysPrereqs跳过安装时的操作系统检查。
看到欢迎界面,点击下一步
3、 选择安装临时目录
4、 选择crs安装目录
5、 环境检查
提示,并非所有的警告信息都需要我们处理,比如版本不对啊,内存不足啊之类的,可根据实际情况进行忽略,如果环境检查遇到严重错误,可以先进行修改后,再重新执行安装。
6、 指定节点
7、 设置网卡,这里我们指定eth0为public地址。
注意,通常配置rac只需要两块网卡即可,如果系统识别到多个,建议多余的删除,只保留两个,不然后期在创建database时可能会报错,当然你这里不删也没有关系,后面遇到报错时可以再通过命令的方式删除多余的网卡。
8、 指定OCR的存储位置
测试环境嘛,不选择镜像了,直接放到/dev/raw/raw2去
提示:OCR大概需要至少100M空间
9、 voting disk 的存储位置
与上同理,voting大概需要至少20M的空间,这里指定存放到/dev/raw/raw1
10、 综合看一下,没啥问题的话点击Install。
11、 开始安装鸟:)
同时也在将文件复制到其它节点
12、 要求你用root在几个节点上分别执行所列的两个脚本
建议按下列顺序执行
在 node1 上执行:/opt/ora10g/oraInventory/orainstRoot.sh;
在 node2 上执行:/opt/ora10g/oraInventory/orainstRoot.sh;
在 node1 上执行:/opt/ora10g/product/10.2.0/crs_1/root.sh;
在 node2 上执行:/opt/ora10g/product/10.2.0/crs_1/root.sh;
通常在最后一个节点执行root.sh时会遇到错误,就我们的情况而言当然就是node2~~
提示:一般常见的错误有如下三种:
A) . 如果你碰到了这个错误:
/opt/ora10g/product/10.2.0/crs_1/jdk/jre//bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
可以按照如下方式解决:
===============================
修改vipca文件
[root@node2 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@node2 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
保存退出, 然后在node2重新执行root.sh
当然,既然我们已经知道了有这个问题,建议最好在node2执行root.sh之前,首先修改vipca。
其实同时需要你改的还有$ORACLE_HOME/bin/srvctl文件,不然等装完数据库之后,srvctl命令也是会报这个错误地。要知道srvctl这么常用,如果它执行老报错,那可是相当致命啊。不过呢你现在才安装到crs,离create db还远着呢,大可以等到创建完数据库,待到需要管理时再修改该文件。
B) . 如果你碰到了这个错误:
The given interface(s), "eth0" is not public. Public interfaces should be used to configure virtual IPs.
解决方式如下:
==============================
图形界面上运行$CRS_HOME/bin/vipca,手工重新配置rac1-vip和rac2-vip。
[root@node2 opt]# xhost +
[root@node2 opt]# /opt/ora10g/product/10.2.0/crs_1/bin/vipca
按照提示点击下一步
点击finish即可
vipca 开始自动配置
全部配置完成之后,点击exit退出操作窗口。
C) . 如果你碰到了这个错误:
Error 0(Native: listNetInterfaces:[3])
[Error 0(Native: listNetInterfaces:[3])]
解决方式如下:
===============================
[root@node2 bin]# ./oifcfg iflist
eth1 10.10.17.0
virbr0 192.168.122.0
eth0 192.168.100.0
[root@node2 bin]# ./oifcfg setif -global eth0/192.168.100.0:public
[root@node2 bin]# ./oifcfg setif -global eth1/10.10.17.0:cluster_interconnect
[root@node2 bin]# ./oifcfg getif
eth0 192.168.100.0 global public
eth1 10.10.17.0 global cluster_interconnect
然后在视窗界面重新执行vipca即可,如上b例中所示。
13、 然后返回node1中,执行脚本的窗口,点击ok结束该窗口。
14、 执行最后的环境配置
提示:这一步可能也会出错,没关系,并不影响最终运行,直接点击next即可。
15、 安装完成,点击exit退出安装
16、 如果前面配置环境检查出错
以root身份执行$ORA_CRS_HOME/cfgtoollogs/configToolFailedCommands.sh
然后执行:
[root@node1 ~]# /opt/ora10g/product/10.2.0/crs_1/bin/./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.node1.gsd application ONLINE ONLINE node1
ora.node1.ons application ONLINE ONLINE node1
ora.node1.vip application ONLINE ONLINE node1
ora.node2.gsd application ONLINE ONLINE node2
ora.node2.ons application ONLINE ONLINE node2
ora.node2.vip application ONLINE ONLINE node2
结果显示正确就可以。
不报错的话当然就不需要执行了,如果没有错误你应该也找不到configToolFailedCommands.sh文件。
|