MySQL 5.7多源复制及并行复制功能

教程发布:风哥 教程分类:ITPUX技术网 更新日期:2022-02-12 浏览学习:501

MySQL 5.7多源复制及并行复制功能

准备环境:
OS version:CentOS release 6.5 (Final)

服务器信息:
Master1:192.168.1.29
Master2:192.168.1.37
Slave:192.168.1.86

1、修改my.cnf
Slave中的my.cnf加入以下参数
启用enhanced multi-threaded slave (多线程复制)
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=8
master_info_repository=TABL
relay_log_info_repository=TABLE
relay_log_recovery=ON

可以通过以下监控并行复制
mysql> show tables like 'replication%';
+---------------------------------------------+
| Tables_in_performance_schema (replication%) |
+---------------------------------------------+
| replication_applier_configuration |
| replication_applier_status |
| replication_applier_status_by_coordinator |
| replication_applier_status_by_worker |
| replication_connection_configuration |
| replication_connection_status |
| replication_group_member_stats |
| replication_group_members |
+---------------------------------------------+

2、授权,在master1上和master2上授权,允许slave复制
3、change master
change master tomaster_host="192.168.1.29",master_port=3306,master_user="root",master_password="Password@123456"FOR CHANNEL "master1";
change master tomaster_host="192.168.1.37",master_port=3306,master_user="root",master_password="Password@123456"FOR CHANNEL "master2";

4、启动slave
start slave for channel "master1";
start slave for channel "master2";
MySQL 5.7才可称为真正的并行复制,这其中最为主要的原因就是slave服务器的回放与主机是一致的即master服务器上是怎么并行执行的slave上就怎样进行并行回放。不再有库的并行复制限制,对于二进制日志格式也无特殊的要求(基于库的并行复制也没有要求)。
从MySQL官方来看,其并行复制的原本计划是支持表级的并行复制和行级的并行复制,行级的并行复制通过解析ROW格式的二进制日志的方式来完成,WL#4648。但是最终出现给小伙伴的确是在开发计划中称为:MTS: Prepared transactions slave parallel applier,可见:WL#6314。该并行复制的思想最早是由MariaDB的Kristain提出,并已在MariaDB 10中出现,相信很多选择MariaDB的小伙伴最为看重的功能之一就是并行复制。

本文标签:
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】
【下一篇】