四、主节点配置MySQL Group Replication --多主模式
0、配置hosts文件、防火墙端口开放
vi /etc/hostname
localhost.localdomain.6
vi /etc/hosts
192.168.123.6 localhost.localdomain.6192.168.123.7 localhost.localdomain.7192.168.123.9 localhost.localdomain.9开放端口
firewall-cmd --zone=public --add-port=33061/tcp --permanent;firewall-cmd --reload
1、/etc/my.cnf
# Group Replicationserver_id = 1236gtid_mode = ONenforce_gtid_consistency = ONmaster_info_repository = TABLErelay_log_info_repository = TABLEbinlog_checksum = NONElog_slave_updates = ONlog_bin = binlogbinlog_format= ROWtransaction_write_set_extraction = XXHASH64loose-group_replication_group_name = 'ce9be252-2b71-11e6-b8f4-00212844f856'loose-group_replication_start_on_boot = onloose-group_replication_local_address = '192.168.123.6:33061'loose-group_replication_group_seeds ='192.168.123.6:33061,192.168.123.7:33062,192.168.123.9:33063'loose-group_replication_bootstrap_group = off# 关闭单主模式loose-group_replication_single_primary_mode = off# 开启多主模式loose-group_replication_enforce_update_everywhere_checks = on
2、service mysqld restartservice mysqld restart
3、建立复制账号
mysql -u root -pset SQL_LOG_BIN=0;create user repl@'%' identified by 'data';grant replication slave on *.* to repl@'%';flush privileges;set SQL_LOG_BIN=1;--构建group replication集群change master to master_user='repl',master_password='data' for channel 'group_replication_recovery';
4、安装group replication插件
mysql -u root -pinstall PLUGIN group_replication SONAME 'group_replication.so';--查看group replication组件show plugins;
5、启动主节点的group replication
mysql -u root -p--设置group_replication_bootstrap_group为ON是为了标示以后加入集群的服务器以这台服务器为基准,以后加入的就不需要设置。#设置网段白名单set global group_replication_ip_whitelist="192.168.123.0/24,127.0.0.1/32,192.168.123.0/16,192.168.123.1/24";
--作为首个节点启动mgr集群change master to master_user='repl',master_password='data' for channel 'group_replication_recovery';#这句只有在第一次执行引导组的时候执行.set global group_replication_bootstrap_group=ON;
start group_replication;set global group_replication_bootstrap_group=OFF;
6、查看mgr的状态
mysql -u root -p--查询表performance_schema.replication_group_membersselect * from performance_schema.replication_group_members;
五、从节点配置MySQL Group Replication
0、配置hosts文件、防火墙端口开放
vi /etc/hostname
localhost.localdomain.7
vi /etc/hosts
192.168.123.6 localhost.localdomain.6192.168.123.7 localhost.localdomain.7192.168.123.9 localhost.localdomain.9开放端口firewall-cmd --zone=public --add-port=33062/tcp --permanent;
firewall-cmd --reload
1、/etc/my.cnf
# Group Replicationserver_id = 1237gtid_mode = ONenforce_gtid_consistency = ONenforce_gtid_consistency = ONmaster_info_repository = TABLErelay_log_info_repository = TABLEbinlog_checksum = NONElog_slave_updates = ONlog_bin = binlogbinlog_format= ROWtransaction_write_set_extraction = XXHASH64loose-group_replication_group_name = 'ce9be252-2b71-11e6-b8f4-00212844f856'loose-group_replication_start_on_boot = offloose-group_replication_local_address = '192.168.123.7:33062'loose-group_replication_group_seeds ='192.168.123.6:33061,192.168.123.7:33062,192.168.123.9:33063'loose-group_replication_bootstrap_group = off# 关闭单主模式loose-group_replication_single_primary_mode = off# 开启多主模式loose-group_replication_enforce_update_everywhere_checks = on
2、service mysqld restart
3、建立复制账号
mysql -u root -pset SQL_LOG_BIN=0;create user repl@'%' identified by 'data';grant replication slave on *.* to repl@'%';flush privileges;set SQL_LOG_BIN=1;--构建group replication集群change master to master_user='repl',master_password='data' for channel 'group_replication_recovery';
4、安装group replication插件
mysql -u root -pinstall PLUGIN group_replication SONAME 'group_replication.so';--查看group replication组件show plugins;
5、把实例添回到主节点的复制组
mysql -u root -pset global group_replication_ip_whitelist="192.168.123.0/24,127.0.0.1/32,192.168.123.0/16,192.168.123.1/24";change master to master_user='repl',master_password='data' for channel 'group_replication_recovery';set global group_replication_allow_local_disjoint_gtids_join=ON;#有时不需要加
start group_replication;
6、在主节点查看mgr状态
mysql -u root -p分区工作笔记的第 5 页--查询表performance_schema.replication_group_membersselect * from performance_schema.replication_group_members;
select variable_value from performance_schema.global_status where variable_name='group_replication_primary_member';先备份后清理binlog日志show master status\Gshow slave status\Gpurge master logs to 'mysql-bin.000022'; //删除指定日志文件的日志索引中binlog日志文件
set global transaction_write_set_extraction=OFF;set global transaction_write_set_extraction=XXHASH64;
https://blog.csdn.net/d6619309/article/details/61917089/home/mysql/bin/mysqldump --all-databases --set-gtid-purged=ON --single-transaction -uroot -p > /home/mysql1236.sql;
在source那边,执行:flush logs;
show master status;
在target端,执行:CHANGE MASTER TO MASTER_LOG_FILE='testdbbinlog.000008',MASTER_LOG_POS=107;
slave start;
show slave status \G
跳过已删除过程,恢复主数据库执行: show global variables like '%gtid%' ;从库执行,多个用逗号分隔,支持1-10:set global gtid_purged = '24024e52-bd95-11e4-9c6d-926853670d0b:1' ;
ce9be252-2b71-11e6-b8f4-00212844f856:1-117、故障 恢复
从主库dump到从库,从库reset master,start group_replication