美文网首页
MySQL 5.7 并行复制解决复制延迟问题

MySQL 5.7 并行复制解决复制延迟问题

作者: 技术灭霸 | 来源:发表于2020-05-12 01:40 被阅读0次

一、缘由:

某天看到主从复制延时的告警有点频繁,就想着是不是彻底可以解决一下。

一般主从复制,有三个线程参与,都是单线程:Binlog Dump(主) ----->IO Thread (从) -----> SQL Thread(从)。复制出现延迟一般出在两个地方

  1. SQL线程忙不过来(可能需要应用数据量较大,可能和从库本身的一些操作有锁和资源的冲突;主库可以并发写,SQL线程不可以;主要原因)
  2. 网络抖动导致IO线程复制延迟(次要原因)。

二、解决办法:

MySQL 5.6

MySQL从5.6开始有了SQL Thread多个的概念,可以并发还原数据,即并行复制技术。

MySQL 5.6中,设置参数slave_parallel_workers = 4(>1),即可有4个SQL Thread(coordinator线程)来进行并行复制,其状态为:Waiting for an evant from Coordinator。

但是其并行只是基于Schema的,也就是基于库的。如果数据库实例中存在多个Schema,这样设置对于Slave复制的速度可以有比较大的提升。通常情况下单库多表是更常见的一种情形,

那基于库的并发就没有卵用。其核心思想是:不同schema下的表并发提交时的数据不会相互影响,即slave节点可以用对relay log中不同的schema各分配一个类似SQL功能的线程,来重放relay log中主库已经提交的事务,保持数据与主库一致。

MySQL 5.7

在MySQL 5.7中,引入了基于组提交的并行复制(Enhanced Multi-threaded Slaves),设置参数slave_parallel_workers>0并且global.slave_parallel_type=‘LOGICAL_CLOCK’,

即可支持一个schema下,slave_parallel_workers个的worker线程并发执行relay log中主库提交的事务。其核心思想:一个组提交的事务都是可以并行回放(配合binary log group commit);

slave机器的relay log中 last_committed相同的事务(sequence_num不同)可以并发执行。

其中,变量slave-parallel-type可以有两个值:DATABASE 默认值,基于库的并行复制方式;LOGICAL_CLOCK:基于组提交的并行复制方式

MySQL 5.7开启Enhanced Multi-Threaded Slave配置:

至此,MySQL彻底解决了复制延迟问题

相关文章

  • MySQL 5.7 并行复制解决复制延迟问题

    一、缘由: 某天看到主从复制延时的告警有点频繁,就想着是不是彻底可以解决一下。 一般主从复制,有三个线程参与,都是...

  • MySQL的并行复制

    MySQL的主从复制延迟一直是受开发者最为关注的问题之一,MySQL从5.6版本开始追加了并行复制功能,目的就是为...

  • MySQL并行复制

    传统复制: 多线程模型: 分发事务疑问 事务分发基本要求 MySQL 各版本并行复制策略

  • MySQL5.7 lossless 半同步复制

    MySQL5.7版本的半同步复制(semi-synchronous ),解决了在主机或者网络在数据同步阶段出现问题...

  • MySQL5.7的初始安装问题

    MySQL5.7 解决利用sqoop导入MySQL中文乱码的问题 sudo vim /etc/mysql/mysq...

  • 2.安装部署

    源码编译 MySQL编译依赖 必备的包和工具 功能需要的包 功能定制 MySQL限流SQL限流并行复制Thread...

  • Mysql 5.7 主从复制的多线程复制配置方式

    Mysql 5.7 主从复制的多线程复制配置方式 数据库复制的主要性能问题就是数据延时 为了优化复制性能,Mysq...

  • Mysql 的并行复制

    1.依据binlog和pos节点主从复制 一般主从复制,有三个线程参与,都是单线程:Binlog Dump(主) ...

  • WriteSet并行复制

    author:sufei 源码版本:5.7.26 一、MySQL并行复制过程的发展 库间并发 理论依据: 一个数据...

  • Mysql5.7主从复制主从延迟解决方案

    主服务器上进行操作 (1)创建用户并授权 1 mysql -uroot -p密码 2 mysql>gran...

网友评论

      本文标题:MySQL 5.7 并行复制解决复制延迟问题

      本文链接:https://www.haomeiwen.com/subject/pdomnhtx.html