什么情况下Oracle Clusterware会重启(Evict,驱逐)节点机器?

本文详细介绍了OracleClusterware会在网络问题、磁盘问题或资源不足时驱逐节点的情况,并提供了诊断等待时间(diagwait)的设置方法以帮助定位问题原因。在特定系统版本中,可以通过调整diagwait参数来延迟节点驱逐,以便系统有足够的时间将日志内容写入磁盘。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

什么情况下Oracle Clusterware会重启(Evict,驱逐)节点机器?

1. 节点机器在interconnect network上无法ping通,没有了network heartbeat,比如网络问题。
2. 节点机器无法存取Voting Disk,没有了disk heartbeat,比如磁盘问题。
3. 由于节点机器过于繁忙,导致没有空闲资源来完成上述的两种动作之一,比如CPU问题,内存问题。

具体的Timeout算法参看Metalink Note:294430.1

通常,在某个节点被驱逐之后,cssd.log或者crsd.log或者操作系统自身的log中会有具体的信息记载,通过这些log可以知道到底是什么原因导致了节点被驱逐。但是,可能在某些情况下,由于操作系统在被强行reboot之前过于繁忙,根本没有任何空余的CPU时间片来将内存中的log内容写入到磁盘log文件中,这时候,我们在log中看到的就是忽然的一段时间空白之后就是Cluster重新启动的信息了。

在10.2.0.3之后,我们可以设置diagwait,来延迟eviction,让系统在重启之前等待几秒,尽量让log可以写入到磁盘上。该功能目前已经backport到10.1.0.5中,因此在 10.1.0.5 (or higher), 10.2.0.3 (or higher) 和11.1.0.6 (or higher)这些版本中都可以设置diagwait。

在不支持的版本中设置diagwait将会得到”unrecognized parameter diagwait specified” 错误提示。

设置diagwait的方法,使用root用户执行以下命令:
1. 停止Clusterware

#crsctl stop crs 
#<CRS_HOME>/bin/oprocd stop

2. 确认Clusterware stack已经完全关闭

#ps -ef |egrep "crsd.bin|ocssd.bin|evmd.bin|oprocd"

3. 在集群的任意节点上设置diagwait等待时间13秒

#crsctl set css diagwait 13 -force

4. 检查diagwait设置是否成功

#crsctl get css diagwait

如果设置成功,则返回13,否则返回”Configuration parameter diagwait is not defined”。

5. 重新启动Oracle Clusterware

#crsctl start crs

在解决完导致节点被驱逐的问题之后,可以将diagwait参数取消。

取消的方法仍然按照上面的命令步骤,只是将第3步中的命令改为:

#crsctl unset css diagwait

在Oracle 10gR2 + AIX5L的系统中,可能由于各种原因(比如操作系统的bug或者数据库的bug),导致OPROCD进程驱逐节点,检查以及解决的方法可以参看Metalink Note:419312.1

 

摘于:http://www.dbform.com/html/2009/591.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值