mysql案例~mysql主从复制延迟概总
浅谈mysql主从复制延迟
1 概念解读
需要知道以下几点
1 mysql的主从同步上是异步复制,从库是串行化执行
2 mysql 5.7的并行复制能加速从库重做的速度,进一步缓解 主从同步的延迟问题
3 mysql的Seconds_Behind_Master代表延迟的状态 0为无延迟
4 mysql的Slave_SQL_Running_State:状态在异常时会有所表现,延迟出现的时候要尤为注意
5 Master_Log_File = Relay_Master_Log_File,Read_Master_Log_Pos = Exec_Master_Log_Pos 同样可认为 主从 0 延迟
2 场景分析
1 sql和io 线程正常 延迟一会就恢复,这样大多是由于短暂的事务引起的,
1 短暂小事务 不用关心
2 定期出现,需要具体分析
2 sql和io线程正常 磁盘 IO 过高 iowait很高,达到10%以上Exec_Master_Log_Pos 一直在变 证明 从库一直在追赶主库 分为几种情况
1 从库的机器硬件性能很差
2 主库执行的DML没有应用索引或者应用不当导致耗时很久,在从库回放时候很慢
3 HP机器RAID卡充放电不正常 会导致这种问题
4 主库业务过于集中,例如一台机器多个DB,导致DML非常频繁
5 从库采用ext4文件系统,jdb2占用IO太高
3 sql和io线程正常 Slave_SQL_Running_State:Reading event from relay log,Exec_Master_Log_Pos 一直不变 分为几种情况
1 操作的表是myisam表或者没有索引
2 执行了大事务(包含DDL) 可能导致这种情况,经常见于删除大量数据场景
4 Slave_SQL_Running_State:waiting for table flush ,延迟 一直增加
1 在从库,当xtarbackup备份的时候,会flush table with read lock,这时候如果从库有慢查询在进行,会导致一直等待,waiting for table flush,延迟不断增加
5 一台从库无延迟,另一台从库出现延迟
1 在同等硬件配置情况下,主要出现在一台数据库需要写中继日志,以提供canal解析binlog服务。
6 外键检测延迟问题
1 这种情况比较少见,是我在网上搜到的案例
7 并行复制导致延迟
1 常见于大表的DDL操作
3 解决方法
前提 进行 binlog分析
1 读取Exec_Master_Log_Pos mysqlbinlog进行卡主点的解析 mysqlbinlog -vvv --base64-output=decode-rows -j 位置 mysql-bin文件 | more 确定 操作的table和DML语句 还可以根据生成的sql文本大小估算下数据量
2 针对问题2的解决方案
1 更换硬件
2 优化主库的慢日志语句,确保从库能更快的运行
3 更换RAID卡电池
3 针对问题3 的解决方案
1 将myisam表转换为innodb表
2 添加主键
3 将大事务进行拆分,尤其是大量的delele操作,很容易导致这种问题
4 将业务进行优化
1 研发进行业务优化
2 业务库进行拆分
4 针对问题4的解决方案
1 优化在从库的查询 并且调整备份数据库时间
5 针对问题5的解决方案
1 升级硬件 2 减少主库事务
6 针对问题6 7的解决方案
1 去掉外键检测 2 对于DDL没太好办法
7 通用解决方案
1 如果在数据量不是很大的情况下,重做从库是最快的方式
2 可以尝试下 提交方式设为 2 禁止写binlog等方式尝试加速复制(感觉效果并不是太好)经朋友补充 添加 innodb_flush_log_at_trx_commit=2 sync_binlog=500 效果不错,可以提升速度
3 mysql 5.7的并行复制可以加速复制,非常建议使用
这是作者关于主从延迟的一些见解 欢迎点评
mysql案例~mysql主从复制延迟概总的更多相关文章
- mysql 案例 ~ mysql字符集详解
一 谈谈mysql常见的字符集问题 二 字符集统一 1 character_set_server 2 character_set_client 3 java/php等连接字符集 4 chara ...
- mysql 案例~mysql主从复制延迟处理(2)
一 简介:今天来聊聊周期性从库延迟的问题,是上一篇的基础分析的一个场景 二 背景:近期每天的指定时间段,收到从库延迟的报警,然后过一段时间恢复.由于从库是提供读服务的,所以需要解决 三 分析思路: 1 ...
- mysql 案例 ~ mysql主从复制错误问题
简介 mysql主从不同步的几种情况 一 具体情况 1 主库有memory引擎的内存表 分析 由于memory表的数据存放在内存中,一旦主库数据丢失,从库可能就会发生数据复制异常 ...
- mysql 案例 ~ mysql常见日志错误
一 简介: mysql note级别日志汇总二错误系列 1 Aborted connection 1 [Note] Aborted connection 61 to db: 'unconnec ...
- mysql 案例~ mysql故障恢复
一 :遇到一个朋友的案例 分享下处理流程 二 : 现象 1 mysql无法启动,观察日志发现 InnoDB: Failing assertion: !m_fatal InnoDB: We intent ...
- mysql 案例~mysql元数据的sql统计
一 简介:今天我们来收集下提取元数据的sql 二 前沿: information_schema 引擎 memory 元数据收集表 三 sql语句: 1#没有使用索引的表统计 SELECT t.TAB ...
- mysql的主从复制延迟问题--看这一篇就够了
在之前我们已经讲解了一主一从,双主双从的mysql集群搭建,在单机应用的时候看起来没有问题,但是在企业的生产环境中,在很多情况下都会有复制延迟的问题. 主从复制的原理我们在此处就不再赘述了,之 ...
- MySQL主从复制延迟的问题 #M1002#
MySQL主从复制延迟的问题 #M1002# https://mp.weixin.qq.com/s/NwFGER-qn2xQ5TnG-php1Q 更为糟糕的是,MySQL主从复制在大事务下的延迟.同样 ...
- MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!
MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!2017年06月15日 19:59:44 蓝色-鸢尾 阅读数:2062版权声明:本文为博主原创文章,如需转 ...
随机推荐
- Mybatis非mapper代理配置
转: Mybatis非mapper代理配置 2017年04月26日 20:13:48 待长的小蘑菇 阅读数:870 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog. ...
- WebService 及 CXF 的进阶讲解
4.2. WebService请求深入分析 1). 分析WebService的WSDL文档结构 1.1). 实例截图 <definitions> <types> <sch ...
- Ubuntu17安装Chrome有效
http://blog.csdn.net/NFMSR/article/details/78348000 1.进入 Ubuntu 16.04 桌面,按下 Ctrl + Alt + t 键盘组合键,启动终 ...
- poj 1523"SPF"(无向图求割点)
传送门 题意: 有一张联通网络,求出所有的割点: 对于割点 u ,求将 u 删去后,此图有多少个联通子网络: 对于含有割点的,按升序输出: 题解: DFS求割点入门题,不会的戳这里
- Good Bye 2018 A. New Year and the Christmas Ornament
传送门 https://www.cnblogs.com/violet-acmer/p/10201535.html 题解: 这题没什么好说的,读懂题意就会了. 比赛代码: #include<ios ...
- Educational Codeforces Round 55 (Rated for Div. 2) A - Vasya and Book
传送门 https://www.cnblogs.com/violet-acmer/p/10035971.html 题意: 一本书有n页,每次只能翻 d 页,问从x页到y页需要翻动几次? 注意:往前翻最 ...
- JS怎么判断一个对象是否为空
昨天面试的时候被问到的问题.只怪自己根基不牢,没有回答好 甚至说出了“判断这个obj是否和{}相等”这样鱼蠢的答案(/(ㄒoㄒ)/~~)引用类型怎么可以直接判断==或者===呢?! 今天中秋佳节,宝宝 ...
- (分治法 快速幂)P1226 【模板】快速幂||取余运算 洛谷
题目描述 输入b,p,k的值,求b^p mod k的值.其中b,p,k*k为长整型数. 输入输出格式 输入格式: 三个整数b,p,k. 输出格式: 输出“b^p mod k=s” s为运算结果 输入输 ...
- php-resque 轻量级队列
一:简介 github地址:https://github.com/chrisboulton/php-resque 这个轻量级队列是由 Ruby 开发的 Resque 启发而来的. 注意:1. php- ...
- Linux 检查 外部设备 是否存在
以 USB 为例,如果移植了udev,那么在usb插入的时候,/dev下面会出现usb有关的设备,同时,自动挂载到文件系统的某个节点 如果以文件系统usb对应的挂载点来检测USB是否插入,是不够严谨的 ...