MySQL8.0輕鬆搞定GTID組複製
前言
之前文章介紹了MySQL8.0主從複製,以及衍生出來的主主複製(可點如下連結檢視)。
今天來聊一聊MySQL8.0的組複製。
主從複製技術僅解決了資料同步的問題 ,如果主伺服器當機,意味著資料庫管理員需要介入,應用系統可能需要修改資料庫連線地址或者重啟才能實現。
組複製只要不是大多數節點壞掉就可以繼續工作 ,有自動檢測機制,當不同節點產生資源爭用衝突時,不會出現錯誤,按照先到者優先原則進行處理。 比如,3臺伺服器的叢集,允許其中1臺當機。
組複製工作模式:
-
單主模式,其中只有一個伺服器接受更新,單主是系統自動選舉出來的。
-
多主模式,其中所有伺服器都可以接受更新。
崑崙資料庫儲存節點的單個分片,採用的是單主模式的組複製。
在單主模式下,當主節點當機時,將自動選擇新的主節點,選舉方法如下圖所示:
在多主模式下,每個節點都可以寫資料,因此不存在節點選舉,如果組成員發生故障,業務切換節點即可。如下圖所示:
下面介紹在安裝好MySQL8的centos8虛擬機器上,實現單主模式組複製,以及多主模式組複製的過程:
虛擬機器列表:
G1: 192.168.25.150G2: 192.168.25.151G3: 192.168.25.152
一、G1配置
1.1. 修改主機名,並重啟生效
vim /etc/hosts192.168.25.150 centos8-0192.168.25.151 centos8-1192.168.25.152 centos8-2
1.2. 關閉防火牆並設定開機不啟動
systemctl stop firewalld.servicesystemctl disable firewalld.service
1.3. 關閉Selinux並設定開機不啟動
setenforce 0vim /etc/selinux/configSELINUX=disabled
1.4. 刪除auto.cnf,重啟自動生成server-uuid
rm -f /var/lib/mysql/auto.cnf
1.5. 設定配置檔案
vim /etc/my.cnf# 新增[mysqld]#binlog預設已經開啟,不用設定#伺服器ID,每臺機器不能重複server_id=1#全域性事物標識GTID開關gtid_mode=>
1.6. 重啟MySQL
systemctl restart mysqld.service
1.7. 登入mysql,新增用於同步的資料庫賬號
mysql> set sql_log_bin=0; #不記錄二進位制日誌mysql> create user 'kunlun'@'%' identified by '123456';mysql> grant replication slave on *.* to 'kunlun'@'%';mysql> flush privileges;mysql> set sql_log_bin=1;mysql> change master to master_user='kunlun', master_password='123456' for channel 'group_replication_recovery';
1.8. 啟動組複製功能
## 第一個主需要開啟bootstrap_group,啟動複製服務後,再關閉mysql> set global group_replication_bootstrap_group=on; mysql> start group_replication;mysql> set global group_replication_bootstrap_group=off;
mysql> select * from performance_schema.replication_group_members;+-------------+-------------+--------------+-------------+| MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE |+-------------+-------------+--------------+-------------+| centos8- | 3306 | ONLINE | PRIMARY |+-------------+-------------+--------------+-------------+
二、G2,G3配置
步驟1.5配置檔案, G2,G3分別修改如下
server_id=2group_replication_local_address="192.168.25.151:13306"server_id=3group_replication_local_address="192.168.25.152:13306"
步驟1.8只需啟動複製服務
mysql>start group_replication;
mysql> select * from performance_schema.replication_group_members;+-------------+-------------+--------------+-------------+| MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE |+-------------+-------------+--------------+-------------+| centos8- | 3306 | ONLINE | PRIMARY || centos8-1 | 3306 | ONLINE | SECONDARY || centos8-2 | 3306 | ONLINE | SECONDARY |+-------------+-------------+--------------+-------------+
三、多主模式配置
3.1. 設定配置檔案,G1,G2,G3增加兩項配置
vim /etc/my.cnfgroup_replication_single_primary_mode=offgroup_replication_enforce_update_everywhere_checks=on
3.2. 重啟MySQ L
systemctl restartmysqld.service
## 第一個主需要開啟bootstrap_group,啟動複製服務後,再關閉mysql> set global group_replication_bootstrap_group=on; mysql> start group_replication;mysql> set global group_replication_bootstrap_group=off;
3.4. G2,G3只需啟動複製服務
mysql>start group_replication;
mysql> select * from performance_schema.replication_group_members;+-------------+-------------+--------------+-------------+| MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE |+-------------+-------------+--------------+-------------+| centos8- | 3306 | ONLINE | PRIMARY || centos8-1 | 3306 | ONLINE | PRIMARY || centos8-2 | 3306 | ONLINE | PRIMARY |+-------------+-------------+--------------+-------------+
至此,多主模式的組複製已經搭建成功。
THE END
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70011764/viewspace-2853172/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL8.0輕鬆搞定GTID主從複製MySql
- MySQL8.0輕鬆搞定GTID主主複製MySql
- MySQL GTID複製MySql
- 輕鬆搞定分組報表中的各種排序排序
- 辦公室革命,教你輕鬆搞定輕鬆玩轉ExcelExcel
- MySQL 8 複製(四)——GTID與複製MySql
- MySQL 8 複製(五)——配置GTID複製MySql
- MySQL主從複製之GTID複製MySql
- MysqL主從複製_模式之GTID複製MySql模式
- MySQL8.0主從複製MySql
- MariaDB GTID 複製同步
- mysql GTID 主從複製概述MySql
- 填報指令碼之輕鬆搞定複雜表的資料入庫指令碼
- 線上將傳統模式複製改為GTID複製模式模式
- 輕鬆搞定專案流程自動化
- MySQL 5.6 建立GTID主從複製 (GTID-based Replication)MySql
- Java淺複製大揭秘:如何輕鬆複製兩個不同物件的某些相同屬性Java物件
- Mysql基於GTID的複製模式MySql模式
- Mysql 基於GTID主從複製MySql
- 【MySQL】主從GTID複製修復MySql
- MySQL 傳統複製與 GTID 複製原理及操作詳解MySql
- 3D 穿梭效果?使用 CSS 輕鬆搞定3DCSS
- Android輕鬆搞定Dialog提示動畫效果Android動畫
- 12步輕鬆搞定python裝飾器Python
- 輕鬆看懂Java位元組碼Java
- MySQL GTID複製錯誤修復演示MySql
- MySQL 組複製MySql
- 輕鬆搞定專案管理軟體、分配任務專案管理
- 一份配置,輕鬆搞定Vue表單渲染Vue
- 上億條資料,OurwayBI也能輕鬆搞定
- Jenkins部署安裝,輕鬆三步搞定Jenkins
- 輕鬆搞定實時分析及監控大屏
- 輕鬆搞定面試中的連結串列題目面試
- 輕鬆搞定Windows惡意程式碼攻擊(轉)Windows
- 一文輕鬆搞定 tarjan 演算法(二)演算法
- MySQL組複製(MGR)全解析 Part 1 組複製背景MySql
- MySQL 5.7 基於GTID搭建主從複製MySql
- MySQL GTID複製中斷修復過程MySql