MySQL MGR--MGR部署


MGR部署

場景描述:

使用三台服務器搭建一個簡單MGR集群,使用MySQL 5.7.24版本,服務器列表為:

192.168.1.147
192.168.1.148
192.168.1.149

 

1、使用普通配置文件啟動MySQL服務,安裝MGR插件(所有節點執行)

INSTALL PLUGIN group_replication SONAME 'group_replication.so';

 

2、調整MySQL各節點的配置文件並重啟MySQL服務(所有節點執行)

## config master
server-id               				= 17218228149
log-bin                 				= mysql-bin
master_info_repository  				= TABLE
binlog_format           				= ROW
expire_logs_days        				= 7
sync_binlog             				= 1
gtid_mode                				= on
enforce-gtid-consistency 				= true
binlog_rows_query_log_events 			        = on
binlog_checksum                         = NONE ## config slave skip-slave-start slave-parallel-workers = 8 slave-parallel-type = LOGICAL_CLOCK slave_preserve_commit_order = 1 log_slave_updates = 1 report_host = 192.168.1.149 ## config relay log relay-log = relay-log relay_log_recovery = ON sync_relay_log = 0 relay_log_info_repository = TABLE ## config group replication transaction_write_set_extraction    = XXHASH64 loose-group_replication_group_name    = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaa01" loose-group_replication_start_on_boot         = OFF loose-group_replication_bootstrap_group         = OFF loose-group_replication_local_address         = "192.168.1.149:33581" loose-group_replication_group_seeds    = "192.168.1.147:33581,192.168.1.148:33581,192.168.1.149:33581" loose-group_replication_ip_whitelist         = "192.168.1.147,192.168.1.148,192.168.1.149"

未安裝MGR插件前在配置文件加入MGR配置會報錯。

MGR配置說明:上面黃色部分參數在很多配置文件中都沒提到,但很可能會導致部署失敗,尤其是loose-group_replication_ip_whitelist參數。

 

3、配置MGR通信賬號,並清理MASTER(所有節點執行)

CREATE USER repl@'%' IDENTIFIED BY 'repl';
GRANT REPLICATION SLAVE ON *.* TO repl@'%';
RESET MASTER;

 

4、創建MGR依賴的復制環境(所有節點執行)

CHANGE MASTER TO MASTER_USER='repl', 
MASTER_PASSWORD='repl'
FOR CHANNEL 'group_replication_recovery';

 

5、在主節點上啟動MGR(在節點192.168.1.147上執行)

SET GLOBAL group_replication_bootstrap_group=ON;
START group_replication;
SET GLOBAL group_replication_bootstrap_group=off;

 

6、在輔助節點上啟動MGR(在節點192.168.1.148和在節點192.168.1.149上執行)

START group_replication;

 

7、搭建完成后,可以使用下面語句查看狀態:

## 查看各節點狀態
SELECT * 
FROM performance_schema.replication_group_members;

## 查看當前MGR模式(單主還是多主)
SELECT @@group_replication_single_primary_mode;

 

8、判斷節點狀態

## 查看當前節點狀態
SELECT member_state 
FROM performance_schema.replication_group_members 
WHERE member_id=@@server_uuid;


## 通過節點是否可寫來判斷群集是否為主節點
SELECT * 
FROM performance_schema.global_variables 
WHERE variable_name IN ('read_only', 'super_read_only');

MGR成員的五種狀態:

ONLINE: The member is in a fully functioning state.

RECOVERING: The server has joined a group from which it is retrieving data.

OFFLINE: The group replication plugin is installed but has not been started.

ERROR: The member has encountered an error, either during applying transactions or during the recovery phase, and is not participating in the group's transactions.

UNREACHABLE: The failure detection process suspects that this member cannot be contacted, because the group messages have timed out.

 

新增MGR節點

目前MySQL不支持自動擴展新節點並將全量數據同步到新節點,因此需要:

1、備份任一節點數據(MySQLDump或Xtrabackup)至新節點並還原

2、在新節點上設置與備份數據對應的Executed_Gtid_Set

3、在新節點上執行下面命令直接啟動MGR復制即可。

CHANGE MASTER TO MASTER_USER='repl', 
MASTER_PASSWORD='repl'
FOR CHANNEL 'group_replication_recovery';

START GROUP_REPLICATION;

 


免責聲明!

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



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