MySQL學習筆記13分組複製相關概念

来源:http://www.cnblogs.com/coe2coe/archive/2017/08/30/7454765.html
-Advertisement-
Play Games

本文主要內容如下:1.分組複製產生的背景2.幾種複製技術的比較3.失效檢測4.組成員5.故障容忍度6.成員的節點狀態7.分組複製的兩種模式8.供體節點 1.分組複製產生的背景 多個MySQL服務組成的普通的複製體系存在必須的維護管理工作。MySQL分組複製技術使用MySQL組內通信協議提供瞭如下的好 ...


本文主要內容如下:
1.分組複製產生的背景
2.幾種複製技術的比較
3.失效檢測
4.組成員
5.故障容忍度
6.成員的節點狀態
7.分組複製的兩種模式
8.供體節點

 

1.分組複製產生的背景

多個MySQL服務組成的普通的複製體系存在必須的維護管理工作。MySQL分組複製技術使用MySQL組內通信協議提供瞭如下的好處:

(1)提供組內的MySQL服務之間的自動化協調。

(2)支持單個Primary體系或者多個Primary體系的分組。

(3)單個Primary體系的分組支持自動化的Primary選舉。

(4)多個Primary體系的分組支持自動化的所有Primary接收到更新。

(5)內置的分組服務提供了組內數據的一致性和可用性。

 

MySQL分組複製技術的應用場景:

(1)彈性複製。

滿足MySQL服務主機數量的動態增減的需求。

(2)高可用分片。分片技術(Sharding)作為一種流行的橫向擴展(scale-out)方法,一個MySQL分組可以為每一個分片提供高可用的解決方案。

(3)代替主從複製。在特定場景下普通的主從複製存在單點壓力問題,MySQL分組提供了伸縮性更好的解決方案。

(4)自治系統。 內置的複製協議支持自動化的MySQL分組。

 

 

2. 幾種複製技術的比較

MySQL提供的幾種複製技術的差別對比如下: 

(1)非同步複製技術。

 

(2)半同步複製技術。

 

(3)分組複製技術。

 

 

3.失效檢測

MySQL分組複製提供了一種失效檢測機制,可以用於發現和報告哪些MySQL服務處於無響應狀態,這些無響應的MySQL服務被假定為掛掉了。這種掛掉暫時只是作為一種可疑情況。隨後,如果分組一致同意這種可疑情況屬實,則分組決定該MySQL服務已經實際上失效了。最後分組中的其它成員通過協調決策,將該MySQL服務從分組中排除掉。無響應指一個MySQL服務在規定的時間內沒有收到另一個MySQL服務的響應消息。

當一個MySQL服務被從分組中排除掉時,該MySQL服務同樣會探測到其它所有MySQL服務都沒響應,因此該MySQL服務會懷疑其它所有MySQL服務都掛掉了,但是由於無法得到證實,只能是懷疑,而且最後也沒有結果;在這種情況下,該MySQL服務不能執行任何本地的事務。

4. 組成員

MySQL分組複製依賴於稱為MySQL分組成員服務的分散式服務,該服務是以MySQL內置的插件的形式提供的。成員服務定義了哪些MySQL服務處於線上狀態並且正在參與分組事務。線上狀態列表以視圖的形式提供,每個分組成員將能夠取得一致的視圖。

當一個MySQL服務加入MySQL分組時,或者主動或被動的離開分組時,分組服務將更新這個視圖。

5. 故障容忍度

MySQL分組成員服務採用PAXOS分散式演算法來保證分散式一致性。PAXOS分散式演算法的介紹請參考這個網頁:https://baike.baidu.com/item/Paxos%20%E7%AE%97%E6%B3%95

MySQL分組中的成員數量與故障容忍度之間的關係由以下公式決定:

n  =  2  x  f  +  1

其中,f是故障容忍度,n是分組成員的數量。此處故障容忍度是在不影響服務正常運行的情況下可以出現故障的服務的數量的最大值。 

