如何在运行 MySQL 的 Amazon RDS 实例上配置 GoSH?

1 分钟阅读
0

我有一个运行 MySQL 的 Amazon Relational Database Service(Amazon RDS)实例。我想在 RDS 数据库实例上启用和配置全局状态历史记录(GoSH)。我该如何操作?

简短描述

您可以通过 GoSH 在 Amazon RDS for MySQL 中维护不同状态变量的历史记录。首先,必须先启用事件调度器,然后才能使用 GoSH。然后可以修改 GoSH 以按特定间隔运行并定期轮换表。默认情况下,GoSH 信息每五分钟收集一次,存储在 mysql.rds_global_status_history 表中,此表每七天轮换一次。

解决方法

1.    修改附加到实例的自定义 DB 参数组,从而使 event_scheduler 设置为 ON

2.    登录到数据库实例,然后运行此命令:

SHOW PROCESSLIST;
SHOW GLOBAL VARIABLES LIKE 'event_scheduler';

3.    运行以下命令以启用 GoSH:

CALL mysql.rds_enable_gsh_collector;

4.    要将监控间隔修改为 1 分钟,请运行以下命令:

CALL mysql.rds_set_gsh_collector(1);

5.    运行以下命令以启用 GoSH 表轮换功能:

CALL mysql.rds_enable_gsh_rotation;

6.    运行以下命令修改轮换设置:

CALL mysql.rds_set_gsh_rotation(5);

查询 GoSH 表,以获取有关特定操作的信息。例如,以下查询可提供有关每分钟对实例执行的数据操作语言(DML)操作数量的详细信息。

SELECT collection_start, collection_end, sum(value) AS 'DML Queries Count' from (select collection_start, collection_end, "INSERTS" as "Operation", variable_Delta as "value" from mysql.rds_global_status_history  where variable_name = 'com_insert' union select collection_start, collection_end, "UPDATES" as "Operation", variable_Delta as "value" from mysql.rds_global_status_history  where variable_name = 'com_update' union select collection_start, collection_end, "DELETES" as "Operation", variable_Delta as "value" from mysql.rds_global_status_history  where variable_name = 'com_delete') a group by 1,2;

注意:此查询不适用于 MySQL 8.0


相关信息

MySQL 数据库实例的常见 DBA 任务

管理全局状态历史记录

AWS 官方
AWS 官方已更新 2 年前