热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于oraclerac节点的驱逐

关于orac

我这里主要是想讲讲rac中关于node被驱逐进而导致reboot的情况。
首先说说rac中的心跳, 关于oracle clusterware中的心跳有两种,如下:
1. Disk heartbeat (voting device) - IOT
2. Network heartbeat (across the interconnect) - misscount
这里的disk hearbeat是指votedisk心跳,我们都知道votedisk是仲裁盘,
那么它到底有什么作用呢?Oracle文档有这样描述的:

votedisk:
The Voting Disk is used by the Oracle cluster manager in various layers.
The Node Monitor (NM)uses the Voting Disk for the Disk Hearbeat, which is
essential in the detection and resolution of cluster "split brain".
NM monitors the Voting Disk for other competing sub-clusters and uses it for the
eviction phase. Hence the availability from the Voting Disk is critical for the
operation of the Oracle Cluster Manager.
The shared volumes created for the OCR and the voting disk should be configured
using RAID to protect against media failure. This requires the use of an external
cluster volume manager, cluster file system, or storage hardware that provides
RAID protection.
Disk heartbeat:
Each node writes a disk heartbeat to each voting disk once per second。Each node
reads their kill block once per second, if the kill block is overwritten node commits
suicide.During reconfig (join or leave) CSSD monitors all nodes and determines whether
a node has a disk heartbeat, including those with no network heartbeat.If no disk
heartbeat within I/O timeout (MissCount during cluster reconfiguration) then node is declared as dead.
Voting disk needs to be mirrored, should it become unavailable, cluster will come down.
If an I/O error is reported immediately on access to the vote disk, we immediately mark the vote disk
as offline so it isn't at the party anymore. So now we have (in our case) just two voting disks available.
We do keep retrying access to that dead disk, and if it becomes available again and the data is
uncorrupted we mark it online again. If a second vote disk suffered an I/O error in the window
that the first disk was marked offline. So now we don't have quorum. Bang reboot.

网络心跳就不多说了,指的是rac私网心跳。如下一段摘自网络:

Voting files are used by CSS to ensure data integrity of the database by detecting and resolving network
problems that could lead to a split-brain, so must be accessible at all times. There are other techniques
used by other cluster managers, like quorum server, and quorum disks which function differently, but serve
the same purpose.
Note that a majority of vote disks, i.e. N/2 + 1, must be accessible by each node to ensure that all pairs
node have at least one voting file that they both see, which allows proper resolution of network issues;
this is to address the possible complaint that 2 voting files provide redundancy, so a third should not be
necessary.
During normal processing, each node writes a disk heartbeat once per second and also reads its kill block
once per second. When the kill block indicates that the node has been evicted, the node exits, causing a node
reboot.As long as we have enough voting disks online, the node can survive, but when the number of offline
voting disks is greater than or equal to the number of online voting disks, the Cluster Communication Service
daemon will fail resulting in a reboot. The rationale for this is that as long as each node is required to
have a majority of voting disks online, there is guaranteed to be one voting disk that both nodes in a 2
node pair can see.

上面提到了对于votedisk(仲裁盘),当cluster中有节点出现故障时,offline的votedisk个数必须小于存活votedisk个数,
否则会导致存活的节点reboot。
下面再来说说几个重要的参数值.
misscount: 网络心跳可以丢失的次数(单位是秒)
不同平台和版本的misscount默认值是不一样的,详见如下表格:






























OS

10g (R1 &R2)

11g

Linux

60

30

Unix

30

30

VMS

30

30

Windows

30

30


另外如果使用了第三方cluster软件时,那么misscount值默认即为600s,这里脑裂也是第三方cluster软件来完成的。
diskhearbeat即disktimeout,在10.2.0.1+版本以后(打了patch 4896338)默认值是200s。
disktimeout也简称为DTO,但是文档上又把DTO细分为两种,如下:
-- SDTO,是short disk time out的简称,即节点添加或删除时cluster需要进行reconfigure的时间。
-- LDTO,是指正常的rac操作中允许votedisk i/o完成超时的时间。
rebootime:在10g~11g中默认都为3s,即是rac出现脑裂或节点被驱逐的时候,该节点将会在rebootime时间内被重启。
文档中提到node的驱逐从10201版本以后,不在根据DTO来决定,而是基于disktimeout,
默认情况下,misscount的值小于disktimeout。
那么, 在什么情况下会导致node被驱逐呢?如下:
· Node is not pinging via the network heartbeat
· Node is not pinging the Voting disk
· Node is hung/busy and is unable to perform either of the earlier tasks
根据文档中的描述,翻译过来的node reboot条件表格:





























