当前位置: 首页 > news >正文

Oracle RAC/Clusterware 多种心跳heartbeat机制介绍 RAC超时机制分析

ORACLE RAC中最主要存在2种clusterware集群件心跳 &  RAC超时机制分析:

1、Network Heartbeat 网络心跳 每秒发生一次; 10.2.0.4以后网络心跳超时misscount为60s,;11.2以后网络心跳超时misscount为30s。

2、Disk Heartbeat 磁盘心跳  每秒发生一次; 10.2.0.4以后 磁盘心跳超时DiskTimeout为200s。

注意不管是磁盘心跳还是网络心跳都依赖于cssd.bin进程来实施这些操作,在真实世界中任何造成cssd.bin这个普通用户进程无法正常工作的原因均可能造成上述2种心跳超时, 原因包括但不局限于 CPU无法分配足够的时间片、内存不足、SWAP、网络问题、Votedisk IO问题、本次磁盘IO问题等等。

 

此外在使用ASM的情况下,DB作为ASM实例的Client客户; ASM实例会对DB实例的ASMB等进程进行监控, 以保证DB与ASM之间通信正常。 若DB的ASMB进程长期无响应(大约为200s)则ASM实例将考虑KILL DB的ASMB进程,由于ASMB是关键后台进程所以将导致DB实例重启。

也存在其他可能的情况,例如由于ASMB 被某些latch block, 会阻塞其他进程,导致PMON进行强制清理。

 

综上所述不管是Clusterware的 cssd.bin进程还是ASMB进程,他们都是OS上的普通用户进程,OS本身出现的问题、超时、延迟均可能造成它们无法正常工作导致。建议在确认对造成OS长时间的网络、IO延时的维护操作,考虑先停止节点上的Clusterware后再实施。

另可以考虑修改misscount、Disktimeout等 心跳超时机制为更大值,但修改这些值并不能保证就可以不触发Node Evication。

 

关于RAC /CRS对于本地盘的问题,详见如下的SR回复:

Does RAC/CRS monitor Local Disk IO ?

 

Oracle software use local ORACLE_HOME / GRID_HOME library files for main process operations.

 

 

There are some socket files under /tmp or /var/tmp needed for CRS communication.

 

Also, the init processes are all depending on the /etc directory to spawn the child processes.

 

Again, this is a complicated design for a cluster software which mainly rely on the OS stability including local file system.

 

Any changes to storage / OS are all recommended to stop CRS services since those are out of our release Q/A tests.

转载于:https://www.cnblogs.com/liang545621/p/9418231.html

相关文章:

  • 手机点击输入框时,当键盘弹起,界面上弹,键盘收起,界面下来
  • Python 偏函数 partial function
  • php课程 12-41 多态是什么
  • 设计模式快速学习(三)单例模式
  • hadoop实操篇:hadoop基础教程汇总
  • python2.7用socks和socket设置代理
  • 关于VS2017编译UE4项目,输出窗口有乱码的解决方案
  • Java全栈程序员之01:做个Linux下的程序猿
  • 如何靠谱地查到Tomcat的版本
  • Maven根据pom文件中的Profile标签动态配置编译选项
  • openlayers+geoserver+wms实现空间查询,属性查询
  • 关于 HandlerMethodArgumentResolver 类 以及 WebArgumentResolver 类 自定义解析参数
  • vue.js有什么用,是用来做什么的(整理)
  • Redis字符串类型内部编码剖析
  • HAPkendoUI的Excle导出
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • classpath对获取配置文件的影响
  • CSS 提示工具(Tooltip)
  • docker容器内的网络抓包
  • JS+CSS实现数字滚动
  • mongo索引构建
  • Swift 中的尾递归和蹦床
  • vue.js框架原理浅析
  • 不上全站https的网站你们就等着被恶心死吧
  • 从零开始的无人驾驶 1
  • 构建二叉树进行数值数组的去重及优化
  • 区块链将重新定义世界
  • 移动端唤起键盘时取消position:fixed定位
  • AI算硅基生命吗,为什么?
  • 进程与线程(三)——进程/线程间通信
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​如何在iOS手机上查看应用日志
  • #pragma multi_compile #pragma shader_feature
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (1)Nginx简介和安装教程
  • (solr系列:一)使用tomcat部署solr服务
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (转)创业家杂志:UCWEB天使第一步
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .gitignore文件_Git:.gitignore
  • .NET 8.0 中有哪些新的变化?
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • /etc/shadow字段详解
  • ?php echo ?,?php echo Hello world!;?
  • @EnableConfigurationProperties注解使用
  • @Responsebody与@RequestBody
  • @synthesize和@dynamic分别有什么作用?
  • @Transaction注解失效的几种场景(附有示例代码)
  • @Validated和@Valid校验参数区别
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [2016.7.Test1] T1 三进制异或
  • [20190416]完善shared latch测试脚本2.txt