达梦分布式集群DPC_故障分析_yxy

达梦分布式集群DPC_节点故障分析

  • 1 DPC核心概念回顾
  • 2 场景1-主库故障
  • 3 场景2-少数备库故障
  • 4 场景3-多数节点故障
    • 4.1 多数节点故障(包括主库)
    • 4.2 多数备库节点故障(不包括主库)

1 DPC核心概念回顾

达梦分布式集群DPC,基于Raft协议实现高可用性,确保在节点故障时仍能维持数据强一致性与服务连续性。
raft协议

1.RAFT组角色划分:
1.领导者 (Leader):处理客户端请求,日志发送与提交
2.跟随者 (Follower): 接收领导者日志
3.候选者 (Candidate):临时角色,发起投票请求

2.日志复制流程
1.客户端提交请求,主库(领导者)修改数据后生成日志包;
2.记录并广播日志, 本地写redo日志前,发送给所有副本(跟随者);
3.副本确认: 副本收到日志后,确定日志包正确,然后修改数据,完成后回复主库已完成,协助主库刷盘。

3.raft核心参数
RAFT_HB_INTERVAL --主库广播心跳消息的间隔时间
RAFT_VOTE_INTERVAL --选举超时时间

2 场景1-主库故障

假设主库为A,其他副本为B、C

A的归档参数:
RAFT_HB_INTERVAL= 150           --主库广播心跳消息的间隔时间
RAFT_VOTE_INTERVAL= 3000     --选举超时时间
B的归档参数:
RAFT_HB_INTERVAL= 150
RAFT_VOTE_INTERVAL= 5000
C的归档参数:
RAFT_HB_INTERVAL= 150
RAFT_VOTE_INTERVAL= 7000

直接kill主库A复现,查看副本(B、C)之间的详细流程
①主库故障 09:49:59-09:50:00
在这里插入图片描述

socket_err_should_retry errno:104   --两副本同时检测到主库连接断开
xsite_remove site(0x7f17b00029d8) type(ECS_ASITE) addrss(****:11640) guid(423960)--完成主库连接移除

②B副本5秒内没有收到主库的心跳广播,触发选举流程 09:50:04
在这里插入图片描述

rraft_elect_schedule_thread follower elect_start!     --选举开始
[rraft] l_term_id: 6 -> 7   l_term_id+1                       --广播投票请求
[rraft] raft_stat: FOLLOWER -> CANDIDATE.            --转变成候选者
rraft election-start[self elect timeout] term[6->7] state[FOLLOWER->CANDIDATE] leader[BP1_A->UNKNOWN]    --选举开始

③C副本7秒内没有收到主库的心跳广播,触发独立选举流程 09:50:06
在这里插入图片描述
④一共10s后,B副本首次选举超时,触发第二轮选举 09:50:09
在这里插入图片描述

[rraft] l_term_id: 78          首次选举超时,触发第二轮选举
[recv] vote res from node[id:2]   获得副本C投票
raft_stat: CANDIDATELEADER  切换为领导者
Change BP1_A arch status from VALID to INVALID, arch_type[RAFT]  改故障节点的归档为 invalid

⑤C副本投票给B,转换成跟随者 09:50:09
在这里插入图片描述

[rraft] l_term_id: 78          # 准备二次竞选
[rraft] raft_stat: CANDIDATE -> FOLLOWER. 
[vote] received g_seq is larger   承认副本B日志更新
rraft recv vote request from[BP1_B]   
[rraft] [send] node[id: 1] vote res, term: 8, voted: 1.  投票给副本B

3 场景2-少数备库故障

断开少数备库后
在这里插入图片描述
改变备库归档为INVALID,并异步发送日志到备库,不影响主库正常读写

4 场景3-多数节点故障

4.1 多数节点故障(包括主库)

①当kill主备库后,只剩下一个备库
在这里插入图片描述

socket_err_should_retry errno:104   --检测到主库连接断开xsite_remove site(0x7f17b4002c08) type(ECS_ESITE) guid(788290)--完成主库连接移除

②备库一直触发选举,但是因为没有多数派投票,所以一直失败

13:11:28.310 [INFO] database P0004189842 T0000000000004190313  rraft_elect_schedule_thread follower elect_start!
13:11:28.319 [INFO] database P0004189842 T0000000000004190313  [rraft] l_term_id: 8 -> 9.
13:11:28.331 [INFO] database P0004189842 T0000000000004190313  [rraft] raft_stat: FOLLOWER -> CANDIDATE.
13:11:28.338 [INFO] database P0004189842 T0000000000004190313  rraft election-start[self elect timeout] term[8->9] state[FOLLOWER->CANDIDATE] leader[BP1_B->UNKNOWN].
13:11:35.310 [INFO] database P0004189842 T0000000000004190313  [rraft] l_term_id: 9 -> 10.
13:11:42.310 [INFO] database P0004189842 T0000000000004190313  [rraft] l_term_id: 10 -> 11.
13:11:49.311 [INFO] database P0004189842 T0000000000004190313  [rraft] l_term_id: 11 -> 12.
13:11:49.591 [INFO] database P0004189842 T0000000000004189895  rraft_set_arch_chg_info, set rraft_sys.arch_chg_flag TRUE, arch_chg_stat 0 to 9.
13:11:49.597 [INFO] database P0004189842 T0000000000004189895  ini_sync_process_for_raft, leader_id is ULINT_UNDEFINED!
13:11:49.603 [INFO] database P0004189842 T0000000000004189895  rraft_reset_arch_chg_info success.

