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

相关文章

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Redis分片集群的实现

《Redis分片集群的实现》Redis分片集群是一种将Redis数据库分散到多个节点上的方式,以提供更高的性能和可伸缩性,本文主要介绍了Redis分片集群的实现,具有一定的参考价值,感兴趣的可以了解一... 目录1. Redis Cluster的核心概念哈希槽(Hash Slots)主从复制与故障转移2.

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

Python3.6连接MySQL的详细步骤

《Python3.6连接MySQL的详细步骤》在现代Web开发和数据处理中,Python与数据库的交互是必不可少的一部分,MySQL作为最流行的开源关系型数据库管理系统之一,与Python的结合可以实... 目录环境准备安装python 3.6安装mysql安装pymysql库连接到MySQL建立连接执行S

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

Spring Boot3虚拟线程的使用步骤详解

《SpringBoot3虚拟线程的使用步骤详解》虚拟线程是Java19中引入的一个新特性,旨在通过简化线程管理来提升应用程序的并发性能,:本文主要介绍SpringBoot3虚拟线程的使用步骤,... 目录问题根源分析解决方案验证验证实验实验1:未启用keep-alive实验2:启用keep-alive扩展建

Python下载Pandas包的步骤

《Python下载Pandas包的步骤》:本文主要介绍Python下载Pandas包的步骤,在python中安装pandas库,我采取的方法是用PIP的方法在Python目标位置进行安装,本文给大... 目录安装步骤1、首先找到我们安装python的目录2、使用命令行到Python安装目录下3、我们回到Py

mss32.dll文件丢失怎么办? 电脑提示mss32.dll丢失的多种修复方法

《mss32.dll文件丢失怎么办?电脑提示mss32.dll丢失的多种修复方法》最近,很多电脑用户可能遇到了mss32.dll文件丢失的问题,导致一些应用程序无法正常启动,那么,如何修复这个问题呢... 在电脑常年累月的使用过程中,偶尔会遇到一些问题令人头疼。像是某个程序尝试运行时,系统突然弹出一个错误提