Welcome 微信登录

首页 / 数据库 / MySQL / MySQL 5.7多源复制及并行复制功能

准备环境:os version:CentOS release 6.5 (Final)服务器信息:Master1:192.168.1.29Master2:192.168.1.37Slave:192.168.1.861,修改my.cnfSlave中的my.cnf加入以下参数启用enhanced multi-threaded slave (多线程复制)slave-parallel-type=LOGICAL_CLOCKslave-parallel-workers=8master_info_repository=TABLrelay_log_info_repository=TABLErelay_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 masterchange 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,启动slavestart 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的小伙伴最为看重的功能之一就是并行复制。本文永久更新链接地址