Oracle-RAC集群心跳

时间:2020-10-16 00:02:22   收藏:0   阅读:151

心跳线

物理布线注意事项

RAC中心跳线作用

心跳网络高可用实现

心跳网络优化建议开启巨帧(Jumbo frame)

巨型帧的影响

Linux环境

开启
ifconfig eth0 mtu 9000

ifconfig -a eth0

技术分享图片

检测验证
ping
# a packet size (-s), prohibiting fragmentation (-M do):禁止零散数据包
ping -c 2 -M do -s 8972 node2-priv

ping -c 2 -M do -s 8973 node2-priv

# For Solaris platform, the similar ping command is:
ping -c 2 -s  node2-priv 8972

不是所有的网卡都可以开启到9000,如果上面ping测试不通的话,可以逐渐的减少。直到找到一个稳定的值

traceroute
traceroute -F node2-priv 9000
traceroute -F node2-priv 9001

RAC心跳机制

Oracle集群如何维护集群的一致性,所谓的集群一致性就是指集群中每个成员能够了解其他成员的状态,而且每个成员获得的集群中其他节点的状态和集群中节点成员列表信息是一致的,这也是集群最基本的要求。

集群的一致性实现机制

Oracle通过三种机制来实现集群的一致性:

他们都依赖于ocssd.bin进程

OCSSD这个进程是Clusterware最关键的进程,如果这个进程出现异常,会导致系统重启。这个进程提供CSS (Cluster Synchronization Serviee)服务。CSS服务通过多种心跳机制,实时监控集群健康状态,提供脑裂保护等基础集群服务功能。

CSS服务心跳机制

ASM环境也有CSSD进程,用于ASM instance和RDBMS instance通信

具体实现

网络心跳(Network HeartBeat,NHB)

对于Oracle集群,ocssd.bin守护进程每秒钟通过集群的私网向集群的其他节点发送网络心跳,用于确定集群节点之间的连通性,以便节点之间能够了解彼此的状态。

磁盘心跳(Disk HeartBeat,DHB)

磁盘心跳的主要目的就是当集群脑裂时帮助制定脑裂的解决方案。

Oracle集群的每一个节点每秒钟都会向集群的所有表决盘注册本地节点的磁盘心跳信息(也就是说,所有VF [Voting File]中的信息是相同的),同时也会将自己能够联系到的集群中其他节点的信息,或者说本节点认为集群中的成员列表信息写入到表决盘中。一旦发生脑裂,CSS的重新配置线程就可以通过表决盘中的信息了解集群中节点之间的连通性,从而决定集群会分裂成几个子集群,以及每个子集群包含的节点情况和每个节点的状态。磁盘心跳是通过ocssd.bin守护进程来实现的。

本地心跳(Local HeartBeat,LHB)

这种心跳的作用是监控ocssd.bin进程以及本地节点的状态。

心跳延迟

对于Disk Heartbeat心跳最大时延叫作IOT (I/O Timeout)

对于Network Heartbeat心跳最大时延叫作MC (Miscount)

网络心跳misscount和磁盘心跳disktimeout查询及设置

## 查询网络心跳NHB misscount
[root@node1 ~]# crsctl get css misscount
CRS-4678: Successful get misscount 30 for Cluster Synchronization Services.

## 查询磁盘心跳DHB disktimeout
[root@node1 ~]# crsctl get css disktimeout
CRS-4678: Successful get disktimeout 200 for Cluster Synchronization Services.

## 修改网络心跳NHB misscount
[root@node1 ~]# crsctl set css misscount 30
CRS-4684: Successful set of parameter misscount to 30 for Cluster Synchronization Services.

## 修改磁盘心跳disktimeout
[root@node1 ~]# crsctl set css disktimeout 300

故障问题

脑裂:网络心跳misscount(私网不通)会导致的问题

? 由于网络心跳misscount会导致,每个节点都认为其他节点不存在了,这时候表决盘被引入,通过投票机制,获得最高票数或者最早到达的获得投票的,幸存,其他节点被踢出。在Oracle RAC中Voting Disk用来记录节点间成员的状态,出现脑裂时,仲裁哪个partition获得控制权,其他的partition被剔除,之后ORACLE RAC就会很不友善的给踢出去的机子重启,这就是为什么有时候机子会不断重启的原因。

? 集群的网络心跳丢失,但是磁盘心跳正常。当脑裂出现后,集群会分裂成为若干个子集群。对于这种情况的出现,集群需要进行重新配置。

? 重新配置的基本原则:节点数多的子集群存活,如果子集群包含的节点数相同,那么包含最小编号节点的子集群存活。

健忘

每个节点都有配置信息的拷贝,修改节点的配置信息出现不同步引起时,节点间配置不一致导致健忘的问题。

Oracle采用的方法就是把这个配置文件放在共享存储上(即是OCR Disk),整个集群只有一份配置,各节点共用这份配置,无论在哪个节点修改配置,都是修改相同的配置文件,这样就保证修改不会丢失。

ocrconfig -showbackup #来查看备份所在的文件和目录

附录

Oracle RAC Technologies Certification Matrix for UNIX Platforms

[Recommendation for the Real Application Cluster Interconnect and Jumbo Frames](Doc ID 341788.1)

巨型帧对RAC的影响

[RAC常见问题](RAC: Frequently Asked Questions (RAC FAQ) (Doc ID 220970.1))

11gR2 如何诊断节点重启问题

原文:https://www.cnblogs.com/binliubiao/p/13823463.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!