MySQL多线程复制

来源:互联网 发布:按键精灵自动录入数据 编辑:程序博客网 时间:2024/06/05 21:15

MySQL的多线程复制不是一个新的东西,在5,7之前就已经有了,在5.7上进行了增强;
多线程复制可以减轻主从复制的延迟;

一个线程只能针对一个数据库进行复制,显得有些鸡肋;大部分操作有可能都是对一个库的操作;

MySQL5.7的多线程复制可以看做是基于table的,这样就可以提高效率;

第一步:在slave上停止复制链路;
第二步:

  • 设置多线程复制方式位逻辑时钟,slave上相同的logic_clock可以并发复制;
set global slave_parallel_type='logic_clock'
  • 设置并发的工作线程数量
set global slave_parallel_workers=CPU_NUM;

这里写图片描述

实验:

在slave端查看并发方式:

mysql> show variables like 'slave_parallel%'    -> ;+------------------------+----------+| Variable_name          | Value    |+------------------------+----------+| slave_parallel_type    | DATABASE || slave_parallel_workers | 0        |+------------------------+----------+2 rows in set (0.01 sec)

修改并发方式位逻辑时钟的方式:

mysql> show variables like 'slave_parallel%';+------------------------+----------+| Variable_name          | Value    |+------------------------+----------+| slave_parallel_type    | DATABASE || slave_parallel_workers | 0        |+------------------------+----------+2 rows in set (0.00 sec)mysql> stop slave;Query OK, 0 rows affected (0.00 sec)mysql> set global slave_parallel_workers = 2;Query OK, 0 rows affected (0.00 sec)mysql> start slave;Query OK, 0 rows affected (0.01 sec)mysql> show processlist;mysql> show slave status\G;*************************** 1. row ***************************               Slave_IO_State: Waiting for master to send event                  Master_Host: 192.168.31.157
原创粉丝点击