文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

本篇内容介绍了“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重启的原因是什么?

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

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

了解Binlog GTID恢复

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

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

binlog_gtid_simple_recovery = FALSE时:

要计算gtid_executed:

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

同样,要计算gtid_purged:

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

binlog_gtid_simple_recovery = TRUE时:

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

因此,对于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启动时间慢是什么原因”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