Oracle 11g RAC安装时,在第一个节点执行root.sh时遭遇了CRS-0184/PRCR-1070,Google了很多帖子也没有找到解决办法。呜呜,还是静下心来看日志!!最后的发现原来是一个不经意的小问题,如下面的描述。
1、故障现象
#安装环境
[root@linux1 ~]# more /etc/issue
Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)
Kernel r on an m
[root@linux1 ~]# uname -a
Linux linux1.orasrv.com 2.6.18-194.el5PAE #1 SMP Mon Mar 29 20:19:03 EDT 2010 i686 athlon i386 GNU/Linux
[root@linux1 bin]# ./crsctl query crs activeversion
Oracle Clusterware active version on the cluster is [11.2.0.1.0]
#执行root时,出现了下面的错误,仅列出错误部分
CRS-0184: Cannot communicate with the CRS daemon. #这个是主要的错误提示,不能同crs通信
PRCR-1070 : Failed to check if resource ora.asm is registered
Cannot communicate with crsd
add asm ... failed
clsr_start_dg return error at loc: 70 rc=0
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4000: Command Create failed, or completed with errors.
create diskgroup DATA ... failed
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4000: Command Add failed, or completed with errors.
Command return code of 1 (256) from command: /u01/app/11.2.0/grid/bin/crsctl add type ora.registry.acfs.type -basetype
ora.local_resource.type -file /u01/app/11.2.0/grid/crs/template/registry.acfs.type
add ora.registry.acfs.type ... failed
PRCR-1070 : Failed to check if resource ora.net1.network is registered
Cannot communicate with crsd
add scan=scan-cluster.orasrv.com ... failed
Preparing packages for installation...
cvuqdisk-1.0.7-1 #这里有个提示,需要安装cvuqdisk-1.0.7-1包
Configure Oracle Grid Infrastructure for a Cluster ... failed
Updating inventory properties for clusterware
Starting Oracle Universal Installer...
Checking swap space: must be greater than 500 MB. Actual 3498 MB Passed
The inventory pointer is located at /etc/oraInst.loc
The inventory is located at /u01/app/oraInventory
'UpdateNodeList' was successful.
#使用crsctl check时收到了crs-4535错误
[root@linux1 bin]# ./crsctl check cluster
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
2、分析日志
#查看grid的crsd部分的日志,注意该日志位于$CRS_HOME/log/node_name/crsd
[root@linux1 crsd]# tail -30 crsdOUT.log
2013-07-16 16:27:21
CRSD REBOOT
Unable to resolve address for localhost:2016
ONS runtime exiting
Fatal error: eONS: eonsapi.c: Aug 4 2009 21:09:36
2013-07-16 16:27:24
Changing directory to /u01/app/11.2.0/grid/log/linux1/crsd
2013-07-16 16:27:24
CRSD REBOOT
Unable to resolve address for localhost:2016
ONS runtime exiting
Fatal error: eONS: eonsapi.c: Aug 4 2009 21:09:36
2013-07-16 16:27:26
Changing directory to /u01/app/11.2.0/grid/log/linux1/crsd
2013-07-16 16:27:26
CRSD REBOOT
Unable to resolve address for localhost:2016
ONS runtime exiting
Fatal error: eONS: eonsapi.c: Aug 4 2009 21:09:36
2013-07-16 16:27:29
Changing directory to /u01/app/11.2.0/grid/log/linux1/crsd
2013-07-16 16:27:29
CRSD REBOOT
Unable to resolve address for localhost:2016
ONS runtime exiting
Fatal error: eONS: eonsapi.c: Aug 4 2009 21:09:36
2013-07-16 16:48:00
Changing directory to /u01/app/11.2.0/grid/log/linux1/crsd
2013-07-16 16:48:00
CRSD REBOOT
#上面的日志提示不能够解析localhost
#看看grid的主日志,也就是alert_nodename部分的描述
[root@linux1 linux1]# tail -100 alertlinux1.log | more
2013-07-16 16:27:13.688
[crsd(3913)]CRS-1201:CRSD started on node linux1.
2013-07-16 16:27:14.338
[/u01/app/11.2.0/grid/bin/oraagent.bin(3993)]CRS-5823:Could not initialize agent framework. Details at (:CRSAGF00120:) in
/u01/app/11.2.0/grid/log/linux1/agent/crsd/oraagent_grid/oraagent_grid.log.
2013-07-16 16:27:14.932
[ohasd(2748)]CRS-2765:Resource 'ora.crsd' has failed on server 'linux1'.
# Meatlink [ID 1230899.1] 有关于该问题的描述,就是需要添加localhost到hosts文件
# Author : Robinson
# Blog : http://www.linuxidc.com
3、解决故障
#查看本地的hosts文件,下面是更改后的hosts配置文件
[root@linux1 bin]# more /etc/hosts | grep 127.0
#127.0.0.1 linux1.orasrv.com linux1 localhost.localdomain localhost #这个是安装OS时自动生成的
#127.0.0.1 linux1.orasrv.com linux1 #这个是安装rac之前配置的,看来这个写法有问题,一定要写localhost
127.0.0.1 localhost.orasrv.com localhost #添加一个新的关于localhost的解析entry
#尝试启动crs
[root@linux1 bin]# ./crsctl start res ora.crsd -init
CRS-2672: Attempting to start 'ora.crsd' on 'linux1'
CRS-2676: Start of 'ora.crsd' on 'linux1' succeeded
#crs成功启动
[root@linux1 bin]# ./crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[root@linux1 bin]# ./crsctl stat res -t -init
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.asm
1 ONLINE ONLINE linux1 Started
ora.crsd
1 ONLINE ONLINE linux1
ora.cssd
1 ONLINE ONLINE linux1
ora.cssdmonitor
1 ONLINE ONLINE linux1
ora.ctssd
1 ONLINE ONLINE linux1 ACTIVE:0
ora.diskmon
1 ONLINE ONLINE linux1
ora.drivers.acfs
1 ONLINE ONLINE linux1
ora.evmd
1 ONLINE ONLINE linux1
ora.gipcd
1 ONLINE ONLINE linux1
ora.gpnpd
1 ONLINE ONLINE linux1
ora.mdnsd
1 ONLINE ONLINE linux1