每个7S进行一次选举,因为C副本的RAFT_VOTE_INTERVAL= 7000(选举超时时间)

4.2 多数备库节点故障(不包括主库)

①当kill掉多数备库后
在这里插入图片描述

15:46:09.411 [INFO] database P0001489870 T0000000000001490857  Change BP1_C arch status from VALID to INVALID, arch_type[RAFT]
15:46:09.483 [INFO] database P0001489870 T0000000000001490863  Change BP1_C arch status from INVALID to ASYNC_SEND, arch_type[RAFT]
改变备库归档为INVALID,并异步发送日志到备库

②如果发现多数备库故障

Too many rlog_pkgs cannot commit, set database readonly.      --主库只读

③恢复多数备库节点

手动启动故障备库后
Rlog_pkgs committed, set database writable
Change BP1_B arch status from ASYNC_SEND to VALID, arch_type[RAFT]
Change BP1_C arch status from ASYNC_SEND to VALID, arch_type[RAFT]
待恢复完成后,主库会将其归档状态设置为有效状态,然后转入正常日志同步。

更多其他数据库相关专栏:

1.数据库优化
数据库优化基本思路、索引详解、执行计划、统计信息、CBO原理、单表优化、多表优化、分布式优化、子查询、优化案例等
数据库优化(sql优化)专栏连接

2.达梦分布式数据库:
部署详细步骤(DEM)、备份还原实战、核心特性理解、使用心得、表分区方式详细介绍、表分区最佳实践、DPC架构详解等
达梦分布式DPC专栏连接

3.应用开发类
jdbc、hibernate、ibatis、mybatis、MyBatis-Plus、Spring、中间件mycat、Sharding-JDBC等
达梦数据库应用开发专栏连接

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

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

相关文章

【高并发内存池】一、简介 定长内存池实现

文章目录Ⅰ. 项目介绍1、这个项目要做什么2、项目的要求Ⅱ. 什么是内存池1、池化技术2、内存池3、mallocⅢ. 设计一个定长内存池1、定长内存池的概念2、实现如何实现定长❓❓❓如何绕开 malloc 向堆直接申请空间❓❓❓3、性能测试Ⅰ. 项目介绍 1、这个项目要做什么 tcmalloc源…

产品设计.原型设计

产品思维: 1. 产品定位:产品的具体的、用户画像; --什么样的人在什么环境下做什么事情的场景 2. 范围层: 发现、识别和决策需求。--识别真假需求,做ROI判断 3. 可复用的、MVP产品方案--要能复用的解决方案,最小可用产品…

vue3+element-plus 输入框el-input设置背景颜色和字体颜色,样式效果等同于不可编辑的效果

应用效果&#xff1a;代码&#xff1a;<template> ......<el-form-item label"文件编号" label-position"right"><el-input v-model"qualityFileForm.fileNo" clearable :disabled"!props.isNew" /></el-form-it…

[ CSS 前端 ] 网页内容的修饰

目录 一. CSS 1. 概述 2. 基本语法 (1)行内样式表 (2)内嵌样式表 (3)外部样式表 3. 选择器 (1)标签选择器: (2)类选择器: (3)通配选择器: (4)后代选择器: 4. 基础样式 (1). 文本样式 (2). 背景样式 (3). 列表样式 5. 伪类 (1)定义: (2)伪类的语法&#xff1a; …

全面深入了解榛树游戏引擎

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;榛树游戏引擎&#xff08;Hazel&#xff09;是一款专为游戏开发设计的先进软件工具&#xff0c;它集成了多种功能&#xff0c;支持现代图形API&#xff0c;具有高性能的物理模拟系统和易学易用的脚本语言&#…

“大模型”技术专栏 | 浅谈基于 Kubernetes 的 LLM 分布式推理框架架构:概览

编者按&#xff1a;人工智能正以前所未有的渗透力重塑生产与生活图景。作为国内领先的数据智能科技企业&#xff0c;和鲸科技自 2015 年成立以来&#xff0c;深耕人工智能与数据科学&#xff0c;历经十年发展&#xff0c;已在气象、教育、医疗、航空航天、金融、通信、能源、零…

【JS】认识并实现一个chrome扩展程序

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍chrome扩展程序。 学其所用&#xff0c;用其所学。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次更新不迷路&#…

jeecgboot项目遇见的一些问题:

1.当你想修改项目的标题&#xff0c;前端将jeecgboot改成你想要的标题的时候&#xff0c;去前端的.env文件中进行修改。图1 修改标题根据路径找到文件&#xff0c;将网站标题改成自己需要的就可以正常显示了。图2 显示前图3 显示后2.在动态数组中&#xff0c;如果你知道数组需要…

