今天发现在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但是同步延时问题的更多相关文章

  1. MYSQL双主全库同步复制

    环境: A.B两台服务器分别安装mysql-5.7.18服务端,配置成互为主从同步. linux系统版本为CentOS7 A服务器ip:192.168.1.7   主机名:test1 B服务器ip:1 ...

  2. MySQL双主(主主)架构方案

    在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果是双主或者多主,就会增加mysql入 ...

  3. Keepalived+MySQL双主

    一.Keepalived+MySQL Replication的应用场景 MySQL的高可用方案有cluster,MMM,MHA等,这些高可用方案都要三台服务器以上,成本有点高,今天介绍一个低成本高可用 ...

  4. MySQL双主一致性架构优化

    一.双主保证高可用 MySQL数据库集群常使用一主多从,主从同步,读写分离的方式来扩充数据库的读性能,保证读库的高可用,但此时写库仍然是单点. 在一个MySQL数据库集群中可以设置两个主库,并设置双向 ...

  5. 【转】MySQL双主一致性架构优化

    [原文]https://www.toutiao.com/i6594414914838725133/ 一.双主保证高可用 MySQL数据库集群常使用一主多从,主从同步,读写分离的方式来扩充数据库的读性能 ...

  6. Mysql双主操作

    MySQL双主(主主)架构方案   在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果 ...

  7. Mysql双主加Keepalived+读写分离

    一.MySQL于keepalived简介** 前言: 在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要 ...

  8. mysql双主模式方案

    MySQL双主(主主)架构方案   在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果 ...

  9. 分布式数据存储 - MySQL双主复制

    上篇文章<分布式数据存储 - MySQL主从复制>,我们说到MySQL主从复制很好的保障了从库,读的高可用性.so,问题来了: 1.针对主库,写的高可用性又是如何做到高可用性? 2.如果需 ...

随机推荐

  1. Android RecyclerView实现加载多种条目类型

    今天咱们是用RecyclerView来实现这个多种Item的加载. 其实最关键的是要复写RecyclerView的Adapter中的getItemViewType()方法 这个方法就根据条件返回条目的 ...

  2. Going Deeper with Convolutions阅读摘要

      论文链接:Going deeper with convolutions 代码下载: Abstract We propose a deep convolutional neural network ...

  3. docker 管理应用程序数据和网络管理

    Volume和Bind Mount Docker提供三种不同方式将数据从宿主机挂载到容器中:volumes,bind mounts和tmpfs volumes:Docker管理宿主机文件系统的一部分( ...

  4. java代码实现简体繁体转换

    汉字分为简体和繁体字,这是众所周知的,虽然繁体字中国大陆这边用的并不会太多,但时不时的还是会使用到.那么,如何做到简体字和繁体字的转换呢?其实很简单,这里附上一个java版本的简繁体转换,用网上找的接 ...

  5. R语言与概率统计(五) 聚类分析

    #########################################0808聚类分析 X<-data.frame( x1=c(2959.19, 2459.77, 1495.63, ...

  6. pageoffice实现网页打开编辑保存word文档(基于SSM框架)

    pageoffice是一款网页集成word.excel...等office工具 并不免费,但可以试用练习 SSM框架搭建过程就省略了 注意:由于谷歌/火狐升级,不支持插件嵌入,建议使用POBrowse ...

  7. A simple dynamic library implemented in C# 4.0 to deal with XML structure

    https://github.com/cardinals/XmlToObjectParser A simple dynamic library implemented in C# 4.0 to dea ...

  8. 搭建hadoop2.4.1

    前期准备: 1.系统基本形况: ip hostname role server loginName 192.168.1.101 h1 NameNode,ResourceManager centos7_ ...

  9. lamp的动静分离部署

    一.lamp分离部署工作图 二.LAMP的安装与配置 1.环境准备 2.对 PHP 服务器进行部署 #以下为安装PHP及其依赖 [root@php ~ ]# .tar.gz -C /usr/src [ ...

  10. LeetCode刷题4——子集

    一.要求 二.知识点 1.回溯算法 回溯算法相当于穷举法加剪枝,回溯算法总是和深度优先同时出现的,采用深度优先策略回溯到根,且根节点的所有子树都被搜索一遍才结束,并剪掉不符合要求的结果 三.解题思路 ...