6. 成員的節點狀態

成員的節點狀態有以下幾種:

狀態

同步

描述

ONLINE

節點線上。支持所有分組功能。隨時可執行事務。

RECOVERING

節點線上。處於恢復狀態。正在從供體(donor)接收數據。

OFFLINE

節點不線上。不屬於任何分組。

ERROR

錯誤。自動將super_read_only設置為ON,需人工修改該變數。

UNREACHABLE

不可達狀態。該節點被認為無響應,或者已經掛掉了。

 

7. 分組複製的兩種模式

MySQL分組複製技術提供了兩種模式:

(1)單主模式。

在一個分組中,只有一個成員處於Primary模式,而其它成員都處於Secondary模式。處於Primary模式的節點提供讀寫服務,而處於Secondary模式的節點只提供只讀服務。 

(2)多主模式。

在一個分組中,有多個成員處於Primary模式,其餘成員處於Secondary模式。處於Primary模式的節點提供讀寫服務,而處於Secondary模式的節點只提供只讀服務。

單主模式和多主模式由系統變數來決定。

group_replication_single_primary_mode

ON:單主模式。

OFF:多主模式。

預設情況下分組複製為單主模式。

8. 供體節點

MySQL分組複製體系中,需要一個節點提供數據供其它節點進行複製,這個提供數據的節點稱為供體節點(donor)。供體節點隨機產生,在一個複製體系中,各個節點輪流擔任供體節點。如果當前供體節點無法連接,則使用後備供體節點。MySQL儘量確保每次產生的供體節點不相同。 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在開始之前,我們需要創建一個DrawRectView 其初始代碼為 在ViewController中使用(尺寸為100x100並居中) 顯示效果如下(用紅色邊框顯示邊界) 修改DrawRectView.m代碼如下 其實就添加了下麵的繪圖代碼而已,繪製7條線條,每條線條的寬度為0.5 效果如下 將圖片 ...
  • 官方鏈接: https://developer.apple.com/app-store/review/guidelines/cn/ 1.條款和條件 1.1為App Store開發程式,開發者必須遵守Program License Agreement (PLA)、人機交互指南(HIG)以及開發者和蘋果 ...
  • 手機歸屬地查詢 效果圖: 分析: 1、傳遞多個參數,用一個類就好 2、打開資料庫 private SQLiteDatabase database; database=SQLiteDatabase.openOrCreateDatabase(file, null); file是資料庫的路徑 3、在邏輯中 ...
  • 首先,需要添加com.android.support:percent:24.1.1 包,版本隨意。 } 這個包給我們提供了PercentRelativeLayout以及PercentFrameLayout兩種佈局, 支持的屬性有layout_widthPercent、layout_heightPer ...
  • eclipse中打字中文突然變成繁體 在用eclipse做android項目的時候,發現打出來的字全部是繁體,而且QQ等其他位置又是簡體。 原因:eclipse的快捷點ctrl+alt+f(format代碼) 和搜狗裡面的切換簡繁體的快捷鍵一樣了。 所以也會導致在eclipse中ctrl+alt+f ...
  • 1. MNIST數據集 1.1 概述 Tensorflow框架載tensorflow.contrib.learn.python.learn.datasets包中提供多個機器學習的數據集。本節介紹的是MNIST數據集,其功能都定義在mnist.py模塊中。 MNIST是一個入門級的電腦視覺數據集,它 ...
  • select u.c_name,case when ur.c_role_id=73 then 'A類型' else 'B類型' end as roletype, case when u.c_online_status=1 then'線上' else '不線上' end as onlinestatus... ...
  • 一、基本概念(這裡引用http://www.laruence.com/2008/01/05/12.html) 1、 給定一系列字元,對每個字元賦予一個數值,用數值來代表對應的字元,這一數值就是字元的編碼(Encoding)。例如,我們給字元’A'賦予數值0,給字元’B'賦予數值1,則0就是字元’A' ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...