Oracle RAC CRS-0184 --Cannot communicate with the CRS daemon

Oracle RAC CRS 启动故障排查

 

Oracle 11gR2 RAC 安装后,启动CRS. 错误如下:

 

[root@rac1 bin]# ./crsctl check crs

CRS-4638: Oracle High Availability Services is online

CRS-4535: Cannot communicate with Cluster Ready Services

CRS-4529: Cluster Synchronization Services is online

CRS-4533: Event Manager is online

 

从这个错误提示,可以看到是CRS启动失败了。 CRS是关键进程。 它不能启动,Clusterware 也是启动不了。 导致这个问题的原因很多。

 

Log 如下:

[root@rac1 rac1]# tail -50 /u01/app/11.2.0/grid/log/rac1/crsd/crsd.log

ORA-15077: could not locate ASM instance serving a required diskgroup

 

2010-11-16 17:13:44.286: [  OCRASM][3046411024]proprasmo: kgfoCheckMount returned [7]

2010-11-16 17:13:44.286: [  OCRASM][3046411024]proprasmo: The ASM instance is down

2010-11-16 17:13:44.287: [  OCRRAW][3046411024]proprioo: Failed to open [+CRS]. Returned proprasmo() with [26]. Marking location as UNAVAILABLE.

2010-11-16 17:13:44.287: [  OCRRAW][3046411024]proprioo: No OCR/OLR devices are usable

2010-11-16 17:13:44.287: [  OCRASM][3046411024]proprasmcl: asmhandle is NULL

2010-11-16 17:13:44.287: [  OCRRAW][3046411024]proprinit: Could not open raw device

2010-11-16 17:13:44.287: [  OCRASM][3046411024]proprasmcl: asmhandle is NULL

2010-11-16 17:13:44.287: [  OCRAPI][3046411024]a_init:16!: Backend init unsuccessful : [26]

2010-11-16 17:13:44.288: [  CRSOCR][3046411024] OCR context init failure.  Error: PROC-26: Error while accessing the physical storage ASM error [SLOS: cat=7, opn=kgfoAl06, dep=15077, loc=kgfokge

ORA-15077: could not locate ASM instance serving a required diskgroup

] [7]

2010-11-16 17:13:44.288: [    CRSD][3046411024][PANIC] CRSD exiting: Could not init OCR, code: 26

2010-11-16 17:13:44.288: [    CRSD][3046411024] Done.

 

 

       这里的提示是ASM 没有启动造成的。 这里牵涉到的问题较复杂。

 

       这篇文章不打算去具体分析这个问题。 Oracle 官网上有一篇文章对这个问题进行了非常详细的说明。转到了我的Blog 参考:

       How to Troubleshoot Grid Infrastructure Startup Issues [ID 1050908.1]

       http://www.cndba.cn/Dave/article/575

 

In this Document

  Goal

  Solution

     Start up sequence:

     Cluster status

     Case 1: OHASD.BIN does not start

     Case 2: OHASD Agents does not start

     Case 3: CSSD.BIN does not start

     Case 4: CRSD.BIN does not start

     Case 5: GPNPD.BIN does not start

     Case 6: Various other daemons does not start

     Case 7: CRSD Agents does not start

     Network and Naming Resolution Verification

     Log File Location, Ownership and Permission

     Network Socket File Location, Ownership and Permission

     Diagnostic file collection

  References

 

 

在这里写下我分析问题的思路:

 

1. 根据log,看能否找到问题的原因。 如果不能清楚的定位问题。 就只能继续分析。

 

