RAC中Voting盘相关总结

一、概述

        在Oracle RAC(Real Application Clusters)环境中,"voting盘" 是用于存储集群的心跳信息和状态信息的特殊磁盘。每个节点都可以访问并共享此磁盘上的数据。voting盘在Oracle RAC中扮演着至关重要的角色,用于维护集群的一致性和可用性。

二、原理

        首先在配置集群的时候就会用到voting盘(仲裁盘),简单来讲就是来协调集群内各个节点工作的,每个集群中都需要一个领导者,怎么来当这个领导者,那么就跟voting盘的投票机制有关了,形象的来讲领导者一般是通过投票的方式将集群中所有符合条件的成员,以少数服从多数的原则产生,被选出来的通过网络通信来协调各个节点的工作。但有可能由于网络故障导致某些节点与集群断开了联系,从而形成一个或多个孤立系统,这种现象被称为脑裂。脑裂这种现象是不被允许的,因为多个无法协调的系统使用共享的数据就会导致数据的不一致。

       怎样解决呢:

        假设一个场景,该集群有两个节点A、B,A是领导者。B受A控制,在某个时候,B突然收不到A的指令了,那么只会出现两种情况:

        (1)A节点坏了,网络还通,此时B应该主动退出集群操作,不对数据库进行操作面包吃数据库的一致性。

        (2)A没事,但是网络故障,此时B应该接管A的工作维持集群的正常进行。

        针对这两种情况,B所作出的选择也是不同的,B怎么才能搜集到信息呢,这时候仲裁盘就起作用了,当设置了仲裁盘(一般都是normal冗余),各个节点都可以访问一个或者多个仲裁盘,共享盘走的一般就是SAN(Storage Area Network),所以当网络故障的时候,SAN是不受影响的,集群的各个节点是可以通过SAN来进行通信的,此时各个节点之间就可以做出正确判断了。

        拿(1)来说,B与A失联后,B会在Voting盘中留下一条信息:我是B,A你怎么了?如果只是网络故障,A就通过SAN回复:只是网络故障了,你下线就OK,此时B就自动DOWN了

        (2)是B发送信息之后,B始终没有收到回应,等待之后,B认为A坏了,就成为了A,成为了新的领导者来管理集群。

        大概就是这样的原理

三、Voting盘中的存储信息

        (1)集群成员状态信息:voting盘会记录每个节点的状态信息,如节点是否在线、节点是否可用等,这些信息用于帮助集群管理器(Clusterware)来监控和管理集群的成员状态。

        (2)集群的心跳信息:voting盘用于存储集群成员之间的心跳信息,以确认节点之间的连通性。这些心跳信息用于检测节点的故障和网络分区,从而触发自动故障切换(Automatic Failover)或网络分区恢复(Network Partitioning Recovery)。

        (3)集群成员的投票信息:voting盘中的投票信息用于在发生节点失效或网络分区时进行投票决策,以确保集群中的节点能够达成一致的状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/837502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cpp笔记-24-05-10

1、public —— 外部也能访问 2、private —— 只能内部(友元也可以) 3、explicit —— 只可用于声明単参构造函数。声明类的构造函数是显示调用,不是隐式。阻止调用构造函数时隐式转换(赋值初始化) 4、默认构造函数…

Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之触控开关二

Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之触控开关二 1.概述 这篇文章在触摸屏上绘制一个开关,通过点击开关实现控制灯的开关功能。 2.硬件 硬件连接参考第一篇文章介绍 Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之获取触控坐标一 3.实现…

在线caj转换成pdf免费吗?caj变成pdf很容易!点进来!

在数字化阅读日益盛行的今天,各种电子文献格式层出不穷,其中CAJ和PDF无疑是两种最为常见的格式。CAJ是中国知网推出的一种专用全文阅读格式,而PDF则因其跨平台、不易被修改的特性,受到了广大读者的青睐。因此,将CAJ格式…

Auto.js如何打包成APK文件

Auto.js 是一个基于 JavaScript 的自动化脚本工具,它可以被打包成 APK 文件,以便在 Android 设备上安装和运行。以下是根据您提供的搜索结果中关于如何将 Auto.js 脚本打包成 APK 文件的步骤: 1. **安装 Auto.js App**:首先&…

【C++】 类的新成员:static成员和类的好朋友:友元

欢迎来到CILMY23的博客 🏆本篇主题为: 类的新成员:static成员和类的好朋友:友元 🏆个人主页:CILMY23-CSDN博客 🏆系列专栏:Python | C | C语言 | 数据结构与算法 | 贪心算法 | Li…

网络编程套接字(一) 【简单的Udp网络程序】

网络编程套接字<一> 理解源端口号和目的端口号PORT VS PID认识TCP协议和UDP协议网络字节序socket编程接口sockaddr结构简单的UDP网络程序服务端创建套接字服务端绑定运行服务器客户端创建套接字关于客户端的绑定问题启动客户端启动客户端本地测试INADDR_ANY 理解源端口号…

怎么给视频加水印?2招轻松搞定

