返回顶部
首页 > 资讯 > 数据库 >GTID中MySQL启动时间慢是什么原因
  • 879
分享到

GTID中MySQL启动时间慢是什么原因

2024-04-02 19:04:59 879人浏览 泡泡鱼
摘要

本篇内容介绍了“GTID中Mysql启动时间慢是什么原因”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我们

本篇内容介绍了“GTID中Mysql启动时间慢是什么原因”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

我们如何找到问题

我们正在研究在启用GTID模式的低端,基于磁盘的mysql 5.7.21部署中缓慢的Mysql启动时间。该系统是主从对的一部分,并且处于适度的写入负载下。在计划维护期间重新启动时,我们注意到数据库服务器需要5-10分钟才能启动并开始接受连接。这种延迟没有意义,所以我们开始调查。

调试慢速MySQL启动时间

我们使用流行的Percona工具pt-ioprofile来查看数据库正在做什么。pt-ioprofile是Percona 用于调试MySQL问题的流行工具包中非常重要的实用程序,您可以在其文档中看到完整的功能列表。pt-ioprofile工具使用strace和lsof来监视进程的I / O并打印出一个文件和I / O活动表。

所以,我们启动MySQL,等待mysqld进程生成,并启动pt-ioprofile以查看问题可能是:

# PT - ioprofile  - 个人资料- 过程 的mysqld  - 运行- 时间 200
周二 年10月 9  15:42:24  UTC  2018
跟踪 进程 ID  18677
total       pread        read      pwrite       write       fsync   fdatasync        open       close    getdents       lseek       fcntl  filename
...
216.550641    0.000000   216.550565    0.000000    0.000000    0.000000    0.000000    0.000015    0.000040    0.000000    0.000021    0.000000  / mysql_data / binlogs / mysql - bin。000014
...

你的MySQL重启的原因是什么?

在多次运行时,我们观察到以下情况:

  • mysqld进程大部分时间都在阅读最新的二进制日志文件。即使服务器已经正常停止并且不需要崩溃恢复等,情况也是如此。

  • 服务器也花了相当多的时间加载InnoDB数据文件,但与读取最新的二进制日志文件所花费的时间相比,这个时间要小得多。

  • 如果服务器立即重新启动,则后续重启会更快。

  • 由于数据库关闭会刷新二进制日志并在启动时创建一个新日志,因此我们进行了另一项实验 - 在关闭服务器之前,我们刷新了二进制日志。后续服务器启动再次快速。

这些观察清楚地指出MySQL正在花费大量时间阅读最新的二进制日志文件。如果文件很小,就像在关机之前刷新日志文件那样,启动速度很快。

了解Binlog GTID恢复

事实证明,为了填充gtid_executed和gtid_purged的值,MySQL服务器必须解析二进制日志文件。

以下是基于FALSE或TRUE读数的MySQL 5.7 文档方法建议的摘要:

binlog_gtid_simple_recovery = FALSE时:

要计算gtid_executed:

  • 从最新的迭代二进制日志文件,停止在具有Previous_gtids_log_event条目的第一个文件。

  • 从此二进制日志文件中使用Previous_gtids_log_eventGtid_log_events中的所有GTID ,并在内部存储此GTID集。它被称为gtids_in_binlog。

  • 价值gtid_executed被计算为工会gtids_in_binlog并在该GTIDs mysql.gtid_executed表

如果存在大量没有GTID的二进制日志文件(例如,在gtid_mode = OFF 时创建),则此过程可能非常耗时。

同样,要计算gtid_purged:

  • 迭代从最旧到最新的二进制日志文件,停止在包含非空的Previous_gtids_log_event(至少有一个GTID)或至少有一个Gtid_log_event的第一个二进制日志中。

  • 从此文件中读取Previous_gtids_log_event。计算内部变量gtids_in_binlog_not_purged,因为此gTID集从gtids_in_binlog中减去

  • 价值gtid_purged设置为gtid_executed,减去gtids_in_binlog_not_purged

因此,这构成了我们理解旧版本中工作原理的基础。但是,当binlog_gtid_simple_recovery为TRUE 时,可以进行某些优化。我们感兴趣的是这种情况:

binlog_gtid_simple_recovery = TRUE时:

(注意,这是MySQL 5.7.7及更高版本中的默认设置)

  • 只读最旧和最新的二进制日志文件。

  • 从最早的二进制日志文件中找到的Previous_gtids_log_eventGtid_log_event计算gtid_purged

  • 从最新的二进制日志文件中找到的Previous_gtids_log_eventGtid_log_event计算gtid_executed

  • 因此,在服务器重新启动或清除二进制日志期间,读取两个二进制日志文件

因此,对于MySQL 5.7.7及更高版本,在系统启动期间始终读取最新和旧的二进制日志文件,以正确初始化GTID系统变量。读取最旧的二进制日志文件并不昂贵,因为MySQL正在寻找的事件,Previous_gtids_log_event,始终是二进制日志文件中的第一个事件。

但是,为了正确计算gtid_executed,服务器必须读取整个最新的二进制日志文件并收集该文件中的所有事件。因此,系统启动时间与最新二进制日志文件的大小成正比。

请注意,当binlog_gtid_simple_recovery为FALSE 时,情况会更糟。由于它不再是最近版本中的默认选项,因此并不是一个值得关注的问题。

如何解决您的慢启动时间

了解了我们遇到的问题的原因,我们决定的解决方案相当明显 - 减少二进制日志文件的大小。二进制日志文件的默认大小为1GB。在启动期间解析此大小的文件需要花费时间,因此将max_binlog_size的值减小到较低值是有意义的。

