iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >分析数据库Seconds_Behind_Master延迟的原因
  • 568
分享到

分析数据库Seconds_Behind_Master延迟的原因

2024-04-02 19:04:59 568人浏览 安东尼
摘要

本篇内容主要讲解“分析数据库Seconds_Behind_Master延迟的原因”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分析数据库Seconds_Behi

本篇内容主要讲解“分析数据库Seconds_Behind_Master延迟的原因”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分析数据库Seconds_Behind_Master延迟的原因”吧!

一、总结

(1)第一类:

这一类延迟情况可能造成服务器有较高的负载,可能是CPU/io的负载。因为从库在实际执行Event,如果我们服务器的负载比较高应该考虑这几种情况。

  • 事务造成的延迟,其延迟会不会从0开始增加,而是直接从主库执行了多久开始。比如主库执行这个事务花费的20秒,要么延迟就会从20开始,可以自己细心观察一下很容易看到。这是因为Query Event中没有准确的执行时间。

  • 大表DDL造成的延迟,其延迟会从0开始增加,因为Query Event记录了准确的执行时间

  • 表没有合理的使用主键或者唯一键造成的延迟。这种情况不要以为设置slave_rows_search_alGorithms参数为 INDEX_SCAN,HASH_SCAN就可以完全解决问题。

  • 由于参数sync_relay_log,sync_master_info,sync_relay_log_info不合理导致,特别是sync_relay_log会极大的影响从库的性能。原因我们在第26节进行过描述,因为sync_relay_log设置为1会导致大量relay log刷盘操作。

  • 是否从库开启了记录binary log功能即log_slave_updates参数开启,如果不是必要可以关闭掉。这种情况我遇到很多次了。

(2)第二类:

这一类延迟情况往往不会造成服务器有较高的负载。它们要么没有实际的执行Event,要么就是做了特殊的操作造成的。

  • 长期未提交的事务可能造成延迟瞬间增加,因为GTID_EVENT和XID_EVENT是提交时间其他Event是命令发起的时间。这个我们在第27节中举例描述过了。

  • Innodb层的行造成的延迟,这种是在从库有修改操作并且和sql线程修改的数据有冲突的情况下造成的,因为我们前面23节说过SQL线程执行Event也会开启事务和获取行锁,下面我们进行测试

  • Mysql层的MDL LOCK造成的延迟,这种情况可能是由于SQL线程执行某些DDL操作但是从库上做了锁表操作造成。

  • MTS中不合理的设置参数slave_checkpoint_period参数导致。

  • 在从库运行期间手动改大了从库服务器时间。

二、相关测试

因为上面的延迟情形很多我们都已经测试和讲述过了。下面我们测试锁造成的延迟情形。

(1)Innodb层的行锁造成的延迟

这个很容测试,我只要先在从库做一个事务和SQL线程修改的数据相同即可以出现,大概测试如下:

从库:
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql> delete from tmpk;
Query OK, 4 rows affected (0.00 sec)
不要提交
主库执行同样的语句
mysql> delete from tmpk;
Query OK, 4 rows affected (0.30 sec)

这个时候你会观察到延迟如下:

分析数据库Seconds_Behind_Master延迟的原因

如果查看sys.innodb_lock_waits能看到如下的结果:

分析数据库Seconds_Behind_Master延迟的原因

当然如果查看INNODB_TRX也可以观察到事务的存在,这里就不截图了,大家可以自己试试。

(2)MySQL层的MDL LOCK造成的延迟

这种情况也非常容易测试,我们只需要开启一个事务做一个select,然后主库对同样的表做DDL就可以出现如下:

从库:
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql> 
mysql> 
mysql> select * from tkkk limit 1;
+------+------+------+
| a    | b    | c    |
+------+------+------+
|    3 |    3 |  100 |
+------+------+------+
1 row in set (0.00 sec)
不要提交,表上MDL LOCK就不会释放
主库执行语句:
mysql> alter table tmpk add testc int ;
Query OK, 0 rows affected (1.14 sec)
Records: 0  Duplicates: 0  Warnings: 0

这个时候你将会看到如下的信息:

