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

 

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://blog.youkuaiyun.com/tianlesoftware/archive/2010/11/17/6013763.aspx

 

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://blog.youkuaiyun.com/tianlesoftware/archive/2010/09/18/5892225.aspx

 

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.

 

 

 

 

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

Blog http://blog.youkuaiyun.com/tianlesoftware

网上资源: 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表空间和数据文件的关系,否则拒绝申请

转载于:https://www.cnblogs.com/Hiberniane/archive/2010/11/18/2488564.html

<think>好的,用户遇到了Oracle 11g RAC中的CRS-4534错误,无法与事件管理器通信。我需要根据提供的引用信息和自己的知识来寻找解决方案。首先,查看用户提供的引用内容,引用[1]提到CRS-4638显示Oracle高可用服务在线,但存在CRS-4534错误,建议检查VIP是否正常。引用[2]中提到删除/tmp和/var/tmp下的.oracle目录可能解决问题。引用[3]和[4]涉及CRS-4535和磁盘丢失的问题,可能与存储有关。 首先,CRS-4534通常与CSS(Cluster Synchronization Services)守护进程通信失败有关。可能的原因包括网络问题、资源冲突或临时文件损坏。根据引用[2],检查临时目录中的.oracle文件是否有问题,可能需要删除并重启。此外,检查网络连接,确保私网和公网接口正常,无IP冲突。另外,OCR和表决磁盘的状态也很重要,需要验证其可用性。 步骤方面,应该先检查集群服务状态,确认具体问题所在。然后检查网络配置和VIP状态,因为VIP问题可能导致通信失败。接下来,清理临时文件,特别是/tmp和/var/tmp下的.oracle目录,这可能在之前的操作中残留了旧文件,导致冲突。重启相关服务或节点,观察是否解决。如果问题依旧,需要检查OCR和表决磁盘的完整性,使用crsctl命令进行验证。最后,如果所有步骤无效,可能需要重新配置CRS或联系Oracle支持。 需要注意的是,用户的环境是11g RAC,某些命令或路径可能与更高版本不同,应确保步骤适用于该版本。同时,操作前建议备份重要数据,避免误操作导致更多问题。</think>### 分步解决方案:Oracle 11g RAC CRS-4534错误处理 #### 1. **检查集群服务状态** ```bash crsctl check cluster # 检查整个集群状态 crsctl check crs # 验证CRS服务是否在线[^1] ``` - 若输出包含`CRS-4535`或`CRS-4530`,需优先处理通信层问题(如网络或存储)。 #### 2. **验证网络配置** - 检查私网/公网接口: ```bash oifcfg getif # 查看集群网络配置 ping <节点VIP> # 验证VIP可达性[^1] ``` - 若发现IP冲突或网络延迟,需调整网络配置并重启`ohasd`服务: ```bash crsctl stop has # 停止高可用服务 crsctl start has # 重新启动服务 ``` #### 3. **清理临时文件** - 删除可能导致冲突的临时文件: ```bash rm -rf /tmp/.oracle/* # 清理/tmp目录下的Oracle临时文件 rm -rf /var/tmp/.oracle/* # 清理/var/tmp目录下的临时文件[^2] ``` - 重启节点观察是否恢复。 #### 4. **检查OCR和表决磁盘** - 使用`ocrcheck`验证OCR完整性: ```bash ocrcheck # 检查OCR存储状态 ``` - 验证表决磁盘路径: ```bash crsctl query css votedisk # 确认表决磁盘可访问[^4] ``` - 若发现存储路径异常,需重新挂载磁盘或修复OCR。 #### 5. **重启CRS服务** ```bash crsctl stop crs # 停止集群服务 crsctl start crs # 重新启动集群服务 ``` #### 6. **日志分析** - 查看CSSD日志定位具体错误: ```bash tail -f $CRS_HOME/log/<节点名>/cssd/ocssd.log ``` - 若日志显示`CLSGPNP_CANNOT_CONTACT_GPnP`,需检查`gpnpd`进程状态。 --- ### 关键操作示例 ```bash # 示例:强制清理资源状态 crsctl delete resource ora.cssd -f # 谨慎使用!仅在资源锁定时执行 ``` --- ### 注意事项 - 操作前**备份OCR和表决磁盘**,避免数据丢失。 - 若问题持续,考虑升级CRS补丁或联系Oracle支持[^3][^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值