達夢分布式集群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
英文地址,請注明出處:http://en.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;常用于會議模板…