2. 根据CRS 启动的顺序来分析。

       在启动的时候,要先启动ASM 实例, 这里牵涉到存储问题。

       1)网络是否正常

       2)存储是否正常的映射到相关的位置, 我的实验采用的是multipath,将存储映射到/dev/mapper/* 目录下。 在遇到问题的时候,会去检查这个问题是否有相关的映射。

       3)存储的权限问题。 因为映射之后,默认是的root用户。 我在/etc/rc.d/rc.local 文件里添加了改变权限的脚本。 开机启动的时候,就将相关映射文件改成Oracle 用户。

 

3.  如果这些都正常,没有问题, 可以尝试重启CRS 或者重启操作系统。

 

 

补充:

 

       在网上还搜索到一个导致CSSD启动失败的原因。 这个我关注的是,它讲到了一个知识点。 讲到了 /tmp/.oracle /var/tmp/.oracle 这两个目录的作用。 每次Server重启的时候,会在这两个文件里存放锁的信息。 当某次重启后,这两个文件不能被删除,就会导致锁不能更新,从而不能启动。

 

由此也理解了,在删除Clusterware的时候,为什么需要删除这2个目录了。

 

RAC 删除的那篇文档里提到了卸载RAC时要删除这2个目录。 参考:

       RAC 卸载 说明

       http://www.cndba.cn/Dave/article/1004

 

crs.log 日志内容:

2007-04-11 14:37:34.020: [ COMMCRS][1693]clsc_connect: (100f78610) no listener at (ADDRESS=(PROTOCOL=ipc)(KEY=OCSSD_LL_drdb1_crs))

2007-04-11 14:37:34.020: [ CSSCLNT][1]clsssInitNative: connect failed, rc 9

2007-04-11 14:37:34.021: [ CRSRTI][1] CSS is not ready. Received status 3 from CSS. Waiting for good status ..

2007-04-11 14:37:35.740: [ COMMCRS][1695]clsc_connect: (100f78610) no listener at (ADDRESS=(PROTOCOL=ipc)(KEY=OCSSD_LL_drdb1_crs))

2007-04-11 14:37:35.740: [ CSSCLNT][1]clsssInitNative: connect failed, rc 9

When we checked ocssd.log it contained the following

CSSD]2007-04-11 12:53:56.211 [6] >TRACE: clssnmDiskStateChange: state from 2 to 4 disk (0//dev/rdsk/c5t8d0s5)
[ CSSD]2007-04-11 12:53:56.211 [10] >TRACE: clssnmvKillBlockThread: spawned for disk 1 (/dev/rdsk/c5t9d0s5) initial sleep interval (1000)ms
[ CSSD]2007-04-11 12:53:56.211 [11] >TRACE: clssnmvKillBlockThread: spawned for disk 0 (/dev/rdsk/c5t8d0s5) initial sleep interval (1000)ms
[ CSSD]2007-04-11 12:53:56.228 [1] >TRACE: clssnmFatalInit: fatal mode enabled
[ CSSD]2007-04-11 12:53:56.269 [13] >TRACE: clssnmconnect: connecting to node 1, flags 0×0001, connector 1
[ CSSD]2007-04-11 12:53:56.274 [13] >TRACE: clssnmClusterListener: Listening on (ADDRESS=(PROTOCOL=tcp)(HOST=drdb1-priv)(PORT=49895))

[ CSSD]2007-04-11 12:53:56.274 [13] >TRACE: clssnmconnect: connecting to node 0, flags 0×0000, connector 1
[ CSSD]2007-04-11 12:53:56.279 [14] >TRACE: clsclisten: Permission denied for (ADDRESS=(PROTOCOL=ipc)(KEY=Oracle_CSS_LclLstnr_crs_1))

[ CSSD]2007-04-11 12:53:56.279 [14] >ERROR: clssgmclientlsnr: listening failed for (ADDRESS=(PROTOCOL=ipc)(KEY=Oracle_CSS_LclLstnr_crs_1)) (3)
[ CSSD]2007-04-11 12:53:56.279 [14] >TRACE: clssgmclientlsnr: listening on (ADDRESS=(PROTOCOL=ipc)(KEY=Oracle_CSS_LclLstnr_crs_1))
[ CSSD]2007-04-11 12:53:56.279 [14] >TRACE: clssgmclientlsnr: listening on (ADDRESS=(PROTOCOL=ipc)(KEY=OCSSD_LL_drdb1_crs))
[ CSSD]2007-04-11 13:07:36.516 >USER: Oracle Database 10g CSS Release 10.2.0.2.0 Production Copyright 1996, 2004 Oracle. All rights reserved.
[ clsdmt]Fail to listen to (ADDRESS=(PROTOCOL=ipc)(KEY=drdb1DBG_CSSD))
[ CSSD]2007-04-11 13:07:36.516 >USER: CSS daemon log for node drdb1, number 1, in cluster crs
[ clsdmt]Terminating clsdm listening thread
[ CSSD]2007-04-11 13:07:36.536 [1] >TRACE: clssscmain: local-only set to false
[ CSSD]2007-04-11 13:07:36.545 [1] >TRACE: clssnmReadNodeInfo: added node 1 (drdb1) to cluster
[ CSSD]2007-04-11 13:07:36.588 [5] >TRACE: clssnm_skgxnmon: skgxn init failed, rc 1
[ CSSD]2007-04-11 13:07:36.588 [1] >TRACE: clssnm_skgxnonline: Using vacuous skgxn monitor

 

 

解决方法:

 

       By checking the above logs we have realised the listener of CSS deamon was unable to start.

       the reason why it was unable to start was that each time server reboots it creates a socket at /tmp/.oracle or /var/tmp/.oracle directory .

 

       Also if there are previously existing sockets they cannot be reused or deleted automatically from this directory .oracle.

 

       Therefore the solution to above problem was obtained by deleting all the files inside .oracle directoery in /var/tmp or /tmp.

 

Hence the crs started and cluster came up.

 

 

 

 

------------------------------------------------------------------------------

QQ:492913789

Email:ahdba@qq.com

Blog: http://www.cndba.cn/dave 


网上资源: http://tianlesoftware.download.youkuaiyun.com

相关视频:http://blog.youkuaiyun.com/tianlesoftware/archive/2009/11/27/4886500.aspx

DBA1 群:62697716(); DBA2 群:62697977()

DBA3 群:62697850   DBA 超级群:63306533;    

聊天 群:40132017

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

<think>好的,我现在需要解决用户提出的Oracle RAC中的CRS-4534错误,即无法与事件管理器通信的问题。首先,我应该回顾用户提供的引用信息,看看有没有相关的线索。用户提到的引用[1]中提到了CRS-4534错误,引用[3]和[4]也涉及到了CRS相关的通信问题,尤其是权限和临时文件的问题。 首先,CRS(Cluster Ready Services)是Oracle RAC的重要组成部分,负责集群的高可用性。CRS-4534错误通常意味着节点无法与事件管理器(Event Manager)通信,可能的原因包括进程未运行、网络配置问题、资源冲突或权限问题等。 根据引用[3],/tmp/.oracle和/var/tmp/.oracle这两个目录中的锁文件如果未被正确清理,可能导致CSSD(Cluster Synchronization Services Daemon)启动失败,进而影响CRS。因此,我需要检查这些临时目录的权限和是否存在残留文件。此外,引用[4]提到权限被拒绝的问题,可能涉及IPC(进程间通信)的配置,比如KEY=Oracle_CSS_LclLstnr_crs_1的权限是否正确。 接下来,我需要整理解决步骤。首先检查CRS和OHAS的状态,确认具体哪些服务有问题。然后检查网络配置,包括公共和私有网络的连通性,以及SCAN配置是否正确。接着查看系统日志,如crsd.log和cssd.log,寻找更详细的错误信息。此外,检查临时目录的权限和残留文件,必要时清理并重启服务。如果问题依旧,可能需要重新配置CRS或应用补丁。 用户可能已经尝试过基本的重启操作,但问题仍然存在,因此需要更深入的排查。例如,检查防火墙是否阻止了相关端口,或者是否存在资源冲突导致进程无法正常启动。另外,权限问题也是一个常见因素,需要确保Oracle用户对相关目录和文件有适当的访问权限。 最后,需要提醒用户在操作前做好备份,并建议在测试环境中验证解决方案,以避免生产环境中的进一步问题。同时,如果问题复杂,建议联系Oracle支持获取专业帮助,特别是在涉及系统文件或集群配置时,错误的操作可能导致更严重的问题。</think>### CRS-4534: Cannot communicate with Event Manager 解决方案 #### 一、问题诊断 CRS-4534错误表明节点无法与**事件管理器(Event Manager)**通信[^1],可能由以下原因导致: 1. **OHAS/Oracle CRS进程异常** - OHAS(Oracle High Availability Services)是CRS的依赖服务 - 检查命令:`crsctl check crs` 2. **网络配置问题** - 公共/私有网络中断 - SCAN配置错误 3. **IPC资源冲突** - `/tmp/.oracle`或`/var/tmp/.oracle`目录残留锁文件[^3] 4. **权限问题** - IPC通信密钥权限不足(如`Oracle_CSS_LclLstnr_crs_1`)[^4] #### 二、分步解决方案 ##### 1. 检查集群基础状态 ```bash # 查看OHAS状态 crsctl check has # 查看CRS资源状态 crsctl stat res -t # 检查网络连通性 $ORACLE_HOME/bin/cluvfy comp nodecon -n all ``` 若出现`CRS-4638`或`CRS-4529`错误,需优先恢复OHAS服务[^1]。 ##### 2. 清理IPC残留文件 ```bash # 停止CRS服务 crsctl stop crs # 清理临时目录 rm -rf /tmp/.oracle/* rm -rf /var/tmp/.oracle/* chown -R grid:oinstall /tmp/.oracle /var/tmp/.oracle # 重启CRS crsctl start crs ``` **注意**:需确保文件权限与属主为`grid:oinstall`[^3]。 ##### 3. 检查事件管理器日志 ```bash # 查看事件管理器日志 tail -f $GRID_HOME/log/<节点名>/crsd/crsd.log ``` 查找类似错误: `[CSSD]Permission denied for (ADDRESS=(PROTOCOL=ipc)(KEY=Oracle_CSS_LclLstnr_crs_1))` ##### 4. 验证网络配置 ```sql -- 检查SCAN配置 srvctl config scan srvctl config scan_listener -- 检查节点VIP srvctl config nodeapps -a ``` 确保SCAN名称解析正常且网络延迟<1ms。 ##### 5. 重新配置CRS(终极方案) ```bash # 停止集群 crsctl stop crs # 解除原有配置 $GRID_HOME/crs/install/rootcrs.sh -deconfig -force # 重新运行root.sh $GRID_HOME/root.sh ``` #### 三、预防措施 1. **定期清理临时目录** - 添加定时任务清理`/tmp/.oracle` 2. **监控IPC资源** ```bash ipcs -a | grep oracle ``` 3. **使用冗余网络** - 配置Bonding或IPMP避免单点故障 ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值