Mysql多线程复制调整参数

1、配置从服务器上的多线程并行复制的参数(此处为实现多线程复制的重要参数)在数据库配置文件 my.cnf中设置

slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=16             #16为设置的并发线程个数,之后根据项目对数据传输的具体要求再更改
#一个 schema 下,slave_parallel_workers中的worker线程并发执行relay log中主库提交的事务
master_info_repository= TABLE
relay_log_info_repository= TABLE
relay_log_recovery= ON

注:变量slave-parallel-type可以有两个值

DATABASE 为默认值,意为基于库的并行复制方式;

LOGICAL_CLOCK:基于组提交的并行复制方式

2、执行命令show processlist; 查看等待的线程.


或者


1、下面查看复制类型和并行数量配置

mysql> show variables like 'slave_parallel_type';
+---------------------+----------+
| Variable_name  | Value |
+---------------------+----------+
| slave_parallel_type | DATABASE |
+---------------------+----------+
1 row in set (0.00 sec)

当前的复制类型是 DATABASE,也就是统一数据库下只有一个线程进行复制,不能并行复制。


mysql> show variables like 'slave_parallel_workers';
+------------------------+-------+
| Variable_name   | Value |
+------------------------+-------+
| slave_parallel_workers | 0  |
+------------------------+-------+
1 row in set (0.01 sec)

当前并行工作的进程数是 0

配置多线程

1、停止从节点复制

mysql> stop slave;
Query OK, 0 rows affected (0.01 sec)

2、设置复制类型为 LOGICAL_CLOCK

mysql> set global slave_parallel_type= 'logical_clock' ;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'slave_parallel_type' ;
+ ---------------------+---------------+
| Variable_name  | Value   |
+ ---------------------+---------------+
| slave_parallel_type | LOGICAL_CLOCK |
+ ---------------------+---------------+
1 row in set (0.01 sec)

3、设置并行数量为 4
mysql> set global slave_parallel_workers=4;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'slave_parallel_workers' ;
+ ------------------------+-------+
| Variable_name   | Value |
+ ------------------------+-------+
| slave_parallel_workers | 4  |
+ ------------------------+-------+
1 row in set (0.00 sec)

4、启动从节点复制

mysql> start slave;
Query OK, 0 rows affected (0.02 sec)

5、查看一下当前工作的线程数

mysql> show processlist;



你可能感兴趣的:(mysql)