MySQL組複製MGR(四)-- 單主模式與多主模式
阿新 • • 發佈:2020-07-25
(一)概述
組複製可以執行在單主模式下,也可以執行在多主模式下,預設為單主模式。組的不同成員不能部署在不同模式下,要切換模式,需要使用不同配置重新啟動組而不是單個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'
(二)多主模式
多主模式每個節點都可以寫資料,因此不存在節點選舉,如果組成員發生故障,業務切換節點即可。
圖.多主模式下的業務切換