• events_statements_summary_by_digest 未正常记录分类sql


    1.服务器版本

    cat /etc/redhat-release 
    CentOS Linux release 7.4.1708 (Core)

    2.数据库版本

    mysql> select version();
    +------------+
    | version()  |
    +------------+
    | 5.7.36-log |
    +------------+
    1 row in set (0.00 sec)

    3.问题现象

    一主两从三个实例,假设A为主,B,C为A的从库。在B实例上通过如下语句能够查到当天有对test表的增加字段操作,但是在A,C实例上通过同样的语句确查不到同样的加字段语句。

    select DIGEST_TEXT,COUNT_STAR,FIRST_SEEN,LAST_SEEN from performance_schema.events_statements_summary_by_digest where lower(DIGEST_TEXT) like 'alter%test%';

    4.问题原因

    出现这种情况有两种可能

    1) 没有开启 statements_digest 功能

    1. mysql> select * from setup_consumers where NAME='statements_digest';
    2. +-------------------+---------+
    3. | NAME | ENABLED |
    4. +-------------------+---------+
    5. | statements_digest | YES |
    6. +-------------------+---------+
    7. #ENABLED 为 YES 表示开启了该功能

    2)performance_schema.events_statements_summary_by_digest 表已达到最大保存条数限制

    1. 下面是从库C上查询的结果(A实例一样的原因)
    2. mysql> show variables like 'performance_schema_digests_size';
    3. +---------------------------------+-------+
    4. | Variable_name | Value |
    5. +---------------------------------+-------+
    6. | performance_schema_digests_size | 10000 |
    7. +---------------------------------+-------+
    8. 1 row in set (0.00 sec)
    9. #该参数控制 performance_schema.events_statements_summary_by_digest 保存的最大记录数,超过该最大值,不会再保存新的sql语句分类
    10. mysql> select count(*) from performance_schema.events_statements_summary_by_digest;
    11. +----------+
    12. | count(*) |
    13. +----------+
    14. | 10000 |
    15. +----------+
    16. 1 row in set (0.02 sec)
    17. #该表已经达到指定的最大保存值
    18. mysql> show global status like 'Performance_schema_digest_lost';
    19. +--------------------------------+-----------+
    20. | Variable_name | Value |
    21. +--------------------------------+-----------+
    22. | Performance_schema_digest_lost | 170099501 |
    23. +--------------------------------+-----------+
    24. 1 row in set (0.01 sec)
    25. #该变量表示events_statements_summary_by_digest多少语句没有保存

    #本人遇到的问题就是 events_statements_summary_by_digest 已经存满了,导致新的sql分类被丢弃(按理说10000 已经是个挺大的数字了,基本够用,只能说当前环境的业务不同的sql类型太多了)

    5.问题处理

    找到原因,那处理起来就简单了。在主库truncate events_statements_summary_by_digest,重新记录

  • 相关阅读:
    计算机毕业设计SSM电影网站系统设计【附源码数据库】
    CentOS7命令
    [代码随想录]回溯、贪心算法篇
    flyway 社区版本使用团队(企业级)特性ignore-migration-patterns使用
    js实现广告条+缓冲效果/键盘事件实现小人跑步
    LeetCode77. Combinations
    系列七、线程8锁
    学生个人网页设计作品:旅游网页设计与实现——成都旅游网站4个页HTML+CSS web前端网页设计期末课程大作业 学生DW静态网页设计 学生个人网页设计作品
    电子制造行业的数字化转型突破点在哪?精益制造是关键
    数据结构入门 — 二叉树的概念、性质及结构
  • 原文地址:https://blog.csdn.net/shaochenshuo/article/details/127749531