MySQL出现运行时间过长的SQL(慢SQL),会使线上数据库压力倍增,影响业务稳定性及可用性
 
生产环境数据库出现运行时间过长的SQL,会影响数据库性能,如果同时出现多个类似SQL,则会影响数据库的可用性,从而导致业务不可用或体验差的情况。
在出现此类SQL的情况下,DBA人工干预需要一定的时间,在此期间如果SQL量比较大,且业务不停请求时,人工干预比较麻烦,无法及时处理。因此需要借助工具进行监控并自动kill超预期执行的SQL。

工具简介

pt-kill的主要使用场景简介如下
  1. 查杀select大于30s的会话
# 只打印-查杀select大于30s的会话
# 执行杀操作-查杀select大于30s的会话
  1. 查杀某IP来源的会话
# 只打印-查杀某IP来源的会话
# 执行杀操作-查杀某IP来源的会话
  1. 查杀指定用户的会话
# 只打印-查杀指定用户的会话
# 执行杀操作-查杀指定用户的会话
  1. 杀掉正在进行指定操作的sql
# 只打印-杀掉正在进行filesort的sql
# 执行杀操作-杀掉正在进行filesort的sql
 
# 只打印
# 执行杀操作

部署计划

对线上MySQL数据库部署pt-kill工具,并每分钟运行kill超过30s的SQL,并将查杀结果记录在日志中,定期推送kill的SQL至业务方

相关文章:

  • 2021-07-14
  • 2021-08-19
  • 2022-12-23
  • 2021-11-26
  • 2021-09-15
  • 2021-08-12
  • 2021-12-04
猜你喜欢
  • 2021-08-03
  • 2021-10-04
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案