mysql双yes但是同步延时问题
今天发现在153服务器insert一条数据,然后查看从库154和162都没有这条数据,但是在154和162执行show slave status 显示的双yes 后来重启了153 154 162的mysql还是有这个问题。等了大概20分钟
154 和162才同步完成数据。后续需要继续排查问题所在。https://www.cnblogs.com/gaoyuechen/p/8628036.html
当时查看了seconds_behind_master 大概都在2000-5000的样子
2019-09-19更新
今天发现154和162的seconds_behind_master都在20000多,这两台都是153的从库,难道是153的读写事务太多?
后来网上看了这个文章 https://blog.csdn.net/weixin_34049948/article/details/89821388
先查看进入154服务器的docker 安装的mysql服务端 执行 mysql -u root -p
然后 show slave status\G 主要查看 Relay_Master_Log_File: mysql-bin.000616 和 Exec_Master_Log_Pos: 59270494
Relay_Master_Log_File: mysql-bin.000616
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 59270494
如果发现长时间这两项不变就可以是153主库有什么比较大的事务在执行导致154从库同步很慢
然后在153主库通过
mysqlbinlog -v --base64-output=decode-rows --start-position=586749146 mysql-bin.000615 | more
看到了obs_issue_info_30 这个表有大量的delete操作,后来询问了大数据同事,他那边每3个小时有大量的delete和insert操作往153写入。所以问题找到了153被大数据平台大量写入导致154和162同步延时很大。而作为主主的另外一台154没有大数据写入,所以153作为从库同步154的数据很快,seconds_behind_master是0
接下来让大数据同事把写入减少时间间隔再观察一下是不是154和162的seconds_behind_master降下来了。
后面附上文章中说的排查mysql主从同步延时的排查方法
https://yq.aliyun.com/articles/505185
主从延时如果排查?
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双yes但是同步延时问题的更多相关文章
- MYSQL双主全库同步复制
环境: A.B两台服务器分别安装mysql-5.7.18服务端,配置成互为主从同步. linux系统版本为CentOS7 A服务器ip:192.168.1.7 主机名:test1 B服务器ip:1 ...
- MySQL双主(主主)架构方案
在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果是双主或者多主,就会增加mysql入 ...
- Keepalived+MySQL双主
一.Keepalived+MySQL Replication的应用场景 MySQL的高可用方案有cluster,MMM,MHA等,这些高可用方案都要三台服务器以上,成本有点高,今天介绍一个低成本高可用 ...
- MySQL双主一致性架构优化
一.双主保证高可用 MySQL数据库集群常使用一主多从,主从同步,读写分离的方式来扩充数据库的读性能,保证读库的高可用,但此时写库仍然是单点. 在一个MySQL数据库集群中可以设置两个主库,并设置双向 ...
- 【转】MySQL双主一致性架构优化
[原文]https://www.toutiao.com/i6594414914838725133/ 一.双主保证高可用 MySQL数据库集群常使用一主多从,主从同步,读写分离的方式来扩充数据库的读性能 ...
- Mysql双主操作
MySQL双主(主主)架构方案 在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果 ...
- Mysql双主加Keepalived+读写分离
一.MySQL于keepalived简介** 前言: 在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要 ...
- mysql双主模式方案
MySQL双主(主主)架构方案 在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果 ...
- 分布式数据存储 - MySQL双主复制
上篇文章<分布式数据存储 - MySQL主从复制>,我们说到MySQL主从复制很好的保障了从库,读的高可用性.so,问题来了: 1.针对主库,写的高可用性又是如何做到高可用性? 2.如果需 ...
随机推荐
- 3.创建一个pod应用
创建一个应用:k8s增删查改: pod创建:kubectl run nginx-deploy --image=nginx:1.14-alpine --port=80 --replicas=1 [roo ...
- 计算机组成原理 — FPGA 现场可编程门阵列
目录 文章目录 目录 FPGA FPGA 的应用场景 FPGA 的技术难点 FPGA 的工作原理 FPGA 的体系结构 FPGA 的开发 FPGA 的使用 FPGA 的优缺点 参考文档 FPGA FP ...
- Springboot入门5-项目打包部署(转载)
前言 本文主要介绍SpringBoot的一些打包事项和项目部署以及在其中遇到一些问题的解决方案. SpringBoot打包 在SpringBoot打包这块,我们就用之前的一个web项目来进行打包.首先 ...
- 远程访问禅道开源版数据库(基于docker)
navicat访问基于docker搭建的禅道的数据库,报错”2003 can't connect to MySQL server on '' (10061 'unknown error')“ 一.开启 ...
- python3 速查参考- python基础 9 -> MySQL基础概念、数据库create、alter、insert、update、delete、select等基础命令
前置步骤: 下载一个绿色版的mysql数据库客户端连接工具 :http://wosn.net/821.html mysql平台为win7(以后会有CentOS上的) 学习目的: 掌握数据库的基本概念, ...
- PJzhang:python基础进阶的10个疗程-one
猫宁!!! 课程导学 北京理工大学 国家精品在线开放课程 零基础.大学水平 100行左右的python可以做很多事情 编程是基本技能,体会思维 时间成本和收益的关系 每周5个小时 https://py ...
- 随机森林之oob的计算过程
随机森林有一个重要的优点就是,没有必要对它进行交叉验证或者用一个独立的测试集来获得误差的一个无偏估计.它可以在内部进行评估,也就是说在生成的过程中就可以对误差建立一个无偏估计. 随机森林在生成每颗决策 ...
- python实用小功能
正则匹配手机号码: regExp =r"^((13[0-9])|(15[^4])|(18[0-9])|(17[0-8])|(147)|(19[0-9]))\d{8}$"; 常用于用 ...
- JSP基础知识补充
<meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cac ...
- 计蒜客习题:蒜头君的积木 (状压DP 枚举子集)
问题描述 蒜头君酷爱搭积木,他用积木搭了 n 辆重量为 wi的小车和一艘最大载重量为 W 的小船,他想用这艘小船将 n 辆小车运输过河.每次小船运载的小车重量不能超过 W.另外,小船在运载小车时,每辆 ...