分析数据库Seconds_Behind_Master延迟的原因

我们可以通过state看到这是等待MDL lock获取而导致的延迟

三、总结

通过整个系列,我们应该清楚了Seconds_Behind_Master计算的方法,同时如果出现了延迟,我们首先查看从库是否有负载,根据是否有负载进行区别对待,注意这里的负载一定要使用top -H查看io/sql/woker线程的负载。我曾不止一次的遇到朋友问我延迟问题,当我问他负载如何的时候他告诉我负载不高啊整体负载也就不到2,这里我们应该注意的是对于一个线程只能使用到一个CPU核,虽然整体负载不到2但是可能io/sql/worker线程已经跑满了,实际上负载已经很高了,我们来看下面的这个截图就是sql线程负载高的截图如下:

分析数据库Seconds_Behind_Master延迟的原因

这个截图我们发现虽然整体负载不高在1多一点,但是Lwp号20092的线程已经跑满了,这个线程就是我们的sql线程,这个时候出现延迟是很可能的,这个截图正是来自一个没有合理使用主键或者唯一键造成的延迟的案例。

我们查看CPU负载应该使用top -H去查看,查看io负载可以使用iotop,iOStat等工具。我需要强调一下看MySQL负载的时候我们必须用线程的眼光去看。

到此,相信大家对“分析数据库Seconds_Behind_Master延迟的原因”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

您可能感兴趣的文档:

--结束END--

本文标题: 分析数据库Seconds_Behind_Master延迟的原因

