在OEL5.4上安装Oracle 10g R2 x64 RAC的一些记录

1月 9th, 2010 | Posted by | Filed under 数据库

本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明
网址: http://www.penglixun.com/tech/database/oel_install_iscsi_rac_record.html

好早就该写些东西来记录下遇到的一些问题了,有时间就多写几篇。

安装RAC,总是有些诡异的问题和一些注意的地方,这次安装算是全部解决了每个过程的问题,No Errors地执行完全过程,这里就统统列一遍备查。

基本架构还是不变,我一般都用iSCSI+ASM+RAC的方式,主要是为了省VMware磁盘共享的麻烦。

开始是采用FreeNAS,想用ZFS来做iSCSI,实在是不知道FreeNAS的iSCSI怎么那么难配,就是没法Enable Target的。被迫还是用了Openfiler,包很大,其实很多没必要,也懒得精简了。

操作系统为了方便还是用Oracle Enterprise Linux 5.4,ASMlib、OCFS2啥的就免得去下载,源里都有,而且用户、分组、系统参数啥的都设好了,免得自己再去弄,说白了就是懒……

Oracle用的10.2.0.1 x64,本来想试试Oracle 11g R2,一看单节点建议1.5G内存我就崩溃了。虽然我有8G内存,不过跑了N多虚拟机,最多每个节点1G内存,还是来Oracle 10g R2吧~

1. 一定记得在每个机器上都要放上HOSTS文件,最好在iSCSI服务器上也放一份,像我的:
#Public
192.168.200.101 rac1 rac1.penglixun.com
192.168.200.102 rac2 rac2.penglixun.com
#Private
192.168.100.101 rac1-priv rac1-priv.penglixun.com
192.168.100.102 rac2-priv rac2-priv.penglixun.com
#Public VIP
192.168.200.201 rac1-vip rac1-vip.penglixun.com
192.168.200.202 rac2-vip rac2-vip.penglixun.com
#Openfiler
192.168.200.100 openfiler openfiler.penglixun.com
192.168.100.100 openfiler-priv openfiler-priv.penglixun.com

2. 一定要确保RAC节点名没有出现在环回地址中。如果机器名出现在环回地址条目中,如下所示:

127.0.0.1 rac1 localhost.localdomain localhost

在 RAC 安装期间将接收到以下错误信息:

ORA-00603: ORACLE server session terminated by fatal error

3. 确保防火墙的UDP ICMP过滤已关闭。如果UDP ICMP被防火墙阻塞或拒绝,Oracle集群件软件将在运行几分钟之后崩溃。

4. 一定要把iSCSI目标绑定到固定的设备名。否则重启就乱了。

5. 每个RAC节点都必须有唯一的ORACLE_SID,而不是一样的。

6. 关于常见的DISPLAY环境变量的问题,我如果设置了反而不能用,只要在root下xhost +,在进oracle用户下启动任何程序都可以出图形界面。

7. 一定要对SSH密钥文件设置权限,$chmod 600 ~/.ssh/authorized_keys,否则可能不让使用。

8.  安装CRS时,在对最后一个节点执行 root.sh 时,vipca 将无法运行,会出现以下错误:

Oracle CRS stack installed and running under init(1M)

Running vipca(silent) for configuring nodeapps

/u01/app/crs/jdk/jre//bin/java: error while loading

shared libraries: libpthread.so.0:

cannot open shared object file: No such file or directory

srvctl 也会产生类似的输出。

修正问题需要编辑 vipca(在所有节点的 CRS bin 目录下)以撤消对 LD_ASSUME_KERNEL 的设置。在第 120 行左右的 IF 语句之后,添加一条 unset 命令,从而确保 LD_ASSUME_KERNEL 未经过设置,如下所示:

if [ “$arch” = “i686” -o “$arch” = “ia64” ]

then

LD_ASSUME_KERNEL=2.4.19

export LD_ASSUME_KERNEL

fi

unset LD_ASSUME_KERNEL <<== Line to be added

类似地,对于 srvctl(在所有节点的 CRS bin 目录,以及(若已安装)RDBMS bin 和 ASM bin 目录下),通过在第 168 行左右添加一行来取消设置 LD_ASSUME_KERNEL,应如下所示:

LD_ASSUME_KERNEL=2.4.19

export LD_ASSUME_KERNEL

unset LD_ASSUME_KERNEL <<== Line to be added

9. 当创建磁盘组找不到磁盘的时候,尝试把PATH设置为空,还找不到的话,到/dev/oracleasm下去找,PATH设置为/dev/oracleasm/disks/*应该就可以找到了,我就这么找的到的。

10.如果遇到安装不成功要删除ASM实例,用srvctl stop先停止实例,然后srvctl remove ASM实例,再重新创建ASM实例,用法参考srvctl -h,不要擅自删文件,先清掉实例再删文件。

标签: , ,
  1. vogts
    11月 10th, 201021:30

    3. 确保防火墙的UDP ICMP过滤已关闭。如果UDP ICMP被防火墙阻塞或拒绝,Oracle集群件软件将在运行几分钟之后崩溃。
    ————————————
    这个是因为RAC的内部通讯是使用UDP协议的。

    [回复]