MGR(MySQL group replication)是MySQL官方在2016年12月退出的一个全新的高可用和高扩展的解决方案。MySQL组提供了高可用、高扩展、高可靠的MySQL集群服务。
MGR基础结构要求:
引擎必须为innodb,因为需要事务支持在commit时对各节点进行冲突检查;
每个表必须有主键,在进行事务冲突检查时需要利用主键值对比;
必须开启binlog且为row格式;
开启GTID,且主从状态信息存于表中(--master-info-repository=TABLE、--relay-log-info-repository=TABLE),--log-slave-updates打开;
一致性检测设置--transaction-write-set-extraction=XXHASH64。
环境准备
数据库服务器规划:
IP:192.168.10.21 server1 mysql5.7 端口号3306
IP:192.168.10.22 server2 mysql5.7 端口号3306
IP:192.168.10.23 server3 mysql5.7 端口号3306
设置hostname和IP映射
在三台数据库服务器上都设置
cat >> /etc/hosts<<EOF 192.168.10.21 server1 192.168.10.22 server2 192.168.10.23 server3 EOF
创建复制环境
配置/etc/my.cnf
[root@server1 ~]# vim /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid skip-name-resolve [mysqld] # Group Replication server_id = 1 #服务ID gtid_mode = ON #全局事务 enforce_gtid_consistency = ON #强制GTID的一致性 master_info_repository = TABLE #将master.info元数据保存在系统表中 relay_log_info_repository = TABLE #将relay.info元数据保存在系统表中 binlog_checksum = NONE #禁用二进制日志事件校验 log_slave_updates = ON #级联复制 log_bin = binlog #开启二进制日志记录 binlog_format= ROW #以行的格式记录 transaction_write_set_extraction = XXHASH64 #使用哈希算法将其编码为散列 loose-group_replication_group_name = 'ce9be252-2b71-11e6-b8f4-00212844f856' #加入的组名 loose-group_replication_start_on_boot = off #不自动启用组复制集群 loose-group_replication_local_address = 'server1:33061' #以本机端口33061接受来自组中成员的传入连接 loose-group_replication_group_seeds =' server1:33061, server2:33062, server3:33063' #组中成员访问表 loose-group_replication_bootstrap_group = off #不启用引导组 [root@server1 ~]# systemctl restart mysqld
在服务器server1上建立复制账号:
[root@server1 ~]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.7.24 MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> set SQL_LOG_BIN=0;#停掉日志记录 Query OK, 0 rows affected (0.00 sec) mysql> grant replication slave on *.* to repl@'192.168.10.%' identified by '#自己的密码'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> set SQL_LOG_BIN=1;#开启日志记录 Query OK, 0 rows affected (0.00 sec) mysql> change master to master_user='repl',master_password='#自己的密码' for channel 'group_replication_recovery';#构建group replication集群 Query OK, 0 rows affected, 2 warnings (0.01 sec) #在mysql服务器server11上安装group replication插件 mysql> install PLUGIN group_replication SONAME 'group_replication.so'; Query OK, 0 rows affected (0.06 sec) #查看group replication组件 mysql> show plugins; +----------------------------+----------+--------------------+----------------------+---------+ | Name | Status | Type | Library | License | +----------------------------+----------+--------------------+----------------------+---------+ | binlog | ACTIVE | STORAGE ENGINE | NULL | GPL | | mysql_native_password | ACTIVE | AUTHENTICATION | NULL | GPL | | sha256_password | ACTIVE | AUTHENTICATION | NULL | GPL | | CSV | ACTIVE | STORAGE ENGINE | NULL | GPL | | MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL | | InnoDB | ACTIVE | STORAGE ENGINE | NULL | GPL | | INNODB_TRX | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_LOCKS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_LOCK_WAITS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMP | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMP_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMPMEM | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMPMEM_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMP_PER_INDEX | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMP_PER_INDEX_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_BUFFER_PAGE | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_BUFFER_PAGE_LRU | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_BUFFER_POOL_STATS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_TEMP_TABLE_INFO | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_METRICS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_DEFAULT_STOPWORD | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_DELETED | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_BEING_DELETED | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_CONFIG | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_INDEX_CACHE | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_INDEX_TABLE | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_SYS_TABLES | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_SYS_TABLESTATS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INN

最低0.47元/天 解锁文章
457

被折叠的 条评论
为什么被折叠?



