ORACLE集群管理-集群丢失心跳导致集群重新配置(NHB,DHB,LHB)步骤

2023-10-08 00:59

本文主要是介绍ORACLE集群管理-集群丢失心跳导致集群重新配置(NHB,DHB,LHB)步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ORACLE 11.2版本以上,集群心跳汇总图表如下:

脑裂处理原则:

1 节点数多的子集群存活。

2 如果分裂的相同,则包含最小编号节点的子集群存活。

可以通过以下命令,查询ocssd.bin的线程信息:

pstack -p  PID<ocssd.bin>

<1>  丢失网络心跳

网络心跳主要由以下occd.bin线程:

1 发送线程clssnmSendingThread,该线程每秒钟向集群钟所有节点发送心跳信息。

2 分析线程clssnmPollingThread,该线程会分析收到的网络信息(私有),如果发现某一个或节点出现丢失网络心跳(超过misscount值)就会通知集群进行重新配置。

3 重新配置现场clssnmRcfgMgrTheead该进程负责集群重新配置。

4 派遣线程clssnmClusterListener负责从远端节点接受信息,根据信息类型发送给相关线程进行处理。

<1.1> 丢失网络心跳,重新配置步骤

1 当集群一个节点连续一段时间 (超过集群的misscount) 丢失网络心跳之后,分析线程决定发起重新配置集群。

2 集群发起重新配置的节点为RM节点,这个节点通常为节点编号最小的,想集群其他节点发送重新配置消息,所有收到此消息的节点会回复该消息,并通知RM节点自己的状态。

3 RM节点基于每个节点进行投票并检查是否有脑裂会发生。

4 对于脑裂检查,RM节点会检查网络心跳无法.

5 RM节点向表决盘的kill block中写入 "有毒信息",需要重启的节点在访问表决盘时读取到"有毒“信息时,完成对本节点的重启。如果RM节点发现某些节点已经离开集群,那么也会发生重新配置。

6 RM节点修改集群列表(主要是在表决盘中),重新配置完成。

 

在节点2 直接使用ifdown命令关闭唯一的私有网卡,节点1开始出现diskping相关日志。节点2被驱逐,将私网网卡ifup后,数据库启动正常。

<2>  磁盘心跳

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

Oracle集群的每一个节点 每秒钟都会像集群的所有表决盘注册本地节点的磁盘心跳信息,(也就是说vf中的信息是相同的),同时也将自己能够联系到的集群中的其他节点信息写入表决盘。

一旦发生脑裂问题,css重新配置线程就可以通过表决盘中的信息了解集群节点之间的连通性,而决定集群分裂成几个子集群,以及每个子集群包含节点情况和每个节点的状态。

磁盘心跳主要包含以下线程:

1 磁盘心跳线程,(clssnmvDiskPingThread):该线程负责向集群的表决盘中发送 磁盘心跳信息,同时还负责读取表决盘中kill block的信息,以确定本节点是否需要重新启动。--发生脑裂时,才启动。

这篇关于ORACLE集群管理-集群丢失心跳导致集群重新配置(NHB,DHB,LHB)步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/161642

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

Springboot 中使用Sentinel的详细步骤

《Springboot中使用Sentinel的详细步骤》文章介绍了如何在SpringBoot中使用Sentinel进行限流和熔断降级,首先添加依赖,配置Sentinel控制台地址,定义受保护的资源,... 目录步骤 1: 添加 Sentinel 依赖步骤 2: 配置 Sentinel步骤 3: 定义受保护的

PLsql Oracle 下载安装图文过程详解

《PLsqlOracle下载安装图文过程详解》PL/SQLDeveloper是一款用于开发Oracle数据库的集成开发环境,可以通过官网下载安装配置,并通过配置tnsnames.ora文件及环境变... 目录一、PL/SQL Developer 简介二、PL/SQL Developer 安装及配置详解1.下