mysql 案例 ~ 主从复制延迟之并行复制
一 概念说明
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 案例 ~ 主从复制延迟之并行复制的更多相关文章
- mysql 案例~ 主从复制转化为级联复制
一 需求 mysql 主从复制切换成级联复制二 核心思想 1 开启级联复制 2 确定postion点场景 A->B A-C 三 切换步骤 1 先确定好B为级联复制库 2 B添加log_upd ...
- mysql案例 ~ 主从复制延迟处理(3)
一 简介:今天咱们来汇总下如何避免主从延迟 二 方案: 1 集群硬件配置统一,磁盘组更好(SSD最佳),更大的内存 2 linux系统+mysql的配置参数已经优化 3 mysql从库没有任何慢语句进 ...
- mysql的主从复制延迟问题--看这一篇就够了
在之前我们已经讲解了一主一从,双主双从的mysql集群搭建,在单机应用的时候看起来没有问题,但是在企业的生产环境中,在很多情况下都会有复制延迟的问题. 主从复制的原理我们在此处就不再赘述了,之 ...
- MySQL案例07:MySQL5.7并发复制隐式bug
我们MySQL线上环境大部分使用的是5.7.18的版本,这个版本已修复了很多bug,但针对主从复制的bug还是有很多的,尤其是一些组复制.并行复制的bug尤为突出,在5.7.19版本有做相应改善和修复 ...
- mysql 5.6多库并行复制原理
首先,要开启这个并行复制,需要设定slave_parallel_workers参数,这个参数如果设定成0的话代表不使用并行,relaylog由sql线程执行,表现和之前版本一致.当这个参数设置成n时, ...
- MySQL主主配置及并行复制搭建
思路: 两台机器互为主从. 机器1:192.168.1.160 机器2:192.168.1.164 修改两台机器的my.cnf文件,server-id,log-bin,auto-increment-i ...
- 怎样解决MySQL数据库主从复制延迟的问题---流行网站的解决办法(转载)
像Facebook.开心001.人人网.优酷.豆瓣.淘宝等高流量.高并发的网站,单点数据库很难支撑得住,WEB2.0类型的网站中使用MySQL的 居多,要么用MySQL自带的MySQL NDB Clu ...
- 怎样解决MySQL数据库主从复制延迟的问题
像Facebook.开心001.人人网.优酷.豆瓣.淘宝等高流量.高并发的网站,单点数据库很难支撑得住,WEB2.0类型的网站中使用MySQL的居多,要么用MySQL自带的MySQL NDB Clus ...
- MySQL 并行复制演进及 MySQL 8.0 中基于 WriteSet 的优化
MySQL 8.0 可以说是MySQL发展历史上里程碑式的一个版本,包括了多个重大更新,目前 Generally Available 版本已经已经发布,正式版本即将发布,在此将介绍8.0版本中引入的一 ...
随机推荐
- 中性SNP的突变年龄评估(estimate the average age of a neutral two-allele polymorphism)
假设中性突变的频率分别为P和1-P,则其突变年龄为:-4Ne[p*( logep)+(1-p)* loge (1-p)] The average age of a neutral two-allele ...
- php递归函数中使用return的注意事项
php递归函数中使用return的时候会碰到无法正确返回想要的值得情况,如果不明白其中的原因,很难找出错误的,就下面的具体例子来说明一下吧: function test($i){ $i-=4; if( ...
- 【清北学堂2018-刷题冲刺】Contest 5
这三个题写了一天半,第一个题写了大概一整天.出题人劝我从后往前写,我不听,结果T1想了+调了一天QWQWQ Task 1:序列 [问题描述] 定义一个"好的序列"为一个长度为M ...
- ajax-----readyState总结
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- C# 实现身份验证之WCF篇(2)
前面总结了三种方法,今天又将分享三种方法,完成WCF篇. 第四种:SOAP Header验证 首先定义一个WCF服务契约及服务实现类(后面的各种验证均采用该WCF服务),我这里直接采用默认的代码,如下 ...
- jsr223 md5
import java.security.MessageDigest; String content = "xxx"; MessageDigest digest = Message ...
- Kubernetes 集群ca验证
创建集群时跳过ca验证 # vim /etc/kubernetes/apiserver 去除KUBE_ADMISSION_CONTROL中的 SecurityContextDeny,ServiceAc ...
- Golang基础语法1
打开cmd命令窗口 保存,编译,执行: 1.保存到一个×××.go的文件(我这里保存到 E:\GoTest\hello.go 下) 2.编译,在命令提示符中执行命令: go build -o E ...
- <HTML深入浅出> 读书笔记
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- 044、vloume声明周期管理(2019-03-07 周四)
参考https://www.cnblogs.com/CloudMan6/p/7214828.html 如果Data Volume 中存放的是重要的应用数据,如何管理volume对应用至关重要. ...