mysql复制延时排查

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 主从延时如果排查?1. show slave status\G,看一下relay_master_log_file & exec_master_log_pos数值有没有变化(如果是GTID复制也可以看executed_gtid_set的事物号有没有增长 ),如果一直不变化,说...

主从延时如果排查?

1. show slave status\G,看一下relay_master_log_file & exec_master_log_pos数值有没有变化(如果是GTID复制也可以看executed_gtid_set的事物号有没有增长 ),如果一直不变化,说明有大事物,导致sql_thread线程hang住,这个时候需要查看主库的binlog,看一下是什么事物:

 mysqlbinlog -v --base64-output=decode-rows --start-position= exec_master_log_pos   relay_master_log_file | less

然后等大事物结束或者回滚;


这次事物结束后,如果下次从库不能接受这样延时,怎么办,有什么根本的解决方法?

(1)把从库对读要求比较高的业务切换到主库上;

(2)以后更新大事物拆分成多个小事物,比如说一次更新20万条改为一次更新10万条;


2.  如果relay_master_log_file & exec_master_log_pos数值增长很慢,怎么办?

(1)解析对应的binlog: mysqlbinlog -v --base64-output=decode-rows --start-position= exec_master_log_pos   relay_master_log_file | less

查看对应的表,看看表有没有主键,索引等结构


(2)检查系统是不是过载cpu,memory,io,


io可以通过工具iotop和pt-ioprofile查看

如果发现是mysql库下的slave_relay_log_info.ibd文件占用IO很高,可以考虑调大sync_relay_log_info,让这个文件同步不要太频繁。


cpu可以通过top命令查看:

如果user比较高,可以show processlist查看,慢日志,有没有大量的排序,主要是sql语句

如果sys很高的话,一般来说,因为:

1、发生swap

2、数据库内发生严重的锁等待

3、用了ssd等设备,产生大量中断,或者网卡中断(cpu中断不均衡)

4、MySQL里频繁创建连接及关闭

5、频繁用到timestamp列,且time_zone=SYSTEM


memory:

free -gt

vmstat


看看mysql的errorlog,主从的server-id是否不一样


如何查看网卡是否连接:

ifconfig |grep up

dmesg|grep eth


以上方法都不行的话,可以尝试其他方法:

使用工具perf top

pstack `pidof mysqld`

ipmitool

硬件方面raid卡等


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
SQL 运维 关系型数据库
记一次 MySQL 主从同步异常的排查记录,百转千回!
这篇文章主要讲述了在 MySQL 主从同步过程中遇到的一个问题,即从库的 SQL 线程因 Relay Log 损坏导致同步停止。作者首先介绍了现象,从库的 Slave_IO_Running 正常,但 Slave_SQL_Running 停止,报错信息提示可能是 binlog 或 relay log 文件损坏。
184 6
|
6月前
|
SQL 存储 关系型数据库
MySQL慢日志的介绍以及如何使用问题
【5月更文挑战第19天】MySQL慢日志的介绍以及如何使用问题
54 2
|
6月前
|
存储 SQL 关系型数据库
不停止MySQL服务增加从库的两种方式
不停止MySQL服务增加从库的两种方式
|
存储 SQL 缓存
mysql的启动关闭原理和实战、及常见的错误排查
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
512 0
|
SQL 监控 关系型数据库
[MySQL FAQ]系列 — MySQL复制中slave延迟监控
[MySQL FAQ]系列 — MySQL复制中slave延迟监控
144 0
|
存储 关系型数据库 MySQL
MySQL Case-时间问题导致MySQL实例批量宕机
MySQL时间字段怎么设置,如果操作系统时间相差太远会带来什么问题呢?
195 0
MySQL Case-时间问题导致MySQL实例批量宕机
|
缓存 关系型数据库 MySQL
MySQL|主从延迟问题排查(二)
主库执行insert  select 批量写入操作,主从复制通过row模式下转换为批量的insert大事务操作,导致只读实例CPU资源以及延迟上涨
2340 0
|
SQL 监控 关系型数据库
MySQL|主从延迟问题排查(一)
大查询长时间执行无法释放DML读锁,后续同步主库的DDL操作获取DML写锁资源被阻塞等待,导致后续同步主库的操作堆积,主从延迟增长严重。从同步延迟的监控来看,延迟从17:11开始,17:51:59进行kill大查询操作,直到17:53建议业务方将大查询kill掉后才结束。
3330 0
MySQL|主从延迟问题排查(一)
|
SQL 关系型数据库 MySQL
|
Web App开发 关系型数据库 MySQL
[MySQL] ibtmp文件过大怎么处理?
ibtmp文件过大怎么处理?它到底是什么?如何才能彻底的解决此问题呢? 原文地址:https://www.cndargon.com/index.php/archives/19/
2380 0
下一篇
无影云桌面