如何有效监控MySQL多数据库实例中支持的事件?

MySQL多数据库实例的事件监控支持多种事件,包括登录失败、创建用户、删除用户、修改密码等安全事件,以及表的创建、删除、修改等DDL操作。还可以监控查询、更新、插入、删除等DML操作。

MySQL多数据库实例的事件监控支持,主要是指通过MySQL的企业级监控工具——Performance Schema和sys schema来实现对MySQL实例的实时监控。

mysql 多数据库实例_事件监控支持的事件说明
(图片来源网络,侵删)

Performance Schema

Performance Schema是MySQL的一个性能监测工具,它提供了一个低开销的方法来监视MySQL服务器执行的各种类型的事件,包括查询执行、InnoDB存储引擎操作、互斥锁、内存分配等。

主要事件类别:

**Concurrency_系列监控并发相关的事件,如锁等待、死锁检测等。

**Memory_系列监控内存使用情况,例如内存分配和释放。

mysql 多数据库实例_事件监控支持的事件说明
(图片来源网络,侵删)

**Statements_系列监控SQL语句执行情况,记录每条SQL语句的执行时间、错误次数等。

**Transactions_系列监控事务相关的事件,如事务提交和回滚。

**Mutex_和 RWLock_* 系列监控互斥量和读写锁的使用情况。

sys schema

sys schema是一个帮助用户更好地理解和优化MySQL, MariaDB, and Percona Server的系统视图集合,它提供了一种机制来简化查询Performance Schema数据的过程。

mysql 多数据库实例_事件监控支持的事件说明
(图片来源网络,侵删)

常用视图示例:

statements_summary_by_digest:显示每个唯一查询摘要的性能数据汇总。

statements_summary_by_account_by_event_name:按用户账户和事件名称分组的语句摘要。

innodb_buffer_stats_by_schema_and_index:按模式和索引分组的InnoDB缓冲池统计信息。

memory_by_thread_by_current_bytes:按当前字节大小排序的线程内存使用情况。

memory_global_by_current_bytes:全局内存使用情况。

配置与启用

要启用这些监控功能,需要在MySQL配置文件中进行设置,并重启服务。

[mysqld]
performance_schema=ON
启用特定消费者,如events_statements_history_long
performance_schema_consumer_events_statements_history_long=ON
启用特定表,如events_statements_summary_by_digest
performance_schema_table_map=events_statements_summary_by_digest=CONSUMER

可以使用如下命令查看当前已启用的消费者和表:

SELECT * FROM performance_schema.setup_consumers;
SELECT * FROM performance_schema.setup_tables;

问题与解答

Q1: 如何在不重启MySQL的情况下动态开启或关闭Performance Schema中的事件?

A1: 你可以使用SET命令动态地更改performance_schema的配置。

SET GLOBAL performance_schema='ON';
SET GLOBAL performance_schema_consumer_enabled='yes';

Q2: 如何限制Performance Schema占用的资源?

A2: 可以通过设置performance_schema_instrument变量来控制哪些事件被监控,进而控制资源消耗。

SET PERSIST GLOBAL performance_schema_instrument='%=on'; # 监控所有事件
SET PERSIST GLOBAL performance_schema_instrument='statement/%=off'; # 关闭所有statement相关事件的监控

通过这种方式,管理员可以根据实际需要灵活调整监控策略,以平衡监控需求和系统资源的消耗。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2024-08-24 21:20
下一篇 2024-08-24 21:25

相关推荐

  • 如何检查MySQL中的RC密码字段是否为空?

    在MySQL中,可以使用IFNULL()函数或IS NULL语句来判断RC密码是否为空。示例如下:,,方法1:使用IFNULL()函数,“sql,SELECT IFNULL(RC密码, ‘密码为空’) AS 结果 FROM 表名;,`,,方法2:使用IS NULL语句,`sql,SELECT CASE WHEN RC密码 IS NULL THEN ‘密码为空’ ELSE ‘密码不为空’ END AS 结果 FROM 表名;,“

    2024-08-11
    008
  • http直连报错怎么办?解决方法有哪些?

    在互联网使用过程中,用户可能会遇到各种网络连接问题,http直连报错”是较为常见的一种情况,这类错误通常表现为浏览器或应用程序无法通过http协议正常访问目标资源,页面显示连接超时、无法访问或重定向次数过多等提示,了解其成因及解决方法,有助于快速恢复网络服务,提升使用体验,常见报错类型及表现http直连报错的具……

    2025-11-24
    009
  • 国内物联网区块链服务现状如何?有哪些应用场景?物联网区块链应用场景

    国内物联网区块链服务核心在于构建“数据可信+资产流通”的闭环体系,主要提供身份认证、供应链溯源、数据确权及智能合约自动化结算四大类服务,旨在解决传统物联网中数据孤岛与信任缺失痛点,物联网与区块链融合的核心价值在2026年的数字经济背景下,物联网设备产生的海量数据亟需去中心化的信任机制来保障其真实性和不可篡改性……

    2026-06-22
    002
  • 服务器老是掉线是什么原因,服务器频繁掉线怎么解决

    服务器频繁掉线并非单一因素所致,而是网络稳定性、硬件负载能力、软件配置环境以及安全防护机制四大维度失衡的综合结果,解决这一问题的核心在于建立系统化的排查机制与冗余备份方案,对于运维人员而言,面对挂服务器老是掉线的困境,必须跳出“头痛医头”的局限,从底层逻辑出发,构建高可用的运行环境, 网络连接稳定性是掉线问题的……

    2026-03-14
    0024

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信