MySQL組復制MGR(四)-- 單主模式與多主模式


(一)概述
組復制可以運行在單主模式下,也可以運行在多主模式下,默認為單主模式。組的不同成員不能部署在不同模式下,要切換模式,需要使用不同配置重新啟動組而不是單個server。

相關參數如下:

# 該參數決定啟用單主模式(on)還是多主模式(off),默認單主模式
loose-group_replication_single_primary_mode=off             

# 在多主模式下部署時,將檢查語句以確保它們與該模式兼容。在多主模式下部署組復制時,將進行以下檢查:
#    --如果事務是在SERIALIZABLE隔離級別下執行的,則在與組同步時,其提交將失敗。
#    --如果事務是針對具有具有級聯約束的外鍵的表執行的,則該事務在與組同步時將無法提交。
#  這些檢查可以通過設置選項來禁用 group_replication_enforce_update_everywhere_checks 到FALSE。在單主要模式下部署時,此選項必須設置為FALSE。
loose-group_replication_enforce_update_everywhere_checks=on


(二)單主模式
在單主模式下,組中只有一個節點可執行寫操作,其它節點被自動設置為只讀模式,主服務器通常是用於引導的第一個Server,后續所有其它的server設為只讀。

在單主模式下,當主節點失敗時,自動的選舉機制將選擇新的主節點,選舉方法如下:

  • 如果所有節點數據庫版本均相同,則選擇參數“group_replication_member_weight”值最大的節點作為主節點,如果多個服務器具有相同的“group_replication_member_weight”,則根據數據庫實例的server_uuid排序,並選擇第一個服務器。
  • 如果節點數據庫版本不一樣,則選舉過程會受影響。不過版本不一樣的情況較少,這里不做討論。

Snipaste_2020-07-25_13-34-37

                                          圖.單主模式下的主節點選舉

對於單主模式,如果要找出哪個是主數據庫,可以使用下面的方法:

mysql> SHOW STATUS LIKE 'group_replication_primary_member'


(二)多主模式

多主模式每個節點都可以寫數據,因此不存在節點選舉,如果組成員發生故障,業務切換節點即可。

Snipaste_2020-07-25_13-48-10

                                     圖.多主模式下的業務切換


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM