1. 程式人生 > 實用技巧 >MySQL組複製MGR(四)-- 單主模式與多主模式

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排序,並選擇第一個伺服器。
  • 如果節點資料庫版本不一樣,則選舉過程會受影響。不過版本不一樣的情況較少,這裡不做討論。

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

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

mysql> SHOW STATUS LIKE 'group_replication_primary_member'


(二)多主模式

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

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