Network Ping

Disk Ping

Reboot(是否重启)

在misscount值 内完成

在misscount值内完成


在misscount值内完成

Disk ping时间超过misscount值,但是小于disktimeout值。


在misscount值内完成

Disk ping时间超过disktimeout值


Network ping时间超过misscount值

在misscount值内完成




修改如上几个参数值的方法如下:
$ORA_CRS_HOME/bin/crsctl set css misscount
where is the maximum i/o latency to the voting disk +1 second
10.2.0.1+版本,如果应用了patch4896338,那么还需要有如下的操作:
$CRS_HOME/bin/crsctl set css reboottime [-force] ( is seconds)
$CRS_HOME/bin/crsctl set css disktimeout [-force] ( is seco
最后需要说明一下的是,在使用了第三方集群如cluster软件以后,oracle就不再推荐修改misscount,
可以引发潜在的错误。oracle是这样解释的:
Do not change default misscount values if you are running Vendor Clusterware along with Oracle Clusterware.
The default values for misscount should not be changed when using vendor clusterware. Modifying misscount in
this environment may cause clusterwide outages and potential corruptions.
如上的信息大家可以参考如下的几个mos文档:
10g RAC- Steps To Increase CSS Misscount- Reboottime and Disktimeout
CSS Timeout Computation in Oracle Clusterware
Reconfiguring the CSS disktimeout of 10gR2 Clusterware for Proper LUN Failover of the
Dell MD3000i iSCSI Storage [ID 462616.1]
How to start/stop the 10g CRS ClusterWare [ID 309542.1]

推荐阅读
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • 在Delphi7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本。定义如下:1234 ... [详细]
  • POJ 2482 星空中的星星:利用线段树与扫描线算法解决
    在《POJ 2482 星空中的星星》问题中,通过运用线段树和扫描线算法,可以高效地解决星星在窗口内的计数问题。该方法不仅能够快速处理大规模数据,还能确保时间复杂度的最优性,适用于各种复杂的星空模拟场景。 ... [详细]
  • 在Android应用开发中,实现与MySQL数据库的连接是一项重要的技术任务。本文详细介绍了Android连接MySQL数据库的操作流程和技术要点。首先,Android平台提供了SQLiteOpenHelper类作为数据库辅助工具,用于创建或打开数据库。开发者可以通过继承并扩展该类,实现对数据库的初始化和版本管理。此外,文章还探讨了使用第三方库如Retrofit或Volley进行网络请求,以及如何通过JSON格式交换数据,确保与MySQL服务器的高效通信。 ... [详细]
  • 微信小程序实现类似微博的无限回复功能,内置云开发数据库支持
    本文详细介绍了如何利用微信小程序实现类似于微博的无限回复功能,并充分利用了微信云开发的数据库支持。文中不仅提供了关键代码片段,还包含了完整的页面代码,方便开发者按需使用。此外,HTML页面中包含了一些示例图片,开发者可以根据个人喜好进行替换。文章还将展示详细的数据库结构设计,帮助读者更好地理解和实现这一功能。 ... [详细]
  • 在Android 4.4系统中,通过使用 `Intent` 对象并设置动作 `ACTION_GET_CONTENT` 或 `ACTION_OPEN_DOCUMENT`,可以从相册中选择图片并获取其路径。具体实现时,需要为 `Intent` 添加相应的类别,并处理返回的 Uri 以提取图片的文件路径。此方法适用于需要从用户相册中选择图片的应用场景,能够确保兼容性和用户体验。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 本文深入解析了WCF Binding模型中的绑定元素,详细介绍了信道、信道管理器、信道监听器和信道工厂的概念与作用。从对象创建的角度来看,信道管理器负责信道的生成。具体而言,客户端的信道通过信道工厂进行实例化,而服务端则通过信道监听器来接收请求。文章还探讨了这些组件之间的交互机制及其在WCF通信中的重要性。 ... [详细]
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
author-avatar
Icy芸土_644
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有