Mysql多线程复制调整参数
来源:互联网 发布:2015家电市场销售数据 编辑:程序博客网 时间:2024/06/05 07:06
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;