并行复制的介绍
MySQL 5.6版本也支持所谓的并行复制,但是其并行只是基于schema的,也就是基于库的。如果用户的MySQL数据库实例中存在多个schema,对于从机复制的速度的确可以有比较大的帮助。
MySQL 5.7版本支持两种复制方式:基于库的复制方式和基于组的复制方式。
为了兼容MySQL 5.6基于库的并行复制,5.7引入了新的变量slave-parallel-type,其可以配置的值有:
DATABASE:默认值,基于库的并行复制方式
LOGICAL_CLOCK:基于组提交的并行复制方式
多线程的思路就是把sql_thread 变成分发线程,然后由一组worker_thread来负责执行。
几乎所有的并行复制都是这个思路,有不同的,便是sql_thread 的分发策略。
实验步骤
**此实验在基于GTID的主从复制基础上进行。** 在从机上做如下操作: [root@server2 mysql]# vim /etc/my.cnf
server-id=2
gtid-mode=on
enforce-gtid-consistency=1
slave-parallel-type=LOGICAL_CLOCK(选择组提交的并行提交方式)
slave-parallel-workers=10(并行work数)
master_info_repository=TABLE(以TABLE方式保存)以表的方式进行存储,默认是文件文件对刷盘要求高,损耗磁盘。也可file和table同时
relay_log_info_repository=TABLE
relay_log_recovery=ON(恢复机制打开)
[root@server2 mysql]# systemctl restart mysqld(重启mysqld)
登录mysqld
mysql> use mysql;
查看线程: