一 概念说明
   1 模型 并行复制是典型的生产者、消费者模式,Coordinator作为生产者,worker线程作为消费者。
   2 Waiting for preceding transaction to commit 当前事务无法和正在回放的事务并发回放出现的等待

二 延迟出现的err日志打印说明
   可以根据日志统计进行分析
   Multi-threaded slave statistics for channel ”:
   seconds elapsed = 121;
   eventsassigned = 100374529; 总共有多少个event被分配执行,计的是总数。
   queues filled over overrun level = 0; 多线程同步中,worker 的私有队列长度超长的次数,计的是总数。
   waited due aWorker queue full = 0; 因为worker的队列超长而产生等待的次数,计的是总数
   waited due the total size = 0; 超过最大size的次数
   waited at clock conflicts= 1451875661700
   waited (count) when Workers occupied = 3211993 因为workder被占用而出现等待的次数。(总计值)。
   waited when Workers occupied = 445032386000 因为workder被占用而出现等待的总时间,总计值,单位是纳秒。

三 出现的几种情况
  1 主从同步发生错误,导致从库延时
    观察 这里可以对sql_error和双线程进行观察,就能观察出问题
     解决方式 进行数据修复,保证主从数据的一致性
  2 主从同步发生大事务,导致从库延时
   观察
   1 通过show processlist进行观察
   2 exec_master_position 一直不会变
   3 SQL STATUS 一直出现 Waiting for preceding transaction to commit
     大表->DDL/大事务的执行是并行复制所无法解决的,会拖累甚至卡住整个复制进度 
     解决方式 大事务进行拆分,表进行拆分,避免或者减少这种情况的发生
  3 主库压力很大,同时并发数高,导致从库应用繁忙
   观察 1 观察主库binlog生成量和事务监控峰值
           2 从库执行语句
               SELECT thread_id,count_star FROM performance_schema.events_transactions_summary_by_thread_by_event_name
               WHERE thread_id IN (
               SELECT thread_id FROM performance_schema.replication_applier_status_by_worker);
              这条语句是用来统计worker线程应用事务的并发度数量的,可以进行推测
         3 从库的util值非常高
    解决方式 分库分表,改造业务,减少单台集群的压力

四 总结

和我之前排查异步复制的思路差不多,只是在并行复制的角度下

mysql 案例 ~ 主从复制延迟之并行复制的更多相关文章

  1. mysql 案例~ 主从复制转化为级联复制

    一 需求 mysql 主从复制切换成级联复制二 核心思想 1 开启级联复制 2 确定postion点场景 A->B A-C 三 切换步骤  1 先确定好B为级联复制库  2 B添加log_upd ...

  2. mysql案例 ~ 主从复制延迟处理(3)

    一 简介:今天咱们来汇总下如何避免主从延迟 二 方案: 1 集群硬件配置统一,磁盘组更好(SSD最佳),更大的内存 2 linux系统+mysql的配置参数已经优化 3 mysql从库没有任何慢语句进 ...

  3. mysql的主从复制延迟问题--看这一篇就够了

    ​ 在之前我们已经讲解了一主一从,双主双从的mysql集群搭建,在单机应用的时候看起来没有问题,但是在企业的生产环境中,在很多情况下都会有复制延迟的问题. ​ 主从复制的原理我们在此处就不再赘述了,之 ...

  4. MySQL案例07:MySQL5.7并发复制隐式bug

    我们MySQL线上环境大部分使用的是5.7.18的版本,这个版本已修复了很多bug,但针对主从复制的bug还是有很多的,尤其是一些组复制.并行复制的bug尤为突出,在5.7.19版本有做相应改善和修复 ...

  5. mysql 5.6多库并行复制原理

    首先,要开启这个并行复制,需要设定slave_parallel_workers参数,这个参数如果设定成0的话代表不使用并行,relaylog由sql线程执行,表现和之前版本一致.当这个参数设置成n时, ...

  6. MySQL主主配置及并行复制搭建

    思路: 两台机器互为主从. 机器1:192.168.1.160 机器2:192.168.1.164 修改两台机器的my.cnf文件,server-id,log-bin,auto-increment-i ...

  7. 怎样解决MySQL数据库主从复制延迟的问题---流行网站的解决办法(转载)

    像Facebook.开心001.人人网.优酷.豆瓣.淘宝等高流量.高并发的网站,单点数据库很难支撑得住,WEB2.0类型的网站中使用MySQL的 居多,要么用MySQL自带的MySQL NDB Clu ...

  8. 怎样解决MySQL数据库主从复制延迟的问题

    像Facebook.开心001.人人网.优酷.豆瓣.淘宝等高流量.高并发的网站,单点数据库很难支撑得住,WEB2.0类型的网站中使用MySQL的居多,要么用MySQL自带的MySQL NDB Clus ...

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

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

随机推荐

  1. Gym102082 G-What Goes Up Must Come Down(树状数组)

    Several cards with numbers printed on them are lined up on the table. We’d like to change their orde ...

  2. JDBC 增、改、删 MySQL中的表

    在数据库test里先创建表school,内容如下 通过JDBC增加第五人tom,修改他的生日,最后删除tom import java.sql.Connection; import java.sql.D ...

  3. MVC知识点汇总

    一,MVC创建控制器,视图 1新建 ASP.NET MVC web应用程序项目,在Controllers文件夹下创建控制器,MVC 5 控制器,然后打开控制器,在所对应的控制器中会存在一个Action ...

  4. Hibernate的入门(概念1):

    什么是持久化类? 持久化类的编写规则? 区分自然主键和代理主键? 主键生成策略?

  5. i2c框架

    目录 i2c框架 寄存器 主机发送 主机接收 中断处理 程序框架 title: iic框架 tags: ARM date: 2018-11-05 13:44:58 --- i2c框架 寄存器 /* 配 ...

  6. SpringBoot笔记十二:缓存

    目录 非缓存项目 缓存 JSR-107 Spring缓存抽象 @Cacheable @CachePut @CacheEvict @Caching @CacheConfig 整合Redis 先在Dock ...

  7. Visual Studio连接到TFS

    我在学校自己使用git,公司使用VSS,然后这个项目又使用TFS.Visual Studio连接到TFS是这样滴 1.点连接到团队项目 2.添加TFS服务器的url,写到你的http:XXX/tfs就 ...

  8. Web APi入门之Self-Host寄宿及路由原理

    前言 刚开始表面上感觉Web API内容似乎没什么,也就是返回JSON数据,事实上远非我所想,不去研究不知道,其中的水还是比较深,那又如何,一步一个脚印来学习都将迎刃而解. Self-Host 我们知 ...

  9. FeignClient调用POST请求时查询参数被丢失的情况分析与处理

    前言 本文没有详细介绍 FeignClient 的知识点,网上有很多优秀的文章介绍了 FeignCient 的知识点,在这里本人就不重复了,只是专注在这个问题点上. 查询参数丢失场景 业务描述: 业务 ...

  10. bzoj千题计划309:bzoj4332: JSOI2012 分零食(分治+FFT)

    https://www.lydsy.com/JudgeOnline/problem.php?id=4332 因为如果一位小朋友得不到糖果,那么在她身后的小朋友们也都得不到糖果. 所以设g[i][j] ...