互联网服务ASMconfigure rac

Some tips for configure RAC and ASM

这个端午很郁闷,三天假期其中两天都在机房度过,帮客户配置一套Oracle 10G RAC数据库,每天工作10个小时。虽然完成了工作,但其中也碰到了一些问题在这里总结一下。    * Configure Multipath Disks存储用的IBM DS5020,服务器IBM 3850 X5 2台,其中用两台IBM Fire Chann...显示全部
这个端午很郁闷,三天假期其中两天都在机房度过,帮客户配置一套Oracle 10G RAC数据库,每天工作10个小时。

虽然完成了工作,但其中也碰到了一些问题在这里总结一下。

    * Configure Multipath Disks

存储用的IBM DS5020,服务器IBM 3850 X5 2台,其中用两台IBM Fire Channel交换机配置双通道链路,操作系统选择了Oracle Enterprise Linux 5.6  64bit。在未安装multipath driver package之前,挂好存储后,通过fdisk -l 同样的LUN会出现两次,这个很正常,因为我们没有安装多路径软件。IBM DS3000/4000/5000系列存储在Linux平台的multipath driver需要安装LSI 提供的 LDAC package。 默认情况下,OL5.6会安装并启用经过ORACLE Fixed的 kernel-uek-2.6.32-100.26.2.el5。在编译安装LDAC的时候出现了很多问题,看了文档后发现LDAC不支持OL5的2.6.32内核(支持RedHat 2.6.18)。我们只需要在OL5.6环境安装Red Hat compatible Kernel with bug fixes added by Oracle [kernel-2.6.18-238.0.0.0.1.el5],修改grub.conf用这个内核启动并重新编译LDAC就可以了。

cd  /root_ol5_cdrom/Server/oracle_updated
rpm -ihv kernel-2.6.18-238.0.0.0.1.el5.x86_64.rpm

安装LDAC时,要根据自己的实际存储链路环境选择对应的版本。比如rdac readmre下面的提示:

               For x86 or x86_64 servers, support for RH5 update 4 (RH5u4)
                and SLES 10 SP3 (SLES10SP3) is in FC environment with Linux RDAC
                version 09.03.0C05.0331. For RH5u4 and SLES10SP3 with SAS
                environment, use the Linux RDAC version 09.03.0C05.0439 or greater
                instead. There is not any support for RH5.4 nor SLES10SP3 in DS3K
                iSCSI environments.

    * multipath Asm Configure

在配置了多路径链路的环境中,比如device-mapper 会映射虚拟磁盘到/dev/dm-xxx、powerpath会映射虚拟磁盘到/dev/multipath/的目录中。/etc/init.d /oracleasm创建磁盘时指定的是multipath的路径, 但等到下次oracleasm重新启动时ASMLIB通常不会直接scan这些虚拟磁盘,而是还是继续定位到/dev/sdx的物理盘,这样就意味这 asm没有建立在multipath上。这个时候需要在/etc/sysconfig/oracleasm中增加ORACLEASM_SCANORDER 参数.

  ORACLEASM_SCANORDER=”dm sd” 这样ORACLEASM首先会扫描dm多路径,然后再扫描sd。

但LDAC有区别, 它是通过mppVhba模块将多个物理HBA通道虚拟为一个HBA通道,然后将多个物理/dev/sdb虚拟为一个/dev/sdb的方式,保证了我们看到的/dev/sdb本来就是通过多路径虚拟后的磁盘。跟上面描述的有所区别,我们也不用在配置ORACLEASM_SCANORDER参数了。

    * Rpm Package Dependence

按照oracle之前,通常需要安装依赖的RPM包,64位环境中一定要安装ORACLE列出的32位包。这次碰见了一个问题在CRS安装完之后,在最后一个节点运行vipca时提示:

PRKH-1010 : Unable to communicate with CRS services.
[PRKH-1000 : Unable to load the SRVM HAS shared library
[PRKN-1008 : Unable to load the shared library "srvmhas10"
or a dependent library, from
LD_LIBRARY_PATH="/opt/oracle/product/10.2.0/crs/jdk/jre/lib/i386/client:/opt/oracle/product/10.2.0/crs/jdk/jre/lib/i386:/opt/oracle/product/10.2.0/crs/jdk/jre/../lib/i386:/opt/oracle/product/10.2.0/crs/lib32:/opt/oracle/product/10.2.0/crs/srvm/lib32:/opt/oracle/product/10.2.0/crs/lib:/opt/oracle/product/10.2.0/crs/srvm/lib:"
[java.lang.UnsatisfiedLinkError: /opt/oracle/product/10.2.0/crs/lib32/libsrvmhas10.so: libclntsh.so.10.1: cannot open shared object file: No such file or directory]]]

这个问题定位比较困难,最后从$ORACLE_HOME/install/make.log中发现了如下信息:

   Building 32bit version of nnfgt.o:
    /usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h
     No such file or directory

对照了下oracle要求的RPM包,发现是少装了glibc-devel的32bit package。安装之后重新安装crs一切正常了。RPM一定不能缺少 切忌!切忌!。

  如果运行vipca提示:

/home/oracle/crs/oracle/product/10/crs/jdk/jre//bin/java: error while loading
  shared libraries: libpthread.so.0: cannot open shared object file:
  No such file or directory

这个时候是碰见bug了, 而且这个bug在srvctl和vipca中都存在,需要在这两个脚本export LD_ASSUME_KERNEL的地方设置unset LD_ASSUME_KERNEL。

如果运行vipca提示;

Error 0(Native: listNetInterfaces:[3])
[Error 0(Native: listNetInterfaces:[3])]

这是因为设置的vip为非路由ip地址范围。手动运行vipca就可以了。

  在安装和配置任何东西之前,必须仔细阅读文档,而且要学会看文档,快速了解自己不知道的东西。安装Oracle之前,除了查看Installation文档,还必须查看Release Notes。收起
参与1

返回powx的回答

powxpowx技术经理ZWT
oracle BUG真是多啊!
系统集成 · 2011-07-02
浏览833

回答者

powx
技术经理ZWT
擅长领域: 云计算服务器容器

powx 最近回答过的问题

回答状态

  • 发布时间:2011-07-02
  • 关注会员:0 人
  • 回答浏览:833
  • X社区推广