mysql 架构~MGR监控手段


一 简介 今天咱们来聊聊MGR的监控
 二 监控 方面: 1 节点mysql进程监控
                       2 节点mysql复制进程的监控
                       3 节点是否为主的监控
                        4 节点延迟事务的监控
三 方法:

      一 经过proxysql对MGR功能的支持,采用其中的sql就可以创建常用的监控表
               1 相关表:gr_member_routing_candidate_status
                    viable_candidate //节点的状态,当复制停止时此值会异常
                    read_only // 主节点时此值会为OFF
                    transactions_behind //可以理解为等待应用事务的延迟
                    transactions_to_cert//可以理解为等待通过验证的事务
     二 实现的一些原理
          1 SELECT Received_transaction_set FROM performance_schema.replication_connection_status WHERE Channel_name = 'group_replication_applier'//接收到的GTID   
             select @@global.GTID_EXECUTED;//执行的GTID
             接收到的-执行的 就是延迟了 也即是 transactions_behind
         2 SELECT (SELECT GROUP_CONCAT(variable_value) FROM
            performance_schema.global_variables WHERE variable_name IN ('read_only',
            'super_read_only')) != 'OFF,OFF'), 'YES', 'NO') as read_only
            是否为只读 也即是 read_only
        3 IF( MEMBER_STATE='ONLINE' AND ((SELECT COUNT(*) FROM
           performance_schema.replication_group_members WHERE MEMBER_STATE != 'ONLINE') >=
          ((SELECT COUNT(*) FROM performance_schema.replication_group_members)/2) = 0
           此为判断NODE是否正常 也即是viable_candidate
        4 select COUNT_TRANSACTIONS_IN_QUEUE from replication_group_member_stats
        此值为transactions_to_cert
四 总结:我们可以发现 proxysql此视图的编写时基于对performance_schema相关表的灵活组合查询运用的,我们即便不用proxysql,也可以根据此表进行有效的监控,相关创建sql可以在github上找到

猜你喜欢

转载自www.cnblogs.com/danhuangpai/p/9172866.html