oracle rac io延迟时间,[RAC性能调优] 关于RAC集群心跳超时驱逐节点与异步IO的疑问...

关于RAC集群心跳超时驱逐节点与异步IO的疑问

有种说法是说RAC集群出现心跳超时之后,会固定重启2节点,不知这个官方文档有没有具体说明,RAC节点是否有主节点与从节点的分别,另外关于使用异步IO在哪些场景适用,有没有相应的官方文档可供参考,或者是关于异步IO的一些官方建议.

望解答,谢谢!

11.2的online doc上是这么描述AIO的:

"

With synchronous I/O, when an I/O request is submitted to the operating system, the writing process blocks until the write is confirmed as complete. It can then continue processing. With asynchronous I/O, processing continues while the I/O request is submitted and processed. Use asynchronous I/O when possible to avoid bottlenecks.

Some platforms support asynchronous I/O by default, others need special configuration, and some only support asynchronous I/O for certain underlying file system types.

"

所以通常/大部分时候来讲,对于datafile来说,开启了AIO会有好处的。logfile和controlfile是不是受filesystemio_options影响我需要查一下。

风险:我见过几个跟AIO相关的bug,但是坦率讲,大系统/超繁忙的系统用AIO的还是应该不少的。

我来说一下RAC集群的心跳吧:

RAC集群的心跳有两种 NHB(network heart beat)和DHB (disk heart beat)

Time out的时间分别可以通过以下命令获取:

crsctl get css misscount

crsctl get css disktimeout

10g和11.1上的情况:

如果NHB丢失超misscount的时间,那么集群会踢掉丢失心跳的节点,如果是2个节点的集群,通常是大号的节点重启;如果是多节点的集群,会通过选举的方式保留size最大的集群 ,如3个节点的集群,丢失网络心跳后分裂成2节点和1节点的集群,那么剩余一个节点的集群会重启;

磁盘心跳DHB是用来保护数据安全的,所以如果当大部分的选举盘心跳丢失超过 disktimeout ,那么节点会重启

11.2上的情况:

如果NHB丢失超misscount的时间,Cluster会把所有的stack都重新启动,如果还无法解决那么才会尝试通过选举的方式重启主机,这个功能在11.2上引入 (rebootless restart)

关于重启的诊断,建议您看一下以下两篇文档:

Troubleshooting 11.2 Clusterware Node Evictions (Reboots) [ID 1050693.1]

NOTE:265769.1 - Troubleshooting 10g and 11.1 Clusterware Reboots

Allen Gao 也写过中文的文档介绍RAC节点的重启,你可以看看我们的中文博客:

RAC里总会有一个节点会作为master的节点,作为集群的资源管理,如,接受客户端的命令,自动备份OCR等等,但是这个和重启没有关系

网络心跳:1. 通过集群私网,每一个节点都定期向其他所有的节点发送网络心跳,以便确认节点之间的通信和健康性。

2.磁盘心跳:只有网络心跳是不够的,因为,一旦出现了网络问题,当节点间互相无法发现对方的网络心跳时,无法判断那一个(些)节点的状态正常,哪一些不正常,所以,我们还需要磁盘心跳。每个节点会定期向表决盘(VF)中注册本地节点的状态信息。这样,当网络心跳出现问题时,我们就可以基于表决盘中的信息,判断节点的状态并作出正确的决定,并防止脑裂(split brain)的发生。

所以,对于2个节点的集群,如果两个节点之间的网络心跳出现问题, 集群会分裂成2个子集群(corhort), 但是节点并不存在其他问题,

那么当集群尝试通过表决盘中的信息解决脑裂的时候就不发决定,因为结论是1:1。对于这种情况,集群就只能通过固定的规则来解决脑裂。

集群分裂之后,节点数多的corhort存活。

如果corhort 的节点数相同,那么具有最小节点号节点的corhort存活。所以,对于2个节点的集群,2号节点会离开集群,1号节点存活。

对于您提到的情况“因为之前我们的系统出现因为NHB超时两个节点先后重启,先是大号的节点重启,然后小号的节点也重启了”,这个是不正常的。我们需要查看两个节点的ocssd.log

来分析到底发生了什么事情。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值