RAC安装过程中碰到的问题以及是如何解决的。
[font=微软雅黑, 宋体]这一篇主要讨论整个RAC安装过程中碰到的问题以及是如何解决的。
[font=微软雅黑, 宋体]错误一:
[font=微软雅黑, 宋体]配置共享磁盘的问题。如果共享磁盘本身有内容,可能会导致在安装完CLUSTERWARE后,执行root.sh时出错,错误信息为:Failed to upgrade Oracle Cluster Registry configuration。
[font=微软雅黑, 宋体]这时可以利用dd命令来清除ocr和voting disk的共享磁盘。类似命令为:
[font=微软雅黑, 宋体]dd if=/dev/zero of=/dev/rdsk/c2t0d2s3 bs=1073741824 count=1
[font=微软雅黑, 宋体]其中of指定需要清除的共享磁盘设备,而bs指定该设备的空间大小。
[font=微软雅黑, 宋体]清除之后,再次运行root.sh,则问题消失。
[font=微软雅黑, 宋体]错误二:
[font=微软雅黑, 宋体]Oracle默认不会使用s0分区,如果指定了s0分区作为ocr或voting disk,那么在执行root.sh时也会收到同样的错误信息:Failed to upgrade Oracle Cluster Registry configuration。
[font=微软雅黑, 宋体]这个时候可以指定其他的分区来替换s0分区。
[font=微软雅黑, 宋体]错误三:
[font=微软雅黑, 宋体]vip找不到public interface的问题。这个问题实际上是Oracle的bug。
[font=微软雅黑, 宋体]Oracle认为192.168.*.*、10.*.*.*、172.16.*.*——172.31.*.*等ip属于private IP。因此无法自动绑定到interface上。
[font=微软雅黑, 宋体]在使用cluvfy工具验证时会出现下面的错误:
[font=微软雅黑, 宋体]ERROR:
[font=微软雅黑, 宋体]Could not find a suitable set of interfaces for VIPs.
[font=微软雅黑, 宋体]而在安装完ClusterWare后,第二个节点执行root.sh脚本之后,会出现下面的错误:
[font=微软雅黑, 宋体]The given interface(s), "ce0" is not public. Public interfaces should be used to configure virtual IPs.
[font=微软雅黑, 宋体]这个的解决方法就是用root身份手工启动VIPCA,进行手工配置。
[font=微软雅黑, 宋体]Oracle对这个问题的详细描述是:Doc ID:Note:316583.1:Subject:VIPCA FAILS COMPLAINING THAT INTERFACE IS NOT PUBLIC。
[font=微软雅黑, 宋体]相关的bug信息是:Bug 4437727 - VIPCA FAILS COMPLAINING THAT INTERFACE IS NOT PUBLIC。
[font=微软雅黑, 宋体]错误四:
[font=微软雅黑, 宋体]那就是如果没有设置默认的网关信息,那么手工配置VIPCA的时候会出错。
[font=微软雅黑, 宋体]如果/etc/defaultrouter没有正确的配置,那么启动vipca后,进行正确的配置。Oracle会执行6个步骤,Create VIP application resource、Create GSD application resource、Create ONS application resource、Start VIP application resource、Start GSD application resource、Start ONS application resource。
[font=微软雅黑, 宋体]当执行到第四个步骤Starting VIP application resource时后出现错误。错误信息为:
[font=微软雅黑, 宋体]CRS-1006: No more members to consider
[font=微软雅黑, 宋体]CRS-0215: Could not start resource 'racnode1-vip'.
[font=微软雅黑, 宋体]CRS-1006: No more members to consider
[font=微软雅黑, 宋体]CRS-0215: Could not start resource 'racnode2-vip'.
[font=微软雅黑, 宋体]配置了默认路由,就可以解决这个问题了。
[font=微软雅黑, 宋体]错误五:Oracle 10g安装报i386/libawt.so: libXp.so.6: cannot open shared object file...
[font=微软雅黑, 宋体]修改完系统相关配置,执行runInstaller时报错:
[font=微软雅黑, 宋体]Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2007-12-21_10-40-21PM/jre/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
[font=微软雅黑, 宋体]at java.lang.ClassLoader$NativeLibrary.load(Native Method)
[font=微软雅黑, 宋体]at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1560)
[font=微软雅黑, 宋体]at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1477)
[font=微软雅黑, 宋体]at java.lang.Runtime.loadLibrary0(Runtime.java:788)
[font=微软雅黑, 宋体]at java.lang.System.loadLibrary(System.java:834)
[font=微软雅黑, 宋体]at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
[font=微软雅黑, 宋体]at java.security.AccessController.doPrivileged(Native Method)
[font=微软雅黑, 宋体]at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:38)
[font=微软雅黑, 宋体]at sun.awt.DebugHelper.
[font=微软雅黑, 宋体]at java.awt.Component.
[font=微软雅黑, 宋体]at Oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:593)
[font=微软雅黑, 宋体] metalink上说,安装libXp这个包就ok了。
[font=微软雅黑, 宋体] 安装后,发现问题没有解决,又尝试安装了些乱七八糟的rpm包,同样不行。头都大了。后来才发现,原来libXp需要安装i386的包,而不能安装X64的包。我想当然的认为64位的linux需要安装64位的libXp包,所以导致这个问题。
[font=微软雅黑, 宋体] 其实认真的看报错的信息“/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory”应该也能想到i386的包上。
[font=微软雅黑, 宋体] 安装文档里软件包检查部分,每个包都可能是i386或者x64的,一定要检查仔细:)
[font=微软雅黑, 宋体]错误六:连接ins_ctx.mk错误
[font=微软雅黑, 宋体]Error in invoking target‘install’of makefile‘/opt/oracle/product/10.2/ctx/lib/ins_ctx.mk’. See‘/opt/oracle/oraInvertory/logs/installActions2010-09-28_10-27-06AM.log’for details.
[font=微软雅黑, 宋体]在安装linux X86-64的Oracle10201时,在链接过程中出现了这个错误。
[font=微软雅黑, 宋体]详细错误信息为:
[font=微软雅黑, 宋体]Error in invoking target‘install’of makefile‘/opt/oracle/product/10.2/ctx/lib/ins_ctx.mk’. See‘/opt/oracle/oraInvertory/logs/installActions2010-09-28_10-27-06AM.log’for details.
[font=微软雅黑, 宋体]从日志中获取的详细信息为:
[font=微软雅黑, 宋体]INFO: gcc -m32 -o ctxhx -L/opt/oracle/product/10.2/ctx//lib32/ -L/opt/oracle/product/10.2/lib32/ -L/opt/oracle/product/10.2/lib32/st
[font=微软雅黑, 宋体]ubs/ /opt/oracle/product/10.2/ctx/lib/ctxhx.o -L/opt/oracle/product/10.2/ctx/lib/ -ldl -lm -lctxhx -Wl,-rpath,/opt/oracle/product/1
[font=微软雅黑, 宋体]0.2/ctx/lib -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore1
[font=微软雅黑, 宋体]0 -lnls10 `cat /opt/oracle/product/10.2/lib/sysliblist`
[font=微软雅黑, 宋体]INFO: /usr/bin/ld: crt1.o: No such file: No such file or directory
[font=微软雅黑, 宋体]INFO: collect2: ld ?? 1
[font=微软雅黑, 宋体]INFO: make: *** [ctxhx] ?? 1
[font=微软雅黑, 宋体]INFO: End output from spawned process.
[font=微软雅黑, 宋体]INFO: ----------------------------------
[font=微软雅黑, 宋体]INFO: Exception thrown from action: make
[font=微软雅黑, 宋体]Exception Name: MakefileException
[font=微软雅黑, 宋体]Exception String: Error in invoking target 'install' of makefile '/opt/oracle/product/10.2/ctx/lib/ins_ctx.mk'. See '/opt/oracle/ora
[font=微软雅黑, 宋体]Inventory/logs/installActions2010-09-28_10-27-06AM.log' for details.
[font=微软雅黑, 宋体]Exception Severity: 1
[font=微软雅黑, 宋体]查询metalink发现对于glibc-devel需要32位的包,详细信息参考metalink文档ID 786995.1:
[font=微软雅黑, 宋体][root@YPJG Server]# rpm --all --query --queryformat "%{NAME}-%{VERSION}-%{RELEASE}-(%{ARCH})\n" | grep glibc
[font=微软雅黑, 宋体]glibc-2.5-42-(x86_64)
[font=微软雅黑, 宋体]glibc-2.5-42-(i686)
[font=微软雅黑, 宋体]glibc-common-2.5-42-(x86_64)
[font=微软雅黑, 宋体]glibc-devel-2.5-42-(x86_64)
[font=微软雅黑, 宋体]glibc-headers-2.5-42-(x86_64)
[font=微软雅黑, 宋体][root@YPJG Server]# rpm -ivh glibc-devel-2.5-42.i386.rpm
[font=微软雅黑, 宋体]warning: glibc-devel-2.5-42.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
[font=微软雅黑, 宋体]Preparing... ########################################### [100%]
[font=微软雅黑, 宋体] 1:glibc-devel ########################################### [100%]
[font=微软雅黑, 宋体]重新安装,ins_ctx.mk不再报错。
[font=微软雅黑, 宋体]需要注意,安装这个包后,要退出安装界面,而不要点CONTINUE,否则在ins_ctx.mk可以编译成功,虽然的包仍然会报错。
[font=微软雅黑, 宋体]Oracle的官方文档并没有强调这个包的位数。
[font=微软雅黑, 宋体]错误七:在安装Clusterware时,在第二个节点执行Root.sh时报的错误:Failure at final check of Oracle CRS stack.10
[font=微软雅黑, 宋体]此问题是由于共享磁盘的问题,解决办法:在用虚拟机创建共享磁盘时,保存到一个独立的目录中,这样在复制虚拟机时,不用在.vmx中修改共享磁盘只想node1节点的位置了,这样就可以解决这个报错的问题。
[font=微软雅黑, 宋体]在node2节点,使用/etc/init.d/oracleasm scandisks 和/etc/init.d/oracleasmlistdisks命令之后就可以显示出在node1节点上创建的磁盘组。
[font=微软雅黑, 宋体]错误八:
[font=微软雅黑, 宋体]在安装Clusterware时,在node2节点执行root.ssh时报错信息:
[font=微软雅黑, 宋体]/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
[font=微软雅黑, 宋体]修改vipca和srvctl两个文件
[font=微软雅黑, 宋体][root@node2 opt]# vi /opt/ora10g/product/10.2.0/crs_1/bin/vipca
[font=微软雅黑, 宋体]找到如下内容:
[font=微软雅黑, 宋体]Remove this workaround when the bug 3937317 is fixed
[font=微软雅黑, 宋体]arch=`uname -m`
[font=微软雅黑, 宋体]if [ "$arch" = "i686" -o "$arch" = "ia64" ]
[font=微软雅黑, 宋体]then
[font=微软雅黑, 宋体]LD_ASSUME_KERNEL=2.4.19
[font=微软雅黑, 宋体]export LD_ASSUME_KERNEL
[font=微软雅黑, 宋体]fi
[font=微软雅黑, 宋体]#End workaround
[font=微软雅黑, 宋体]在 fi 后新添加一行:
[font=微软雅黑, 宋体]unset LD_ASSUME_KERNEL
[font=微软雅黑, 宋体]以及srvctl文件
[font=微软雅黑, 宋体][root@node2 opt]# vi /opt/ora10g/product/10.2.0/crs_1/bin/srvctl
[font=微软雅黑, 宋体]找到如下内容:
[font=微软雅黑, 宋体]LD_ASSUME_KERNEL=2.4.19
[font=微软雅黑, 宋体]export LD_ASSUME_KERNEL
[font=微软雅黑, 宋体]同样在其后新增加一行:
[font=微软雅黑, 宋体]unset LD_ASSUME_KERNEL
[font=微软雅黑, 宋体]保存退出,然后在 node2 重新执行 root.sh
[font=微软雅黑, 宋体]当然,既然我们已经知道了有这个问题,建议最好在 node2 执行 root.sh 之前,首先修改vipca。
[font=微软雅黑, 宋体]其实同时需要你改的还有 $ORACLE_HOME/bin/srvctl文件,不然等装完数据库之后,srvctl命令也是会报这个错误地。要知道srvctl这么常用,如果它执行老报错,那可是相当致命啊。不过呢你现在才安装到crs,离 create db还远着呢,大可以等到创建完数据库,待到需要管理时再修改该文件。
[font=微软雅黑, 宋体]错误九:
[font=微软雅黑, 宋体]执行srvctl命令是报如下错误的解决办法[table=98%]
[td=686][oracle@node2 ~]$ srvctl status database -d rac/opt/ora10g/product/10.2.0/db_1/jdk/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
[font=微软雅黑, 宋体]编辑srvctl文件[table=98%]
[td=686][oracle@node2 ~]$ vi /opt/ora10g/product/10.2.0/db_1/bin/srvctl
[font=微软雅黑, 宋体]找到如下内容:[table=98%]
[td=684]LD_ASSUME_KERNEL=2.4.19export LD_ASSUME_KERNEL
[font=微软雅黑, 宋体]同样在其后新增加一行:[table=98%]
[td=684]unset LD_ASSUME_KERNEL