本文链接: https://www.lsjlt.com/news/63433.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 分析数据库Seconds_Behind_Master延迟的原因
    本篇内容主要讲解“分析数据库Seconds_Behind_Master延迟的原因”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分析数据库Seconds_Behi...
    99+
    2022-10-18
  • MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
    目录问题描述原理简析问题分析拓展一下总结一下问题描述 用户在主库上执行了一个 alter 操作,持续约一小时。操作完成之后,从库发现存在同步延迟,但是监控图表中的 Seconds_Behind_Master 指标显...
    99+
    2022-05-16
    MySQL 同步延迟 MySQL Seconds_Behind_Master
  • 亚马逊服务器延迟高的原因分析
    网络问题:亚马逊服务器通常都依赖于互联网。如果网络状况不稳定或者出现问题,服务器就可能会出现延迟高的情况。 内存和磁盘空间不足:如果应用程序需要的内存或磁盘空间不足,就会导致服务器出现延迟高的情况。 处理器性能不足:处理器性能不足会导致服...
    99+
    2023-10-27
    亚马逊 原因 服务器
  • MySQL从库复制延迟的原因
    本篇内容介绍了“MySQL从库复制延迟的原因”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、从库复制延迟问题可能的原因如下(1)主从服务器...
    99+
    2023-06-06
  • 亚马逊服务器延迟高的原因分析报告
    负载均衡器故障:负载均衡器是亚马逊服务器的重要组件,如果它出现故障,可能会导致服务器出现性能问题。可以通过检查连接是否正常、查看配置是否正确、检查服务器日志等方法来诊断负载均衡器是否出现故障。 内存问题:内存是亚马逊服务器的核心资源,如果...
    99+
    2023-10-27
    亚马逊 分析报告 原因
  • 阿里云数据库延迟严重的原因及其解决办法
    在当今信息化社会中,数据库已成为数据存储和管理的重要工具。阿里云作为国内知名的云计算服务提供商,其数据库服务在很多方面都有着显著的优势。然而,最近有用户反映阿里云数据库延迟严重的问题,这无疑对其服务质量提出了挑战。本文将详细分析阿里云数据库...
    99+
    2023-11-16
    阿里 解决办法 原因
  • 阿里云数据库写入延迟问的原因及解决方法
    简介:阿里云数据库作为企业级数据库服务,在实际应用中可能会遇到写入延迟的问题。本文将分析该问题可能的原因,并提供相应的解决方法,帮助用户更好地使用阿里云数据库。 阿里云数据库写入延迟的原因及解决方法数据库写入延迟是指在向数据库中写入数据时,...
    99+
    2023-12-29
    阿里 解决方法 原因
  • redis缓存延时双删的原因分析
    缓存为啥是删除,而不是更新? 如果是更新,存在分布式事务问题,可能出现修改了缓存,数据库修改失败的情况。只是删除缓存的话,就算数据库修改失败,下次查询会直接取数据库的数据,也不会出现脏数据。 延时双删是什么? 就是在增删...
    99+
    2022-08-16
    redis缓存延时双删 redis缓存延时
  • mysql复制slave服务器数据延迟的原因与解决方法
    mysql复制slave服务器数据延迟的原因与解决方法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。复制slave服务器数据延...
    99+
    2022-10-18
  • java并发中DelayQueue延迟队列原理的示例分析
    这篇文章给大家分享的是有关java并发中DelayQueue延迟队列原理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。介绍DelayQueue队列是一个延迟队列,DelayQueue中存放的元素必须实现...
    99+
    2023-06-15
  • oracle dg 延迟120分钟主库同步数据到备份库
    延时测试(备份库执行) alter database recover managed standby database delay 120 disconnect from session;  &n...
    99+
    2022-10-18
  • 【华为云技术分享】数据库开发:MySQL Seconds_Behind_Master简要分析
    【摘要】对于mysql主备实例,seconds_behind_master是衡量master与slave之间延时的一个重要参数。通过在slave上执行"show slave status;"可以获取seconds_behind_mas...
    99+
    2017-10-30
    【华为云技术分享】数据库开发:MySQL Seconds_Behind_Master简要分析
  • Go语言函数的延迟调用实例分析
    今天小编给大家分享一下Go语言函数的延迟调用实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。基本功能在以下这段代码中,...
    99+
    2023-07-02
  • Oracle数据库密码的延迟验证方式
    本篇内容主要讲解“Oracle数据库密码的延迟验证方式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle数据库密码的延迟验证方式”吧!密码延迟验证官方文...
    99+
    2022-10-18
  • mysql主从同步原理、配置以及延迟的示例分析
    小编给大家分享一下mysql主从同步原理、配置以及延迟的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!mysql的主从同步原理、主从同步配置、主从同步延迟,首先我们先来了解什么是主...
    99+
    2022-10-18
  • MySQL中延迟问题和数据刷盘策略流程的示例分析
    这篇文章给大家分享的是有关MySQL中延迟问题和数据刷盘策略流程的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、MySQL复制流程官方文档流程如下:MySQL延迟问题...
    99+
    2022-10-18
  • 阿里云服务器数据库链接失败的原因分析
    数据库链接失败是许多开发者在使用阿里云服务器过程中经常遇到的问题,本文将从以下几个方面进行详细的分析:网络连接问题、数据库配置错误、数据库服务中断、数据库版本不匹配、权限问题等,并提供相应的解决方法。 一、网络连接问题阿里云服务器数据库链接...
    99+
    2023-11-14
    阿里 原因 链接
  • sql server 附加数据库出错代码5120/948原因分析。
    写于工作日志用sql server 2008 附加一个数据库mdf文件时第一次报错,代码5120。查看相关文档,表示权限不够。然后在需要附加的文件上及日志ldf文件,右击 属性-安全,将认证用户权限勾选为全...
    99+
    2022-10-18
  • MySQL 5.6 延迟复制,误操作后的数据库恢复
    MySQL 5.6 支持延迟复制,可以在Slave服务器指定一个延迟的值。默认值为0秒。使用MASTER_DELAY 选项为CHANGE MASTERTO 设置N秒延迟。 1. 下面来实...
    99+
    2022-10-18
  • 流量和延迟减半!挑战分布式数据库 TiDB 跨数据中心难题
    众所周知,在对可用性要求极高的行业领域(比如金融、通信),分布式数据库需要跨地域的在多个数据中心之间建立容灾以及多活的系统架构,同时需要保持数据完整可用。但这种方式同时也带来了一些问题: 跨地域的网络延迟非常高,通常在几十毫秒左右,洲际间...
    99+
    2017-01-21
    流量和延迟减半!挑战分布式数据库 TiDB 跨数据中心难题
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作