• pt-online-schema-change导致锁等待Waiting for table metadata lock 引发线上小事故(异常)


    #####################################

    背景:

       业务对mysql集群的一个从库实例的dashboard_scheduled_history表发起了一个慢查询,有多慢呢?已经执行了一个半小时还没执行完,这个表是个大表,有4000多万行,然后我就执行了pt-online-schema-change对这个表添加索引,再然后就去上了个厕所。

    问题:

    慢查询导致pt-online-schema-change工具一直无法获得元数据锁,该工具一直处于Waiting for table metadata lock状态,导致该从库实例主从延迟越来越大,业务写入的数据,在该从库上查不到从而导致业务异常。

    临时解决:

    1)踢掉该从库实例的流量;
    
    2)kill掉业务慢查询;
    
    3)执行pt-online-schema-change进行修改表结构;
    
    4)当该从库实例追上主库后,再将流量打到该从库实例;

    如何永久性解决这个问题呢?

    1)dba执行ddl的时候,还是不能大意,需要关注执行状况,发现一直没动静,估计就是拿不到元数据锁了,需要先kill掉慢查询或未提交的事务
    
    2)执行pt-online-schema-change工具后,应该自动化跟踪该工具的执行状态,一旦发现该工具处于Waiting for table metadata lock状态,就kill掉这个工具的进程,直接返回

       

    ########################################

    igoodful@qq.com
  • 相关阅读:
    关闭ThinkPHP Runtime Log
    Robots协议的写法
    Getif工具获取 交换机的OID/Zabbix设置
    命令方式启动 vmware 虚拟机
    wireshark 抓包使用教程
    Sniffer 交换机端口抓包
    H3C 开启ssh/snmp
    Apache Superset BI
    洛谷5588 小猪佩奇爬树
    luogu5536 核心城市
  • 原文地址:https://www.cnblogs.com/igoodful/p/15244186.html
Copyright © 2020-2023  润新知