如果不能减小二进制日志文件的大小,那么在维护关闭mysqld进程之前刷新二进制日志文件有助于减少binlog GTID恢复时间。

“GTID中MySQL启动时间慢是什么原因”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: GTID中MySQL启动时间慢是什么原因

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

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

猜你喜欢
  • GTID中MySQL启动时间慢是什么原因
    本篇内容介绍了“GTID中MySQL启动时间慢是什么原因”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我们...
    99+
    2024-04-02
  • windows操作系统启动慢的原因是什么
    本篇文章为大家展示了windows操作系统启动慢的原因是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。都希望电脑一开机就可以立即进入Windows系统而不用等待,但由于种种原因常常未能如愿,甚至...
    99+
    2023-06-14
  • mysql启动失败的原因是什么
    本篇内容主要讲解“mysql启动失败的原因是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql启动失败的原因是什么”吧!一、一站式解决 1. 问题分析定位# 找到M...
    99+
    2023-06-20
  • 电脑启动时黑屏原因是什么
    这篇“电脑启动时黑屏原因是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“电脑启动时黑屏原因是什么”文章吧。电脑启动时黑屏...
    99+
    2023-07-01
  • linux启动很慢的原因及解决方法是什么
    Linux启动慢的原因有很多,常见的包括:1. 系统服务过多:启动时会加载很多系统服务和进程,如果系统服务过多,会导致启动时间延长。...
    99+
    2023-08-30
    linux
  • MySQL5.7慢查询日志时间与系统时间差8小时原因是什么
    这篇文章主要为大家展示了“MySQL5.7慢查询日志时间与系统时间差8小时原因是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL5.7慢查询日志时间...
    99+
    2024-04-02
  • springboot启动时没有日志的原因是什么
    这篇文章主要介绍“springboot启动时没有日志的原因是什么”,在日常操作中,相信很多人在springboot启动时没有日志的原因是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”springboot启...
    99+
    2023-06-20
  • ecshop慢的原因是什么
    ecshop慢的原因:1、服务器配置不当,ecshop的速度和性能受到服务器配置的影响;2、数据库优化不足,数据库是ECShop的核心组件,存储和处理所有商品信息、订单数据等;3、图片和静态资源过多或过大,如果网页中包含大量图片或其他静态资...
    99+
    2023-07-13
  • Tomcat运行一段时间后访问变慢的原因是什么
    Tomcat运行一段时间后访问变慢的原因可能有以下几点: 内存泄漏:Tomcat运行一段时间后,可能会出现内存泄漏的情况,导致内...
    99+
    2023-10-23
    Tomcat
  • MySQL慢SQL语句常见原因是什么
    这篇文章主要为大家展示了“MySQL慢SQL语句常见原因是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL慢SQL语句常见原因是什么”这篇文章吧。1...
    99+
    2024-04-02
  • tomcat启动不起来是什么原因
    本篇内容主要讲解“tomcat启动不起来是什么原因”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“tomcat启动不起来是什么原因”吧!目录现象: 端口占用:文件拼写错误:现象:  tomcat安...
    99+
    2023-06-20
  • count(*)很慢的原因是什么
    这篇文章主要介绍“count(*)很慢的原因是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“count(*)很慢的原因是什么”文章能帮助大家解决问题。以下所有的...
    99+
    2023-01-31
  • MySQL启动失败的原因是什么及如何解决
    本篇内容主要讲解“MySQL启动失败的原因是什么及如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL启动失败的原因是什么及如何解决”吧!此处我的电...
    99+
    2024-04-02
  • MySQL启动不了的原因及解决方法是什么
    MySQL启动不了的原因可能有很多,常见的原因及解决方法如下: 端口被占用:可能是由于其他程序占用了MySQL默认的端口(330...
    99+
    2023-10-24
    MySQL
  • mysql中gtid指的是什么
    在MySQL中,GTID(Global Transaction Identifier)是一种全局事务标识符。它是由MySQL服务器自...
    99+
    2024-04-09
    mysql
  • SQL查询慢的原因是什么
    这篇文章主要介绍“SQL查询慢的原因是什么”,在日常操作中,相信很多人在SQL查询慢的原因是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL查询慢的原因是什么”的疑惑...
    99+
    2024-04-02
  • 网页打开慢是什么原因
    网页打开慢可能有很多原因,以下是一些常见的原因:1. 网络连接问题:网络连接不稳定、带宽限制、高网络延迟等都可能导致网页打开慢。2....
    99+
    2023-08-23
    原因
  • linux系统时间总变的原因是什么
    这篇文章主要介绍了linux系统时间总变的原因是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇linux系统时间总变的原因是什么文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2023-03-19
    linux
  • 云服务器启动失败是什么原因
    云服务器启动失败有以下几个常见的原因本机网络的连通性问题可以通过本地 Ping 命令,测试网络的连通性,判断是本地网络问题还是云服务器端问题。云服务器远程桌面配置未开启可在在服务器中打开控制面板,进入“系统和安全”选项;点击“允许远程访问”...
    99+
    2024-04-02
  • 云服务器自动重启是什么原因
    云服务器出现自动重启的原因有以下几种常见原因:机房环境导致服务器cpu温度过高,导致服务器自动关机;系统原因,系统损坏或缺失系统文件导致自动重启,可以修复系统或者重新做系统;服务器中毒导致自动重启,安装杀毒软件,进行杀毒处理;系统资源耗尽导...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作