首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL组复制-如何查找导致复制滞后的查询?

MySQL组复制-如何查找导致复制滞后的查询?
EN

Database Administration用户
提问于 2021-03-03 20:46:35
回答 1查看 391关注 0票数 0

如何确定哪些查询导致一组运行组复制的MySQL服务器存在复制滞后?

我们有一个包含9台服务器的MySQL组复制集群,目前我们正在经历复制滞后(即几个服务器在MySQL中的高值)。我们使用的是MySQL社区版本8.0.19。

我们注意到,无论是慢速查询还是频繁查询,都不一定与服务器之间的延迟相关。我们还注意到,我们在应用程序中拥有的一些特定的连接正在导致滞后峰值,并且,一旦我们删除它们,滞后就会减少。然而,并不是所有的联接都是这样。

是否有一种工具或方法可以用来查找导致延迟的查询?

EN

回答 1

Database Administration用户

发布于 2021-03-04 00:55:28

在这两台机器上打开慢速日志。您使用的是什么版本的MySQL?以下是一个相对新版本的良好设置:

代码语言:javascript
复制
log_output = FILE
slow_query_log = ON
slow_query_log_file = (fullpath to some file)
long_query_time = 1
log_slow_admin_statements = ON
log_queries_not_using_indexes = OFF
log_slow_slave_statements
log_slow_extra = ON

更多:http://mysql.rjweb.org/doc.php/mysql_analysis#slow_查询_和_慢速日志

您所看到的情况的一个可能原因是:一个需要一些时间并击中tableA的ALTER将被复制。与此同时,tableA正在发生其他事情(读或写)。上述设置可能会捕捉到ALTER。

在慢速日志中查找(但很难看到)的另一件事是:一堆查询在同一秒钟左右结束。这通常意味着他们中的一个人花了很长时间来阻止其他人(不管是直接还是间接的)。

无论如何,使用pt-query-digest;它的默认排序是将“最差”查询放在第一位。然后..。

  • 阻滞剂可能是最早的几个。
  • 前几个问题可能是您应该改进的查询--更好的索引、重新编排等等。
  • 有时候,“最坏”的查询是一个非常快的查询,被阻塞,也就是说它是一个“受害者”,而不是一个“恶棍”。例子:UPDATE ... WHERE primary_key = 123是秒(S),甚至是分钟(S),而不是毫秒。
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/286396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档