前面一篇文章簡要介紹了mysql組複制的工作流程、先決條件與限制條件,以及同傳統的異步複制集半同步複制的特點進行對比。本文将介紹mysql組複制的具體配置過程。
一、環境介紹
作業系統版本:centos linux 7.2 64bit
Mysql版本:mysql-5.7.19-linux-glibc2.12-x86_64
3台伺服器hosts檔案(其中vm2作為mysql組複制的第一台主機,通常第一台啟動的為master)
# cat /etc/hosts
192.168.115.5 vm1
192.168.115.6 vm2
192.168.115.7 vm3
二、配置vm2的my.cnf檔案
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<code>server-id=1155</code>
<code>lower_case_table_names = 1</code>
<code>skip-name-resolve</code>
<code>innodb_file_per_table=1</code>
<code>gtid_mode = ON</code>
<code>enforce_gtid_consistency = ON</code>
<code>slave_parallel_workers=4</code>
<code>master_verify_checksum = 1</code>
<code>slave_sql_verify_checksum = 1</code>
<code>log-slave-updates=true</code>
<code>sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES</code>
<code>slave-parallel-type=LOGICAL_CLOCK</code>
<code>slave-preserve-commit-order=ON</code>
<code>master_info_repository = TABLE</code>
<code>relay_log_info_repository = TABLE</code>
<code>binlog_checksum = NONE</code>
<code>transaction_write_set_extraction = XXHASH64</code>
<code>loose-group_replication_group_name = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'</code>
<code>loose-group_replication_start_on_boot = off</code>
<code>loose-group_replication_local_address = 'vm2:3306'</code>
<code>loose-group_replication_group_seeds ='vm1:3306,vm2:3306,vm3:3306'</code>
<code>loose-group_replication_bootstrap_group = off</code>
各項配置參數的具體含義可參考mysql手冊(mysql的安裝部署本文省略,具體也可參考mysql手冊):
<a href="https://dev.mysql.com/doc/refman/5.7/en/group-replication-configuring-instances.html" target="_blank">https://dev.mysql.com/doc/refman/5.7/en/group-replication-configuring-instances.html</a>
三、在vm2上建立複制賬号及權限配置
<code>mysql> set SQL_LOG_BIN=0;</code>
<code>Query OK, 0 rows affected (0.01 sec)</code>
<code>mysql> create user repl@'%' identified by "123456";</code>
<code>Query OK, 0 rows affected (0.00 sec)</code>
<code>mysql> grant replication slave on *.* to repl@'%';</code>
<code>mysql> flush privileges;</code>
<code>mysql> set SQL_LOG_BIN=1;</code>
<code>mysql> change master to master_user='repl',master_password='123456' for channel 'group_replication_recovery';</code>
<code>Query OK, 0 rows affected, 2 warnings (0.08 sec)</code>
<code>mysql> install PLUGIN group_replication SONAME 'group_replication.so';</code>
<code>Query OK, 0 rows affected (0.53 sec)</code>
四、啟動vm2上的group replication程序
<code>mysql> set global group_replication_bootstrap_group=ON;</code>
<code>mysql> start group_replication;</code>
<code>Query OK, 0 rows affected (2.66 sec)</code>
<code>mysql> set global group_replication_bootstrap_group=OFF;</code>
<code>mysql> select * from performance_schema.replication_group_members;</code>
<code>+---------------------------+--------------------------------------+-------------+-------------+--------------+</code>
<code>| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |</code>
<code>| group_replication_applier | 33025907-6d2d-11e7-8ce6-000c29e07281 | vm2 | 3306 | ONLINE |</code>
<code>1 row in set (0.00 sec)</code>
五、按照VM2相同的方法配置VM3,注意my.cnf檔案中的server-id需要修改
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<code>mysql> flush privileges;</code>
<code>mysql> change master to master_user='repl',master_password='123456' for channel 'group_replication_recovery';</code>
<code>Query OK, 0 rows affected, 2 warnings (0.05 sec)</code>
<code>mysql> install PLUGIN group_replication SONAME 'group_replication.so';</code>
<code>Query OK, 0 rows affected (0.38 sec)</code>
<code>mysql> set global group_replication_allow_local_disjoint_gtids_join=ON;</code>
<code>Query OK, 0 rows affected (7.89 sec)</code>
<code>| group_replication_applier | 35678d62-6d2d-11e7-80a7-000c2909332c | vm3 | 3306 | ONLINE |</code>
<code>| group_replication_applier | 8b643791-6d30-11e7-986a-000c29d53b31 | vm1 | 3306 | ONLINE |</code>
<code>3 rows in set (0.00 sec)</code>
這裡面需要注意的是後面加入組複制的vm3和vm1,需要配置group_replication_allow_local_disjoint_gtids_join參數為ON,據文檔描述開啟此參數的含義為假如目前的資料庫上的事務在組複制中不存在,一樣允許加入組複制。
<a href="https://s1.51cto.com/wyfs02/M01/A7/05/wKioL1nfNV6x5TqkAACJp7E110Y791.png-wh_500x0-wm_3-wmp_4-s_2286031229.png" target="_blank"></a>
本文轉自斬月部落格51CTO部落格,原文連結http://blog.51cto.com/ylw6006/1971816如需轉載請自行聯系原作者
ylw6006