项目里程碑设定有哪些方法

要科学设定项目里程碑&#xff0c;可采用以下几种方法&#xff1a;基于项目阶段划分法、关键交付物导向法、依赖关系链分析法、时间驱动法、风险节点识别法、目标成果导向法、资源约束分析法、客户验收节点设定法。其中&#xff0c;关键交付物导向法尤为实用。该方法以项目中必…

英伟达显卡驱动怎么更新 详细步骤教程

英伟达显卡驱动程序对于电脑的图形性能至关重要&#xff0c;它能确保显卡在游戏、设计、视频渲染等方面发挥最大性能。如果驱动过旧&#xff0c;可能会导致游戏运行不畅、软件不兼容&#xff0c;甚至系统出现错误。因此&#xff0c;定期更新英伟达显卡驱动非常必要。下面将为大…

基于单片机智能拐杖/导盲杖/老人防摔倒设计

传送门 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目速选一览表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目功能速览 概述 该设计针对老年人及行动不便人群的需求&#xff0c;开发了一款集成单片机控制的智能拐杖。拐杖采…

Node.js完整安装配置指南(包含国内镜像配置)

Node.js完整安装配置指南&#xff08;包含国内镜像配置&#xff09; 一、Node.js安装 方法1&#xff1a;使用Chocolatey安装&#xff08;推荐&#xff09; # 安装最新LTS版本 choco install nodejs# 或安装指定版本 choco install nodejs --version20.11.0方法2&#xff1a;…

AI硬件 - AMD显卡架构演进及产品线

目录 一、AMD显卡架构演进总结 二、典型AMD AI显卡历代型号参数对比表 关键参数说明: 三、AMD 特供中国AI显卡产品线全览 1. 企业级Instinct系列(数据中心/科研) 2. 消费级AI加速显卡(开发/本地推理) 四、与NVIDIA显卡的AI性能对比 关键指标实测数据 五、模型框架…

论文阅读-Gated CRF Loss for Weakly Supervised Semantic Image Segmentation

文章目录1 背景2 模块2.1 部分交叉熵损失2.2 弱标签&#xff08;线/点&#xff09;2.3 Gated CRF Loss3 效果3.1 总体效果3.2 消融实验4 总结参考文献1 背景 全监督的语义分割需要对全图进行完全而精确的标注。当需要标注的目标在图像中较多&#xff0c;又或形状不规则&#x…

零墨云A4mini打印机设置电脑通过局域网络进行打印

文档时间&#xff1a;2025年8月 1.演示环境 操作系统版本&#xff1a;Windows11 打印机版本&#xff1a;零墨云A4mini 这款打印机打印的方式有蓝牙、远程云和局域网&#xff0c;这里演示的是电脑通过局域网打印 通过电脑版局域网(这个局域网是网络可达)打印之前&#xff0c…

ESP8266 入门(第 3 部分):使用 Arduino IDE 对 ESP8266 进行编程并刷新其内存

使用 Arduino IDE 对 ESP8266 进行编程并刷新其内存 这是我们之前 ESP 教程的延续的第三个教程,其中我们将学习使用 Arduino IDE(不使用 Arduino)对 ESP8266 进行编程和烧录 ESP8266。在前面的教程中,我们介绍了 WiFi 收发器ESP8266简介以及将 AT 命令与 ESP8266 结合使用。…

如何成功初始化一个模块

一、如何保证成功初始化一个模块&#xff08;以 UART 为例&#xff09;要成功初始化一个模块&#xff0c;请遵循以下步骤&#xff1a;在图形化界面中&#xff0c;首先配置外设模块。紧接着&#xff0c;配置使用到的外设模块的引脚&#xff08;这一点很重要&#xff0c;容易忘记…

Hive 存储管理测试用例设计指南

一、测试范围界定Hive 存储管理测试主要覆盖以下核心模块&#xff1a;内部表 / 外部表存储特性验证分区表 / 分桶表管理功能测试存储格式兼容性测试&#xff08;TextFile/ORC/Parquet 等&#xff09;数据加载与导出机制验证元数据与 HDFS 存储一致性校验异常场景与边界条件处理…

智芯微ZX6N60A—N沟道增强型功率MOSFET

主要特征&#xff1a; ID 6A Vdss 600V RDSON-typ &#xff08;VGS10V&#xff09; 1.4Ω特点&#xff1a; • 快速切换 • 低导通电阻 • 低门费 • 100%单脉冲雪崩能量测试应用范围&#xff1a; • 适配器和充电器的电源开关电路。芯片数据 • 外壳&#xff1a;模压塑料 …

latex|算法algorithm宏包和注意事项

LaTeX 中 algorithm 环境完整指南 在科研论文里&#xff0c;写清楚算法步骤通常需要用到 伪代码环境。最常见的选择有两个包&#xff1a; algorithm2e —— 功能最强大&#xff0c;适合期刊/学位论文algorithmicx algpseudocode —— 更灵活、可定制&#xff0c;常用于会议模板…