开启多线程复制,默认关键的参数有两个:

mysql> show variables like 'slave_parallel_%';

+------------------------+---------------+

| Variable_name          | Value         |

+------------------------+---------------+

| slave_parallel_type    | database |

| slave_parallel_workers | 0             |

+------------------------+---------------+

2 rows in set (0.00 sec)

slave-parallel-type        默认值为database

slave-parallel-workers      默认值为0

在线开启:

mysql> stop slave sql_thread;

Query OK, 0 rows affected (0.07 sec)

mysql> set global slave_parallel_type='LOGICAL_CLOCK';

Query OK, 0 rows affected (0.00 sec)

mysql> set global slave_parallel_workers=4;

Query OK, 0 rows affected (0.00 sec)

mysql> start slave sql_thread;

Query OK, 0 rows affected (0.06 sec)

优化选项:

启用table模式是因为如果在多线程模式下,会频繁更新master.info文件,消耗代价过高,并且此值也不是非常准确

master_info_repository=table  对应的表为mysql.slave_master_info

relay_log_recovery=on

relay_log_info_repository=table 对应的表为mysql.slave_relay_log_info

说了这么多,要开启enhanced multi-threaded slave其实很简单,只需根据如下设置:

 # slave
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=16
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON

  

mysql 5.7开启并行复制的更多相关文章

  1. MySQL · 功能分析 · 5.6 并行复制实现分析

    背景 我们知道MySQL的主备同步是通过binlog在备库重放进行的,IO线程把主库binlog拉过去存入relaylog,然后SQL线程重放 relaylog 中的event,然而这种模式有一个问题 ...

  2. MySQL 并行复制从库发生自动重启分析

    并行复制从库发生自动重启分析 背景 半同步复制从库在晚上凌晨2点半发生自动重启,另一个异步复制从库在第二天凌晨3点也发生了自动重启. 分析 版本mysql 5.7.16 mysql> show ...

  3. MySQL 并行复制演进及 MySQL 8.0 中基于 WriteSet 的优化

    MySQL 8.0 可以说是MySQL发展历史上里程碑式的一个版本,包括了多个重大更新,目前 Generally Available 版本已经已经发布,正式版本即将发布,在此将介绍8.0版本中引入的一 ...

  4. MySQL并行复制(MTS)原理(完整版)

    目录 MySQL 5.6并行复制架构 MySQL 5.7并行复制原理 Master 组提交(group commit) 支持并行复制的GTID slave LOGICAL_CLOCK(由order c ...

  5. mysql 5.6并行复制事件分发机制

    并行复制相关线程 在MySQL 5.6并行复制中,当设置set global slave_parallel_workers=2时,共有4个复制相关的线程,如下: +----+------------- ...

  6. MySQL5.7 并行复制的学习

    MySQL 5.6 基于库级别的并行复制 MySQL5.6的并行复制是库(schema)级别的,从库为每个库(schema)分配一个线程以此来提高复制效率 在MySQL 5.6版本之前,Slave服务 ...

  7. MySQL5.7的组提交与并行复制

    从MySQL5.5版本以后,开始引入并行复制的机制,是MySQL的一个非常重要的特性. MySQL5.6开始支持以schema为维度的并行复制,即如果binlog row event操作的是不同的sc ...

  8. MySQL5.7的并行复制

    MySQL5.6开始支持以schema为维度的并行复制,即如果binlog row event操作的是不同的schema的对象,在确定没有DDL和foreign key依赖的情况下,就可以实现并行复制 ...

  9. MySQL 5.7 并行复制实现原理与调优

    MySQL 5.7并行复制时代 众所周知,MySQL的复制延迟是一直被诟病的问题之一,然而在Inside君之前的两篇博客中(1,2)中都已经提到了MySQL 5.7版本已经支持“真正”的并行复制功能, ...

随机推荐

  1. 抽象和封装_JAVA_OOP

    很久没做笔记了,没有以前的刚开始学习软件时候的热情了.包括几年前U盘损坏,数据丢失,通过数据恢复,也只是找回一些零星的碎片. 现在就抽时间把以前的技术笔记找回来,这十条记录在电脑上显示的最后修改日期为 ...

  2. Emmet (Zen Coding) HTML基本语法

    1. 嵌套操作---------- 子操作: > div>ul>li   并列:+ div+ul>li   上级:^ ul>li^div   ul>li>a^ ...

  3. C# 获取本机CPU序列号,MAC地址,硬盘ID,本机IP地址,计算机名,物理内存,PC类型

    首先引入服务 然后 调用 本文转载自http://blog.sina.com.cn/s/blog_7eeb43210101hf7f.html public class Computer { publi ...

  4. 用Redis构建分布式锁-RedLock(真分布)

    在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段. 有很多三方库和文章描述如何用Redis实现一个分布式锁管理器,但是这些库实现的方式差别很大,而且很多简单的实现其实只需采用稍微增 ...

  5. div显示提示信息

    div显示提示信息 <body> <style type="text/css"> a.link{position:relative;} a.link div ...

  6. Android 获取当前时间问题1

    获取的写法如下: Calendar c = Calendar.getInstance();//可以对每个时间域单独修改 int year = c.get(Calendar.YEAR); int mon ...

  7. Numpy Python

    如果一个数组太长,则NumPy自动省略中间部分而只打印两端的数据: 可通过设置printoptions参数来禁用NumPy的这种行为并强制打印整个数组. set_printoptions(thresh ...

  8. 伸缩盒 Flexible Box(旧)

    box-orient  box-pack    box-align  box-flex   box-flex-group  box-ordinal-group   box-direction  box ...

  9. 使用guava进行对字符串的加锁

    java的synchronized关键字是堆某对象加锁,但是我们当需要对某个字符串加锁怎么办 比如对同一个订单只能有一个操作,但是对其他订单的操作不影响 使用 guava包下的 Interner 类 ...

  10. 修复IE9.0下PlaceHolder 属性问题js脚本

    在开发前端系统时候碰到这种兼容问题,以下是个人解决方案,希望能给其他人带来帮助: var JPlaceHolder = { //检测 _check: function () { return 'pla ...