Mysql8 group replication组复制集群单主多主模式切换
生活随笔
收集整理的這篇文章主要介紹了
Mysql8 group replication组复制集群单主多主模式切换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? ? ? ? ? ? ? ? ? ? ? Mysql8 MGR集群操作圖解
聲明與簡介
本文的數據來自網絡,部分代碼也有所參照,這里做了注釋和延伸,旨在技術交流,如有冒犯之處請聯系博主及時處理。本文主要介紹mysql的MGR集群的操作。
MySQL Group Replication(MGR)是MySQL官方在5.7.17版本引進的一個數據庫高可用與高擴展的解決方案,以插件形式提供,實現了分布式下數據的最終一致性。其特點如下:
- 高一致性:基于分布式paxos協議實現組復制,保證數據一致性;
- 高容錯性:自動檢測機制,只要不是大多數節點都宕機就可以繼續工作,內置防腦裂保護機制;
- 高擴展性:節點的增加與移除會自動更新組成員信息,新節點加入后,自動從其他節點同步增量數據,直到與其他節點數據一致;
- 高靈活性:提供單主模式和多主模式,單主模式在主庫宕機后能夠自動選主,所有寫入都在主節點進行,多主模式支持多節點寫入
注:1 當前MGR集群驗證環節在VVMware虛擬機內。
? ? ? ?2 當前虛擬機內mysql庫運行在Centos 8內,版本號是 8.0.23、端口號3306。
? ? ? ?3 當前驗證環境是3臺版本一致(一樣)的mysql數據庫的主機:192.168.111.128(host_128)是單主節點,host_129、host_130是從節點。
? ? ? ?4 在上述三組主機環境內搭建好單主模式的MGR集群,詳見鏈接:Mysql 8 group replication組復制集群單主配置圖解
MGR集群操作
單主主機切換
-- Step 1: 查看當前MGR集群狀態以及單主,這里是Host_128。 -- 命令可在集群內任意節點執行 SELECT * FROM performance_schema.replication_group_members; -- Step 2: 指定Host_130為單主,這里server_uuid對應Step1里對應主機查到的MEMBER_ID。 SELECT group_replication_set_as_primary('3785ac24-b078-11eb-a14a-000c2937f3b0'); -- Step 3:查看當前MGR集群狀態以及單主,這里已經切換到Host_130 SELECT * FROM performance_schema.replication_group_members; -- Step 5 執行insert驗證單主讀寫 -- Host_128里執行insert語句,tab_test有id和memo兩個字段,如果沒有該表,可自行創建。 insert into tab_test values(2,'Not a single Primary now'); -- Step 6 執行insert驗證單主讀寫 -- Host_130里執行insert語句,tab_test有id和memo兩個字段,如果沒有該表,可自行創建。 insert into tab_test values(2,'Not a single Primary now');單主切換多主
-- Step 1:單主節點上執行多主模式切換 SELECT group_replication_switch_to_multi_primary_mode() -- Step2 :查看當前MGR集群狀態以及單主,這里已經切換到Host_130,此時三臺主機的MEMBER_ROLE都是PRIMARY。 SELECT * FROM performance_schema.replication_group_members; -- Step 3: 驗證下Host_128是否可插入數據。此時可正常插入。同理Host_129、Host_130 insert into tab_test values(3,'I''m in primary role again'); select @@hostname,A.* from tab_test A;多主切換單主
類似單主切換多主,這里使用單主到多主的切換命令。這次我們選擇主機host_129,它的Member_ID是7edd8b92-b077-11eb-8ffe-000c2936760d。命令可在任意節點上執行,當前執行于host_128。
-- Step1:單主切換多主 SELECT group_replication_switch_to_single_primary_mode(‘7edd8b92-b077-11eb-8ffe-000c2936760d’); -- Step 2:查看當前MGR集群狀態以及單主,這里已經切換到Host_129 SELECT * FROM performance_schema.replication_group_members;從節點停止復制
-- 在單主節點host_129上停止復制,這里發現其MEMBER_STATUS為OFFLINE -- Step 1:停止復制 STOP GROUP_REPLICATION; -- Step 2:查看當前MGR集群狀態,此時Host_128被選舉為Primary,而Host_130為SECONDARY。 SELECT * FROM performance_schema.replication_group_members;??問題
-- Issue1: 從節點執行單主切換多主命令報錯,需要在單主節點執行。 SELECT group_replication_switch_to_multi_primary_mode()總結
以上是生活随笔為你收集整理的Mysql8 group replication组复制集群单主多主模式切换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 当面花怎么付款给朋友
- 下一篇: linux cmake编译源码,linu