在数字媒体时代&#xff0c;视频水印作为一种有效的版权保护手段&#xff0c;被广泛应用于各种场景。给视频添加水印不仅可以防止内容被恶意盗用&#xff0c;还能增加视频的辨识度&#xff0c;提升品牌形象。本文将为您介绍2种简单易行的方法&#xff0c;教您怎么给视频加水印&…

Linux进程控制——Linux进程等待

前言&#xff1a;接着前面进程终止&#xff0c;话不多说我们进入Linux进程等待的学习&#xff0c;如果你还不了解进程终止建议先了解&#xff1a; Linux进程终止 本篇主要内容&#xff1a; 什么是进程等待 为什么要进行进程等待 如何进程等待 进程等待 1. 进程等待的概念2. 进…

软件杯 深度学习的水果识别 opencv python

文章目录 0 前言2 开发简介3 识别原理3.1 传统图像识别原理3.2 深度学习水果识别 4 数据集5 部分关键代码5.1 处理训练集的数据结构5.2 模型网络结构5.3 训练模型 6 识别效果7 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习…

【数据结构】平衡二叉树(插入、查找、删除)解析+完整代码

3.2 平衡二叉树 3.2.1 定义 平衡二叉树&#xff0c;简称平衡树&#xff08;AVL树&#xff09; 树上任一结点的左右子树高度差不超过1。 结点的平衡因子左子树高-右子树高 3.2.2 插入操作 插入结点后&#xff0c;可能造成不平衡 要调整最小不平衡子树&#xff0c;使其恢复平衡。…

武装部三维电子沙盘-行动路径规划分析平台

武装部三维电子沙盘-行动路径规划分析平台是一款集成了大数据、云计算、虚拟现实、物联网、AI等先进技术的综合性系统。它真实模拟地形、地貌、地物&#xff0c;结合地理空间专业数据、执勤兵力部署、基干民兵信息、普通民兵信息、潜力资源信息、军队相关专业数据、兵要地志数据…

【回溯 代数系统】679. 24 点游戏

本文涉及知识点 回溯 代数系统 LeetCode679. 24 点游戏 给定一个长度为4的整数数组 cards 。你有 4 张卡片&#xff0c;每张卡片上都包含一个范围在 [1,9] 的数字。您应该使用运算符 [‘’, ‘-’, ‘*’, ‘/’] 和括号 ‘(’ 和 ‘)’ 将这些卡片上的数字排列成数学表达式…

SQLserver - 笔记

1 SQLserver - 用户管理 4、SQL SERVER数据库用户管理_哔哩哔哩_bilibili 创建用户 - user 2.选择用户&#xff0c;修改属性

Qt---绘图和绘图设备

一、QPainter绘图 绘图事件 void paintEvent() 声明一个画家对象&#xff0c;OPainter painter(this) this指定绘图设备 画线、画圆、画矩形、画文字 设置画笔QPen 设置画笔宽度、风格 设置画刷QBrush 设置画刷风格 代码示例&#xff1a; #includ…

LeetCode---循环队列

循环队列就是只有固定的内存&#xff0c;存数据&#xff0c;出数据&#xff0c;但是也和队列一样&#xff0c;先进先出。如下图所示&#xff0c;这是他的样子 在head出&#xff0c;tail进&#xff0c;但是这个如果用数组解决的话&#xff0c;就有问题&#xff0c;力扣给我们的接…

libx265的交叉编译

目标平台&#xff1a;aarch64 编译器版本&#xff1a;aarch64-linux-gnu- 操作系统&#xff1a;麒麟v10 CPU&#xff1a;rk3588 为了方便编译aarch64版本&#xff0c;建议x265版本选择3.5版本&#xff0c;此版本build中包含了aarch64配置选项&#xff0c;比较码放。下载地…

Building3D An Urban-Scale Dataset and Benchmarks 论文阅读

文章主页 Building3D 任务 提出了一个城市规模的数据集&#xff0c;由超过 16 万座建筑物以及相应的点云、网格和线框模型组成&#xff0c;覆盖爱沙尼亚的 16 个城市&#xff0c;面积约 998 平方公里。 动机 现有的3D建模数据集主要集中在家具或汽车等常见物体上。缺乏建…

CAPL入门之使用CAPL记录测试Logging

0 前言 以往测试的log都是直接从trace导出&#xff0c;但是最近发现trace中能导出的数据是有限的&#xff0c;如果测试的时间过长&#xff0c;新的数据就会把之前的数据全部覆盖&#xff0c;并且对于长时间的测试&#xff0c;直接导出trace的内容也会造成查找效率低下的问题。因…

centos7下使用docker安装fastdfs服务

先查看容器是否已经存在 docker ps -a 删除掉之前的tracker及storage服务 docker rm tracker docker rm storage 1、没有镜像先下载镜像 docker pull morunchang/fastdfs 2、运行服务 a、不指定物理服务器路径 docker run -d --name tracker --nethost morunchang/fastdfs sh…

Java面试八股之String s = “String“;和String s = new String(“String“);有什么区别

Java中String s "String";和String s new String("String");有什么区别 字符串字面量&#xff08;"String"&#xff09;&#xff1a; 常量池&#xff1a;使用字面量方式创建字符串时&#xff0c;Java虚拟机&#xff08;JVM&#xff09;会在运…