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

相关文章

Spring的RedisTemplate的json反序列泛型丢失问题解决

《Spring的RedisTemplate的json反序列泛型丢失问题解决》本文主要介绍了SpringRedisTemplate中使用JSON序列化时泛型信息丢失的问题及其提出三种解决方案,可以根据性... 目录背景解决方案方案一方案二方案三总结背景在使用RedisTemplate操作redis时我们针对

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的