管理 RDS for MySQL 的全局状态历史记录
提示
要分析数据库性能,您还可以在 Amazon RDS 上使用性能详情。有关更多信息,请参阅 在 Amazon RDS 上使用性能详情监控数据库负载。
MySQL 保存了很多状态变量,用于提供与操作相关的信息。状态变量值可以帮助您检测数据库实例上的锁定或内存问题。这些状态变量的值会从上次启动数据库实例时开始累积。可以使用 FLUSH STATUS
命令将大多数状态变量重置为 0。
Amazon RDS 提供了一套程序,这些程序会随着时间为这些状态变量的值创建快照,并将它们及上次创建快照后所做的任何更改写入一个表中,从而可以随时间监控这些值。此基础设施名为 Global Status History (GoSH),安装在从版本 5.5.23 开始的所有 MySQL 数据库实例上。默认情况下 GoSH 处于禁用状态。
要启用 GoSH,请首先在数据库参数组中通过将参数 event_scheduler
设置为 ON
,启用事件调度器。对于运行 MySQL 5.7 的 MySQL 数据库实例,还要将参数 show_compatibility_56
设置为 1
。有关创建和修改数据库参数组的信息,请参阅 Amazon RDS 的参数组。有关启用此参数的副作用的信息,请参阅《MySQL 5.7 参考手册》中的 show_compatibility_56
然后可以使用下表中的程序启用和配置 GoSH。首先连接到 MySQL 数据库实例,然后发出正确的命令,如下所示。有关更多信息,请参阅 连接到运行 MySQL 数据库引擎的数据库实例。对于每个过程,运行以下命令并替换 procedure-name
:
CALL
procedure-name
;
下表列出了可用于上一个命令中 procedure-name
的所有过程。
程序 | 描述 |
---|---|
|
启用 GoSH,按照 |
|
指定快照之间的间隔,以分钟为单位。默认值是 5。 |
|
禁用快照。 |
|
根据需求创建快照。 |
|
按照 |
|
指定表交替之间的间隔,以天为单位。默认值是 7。 |
|
禁用表交替。 |
|
根据需求将 |
GoSH 运行时,您可以查询 GoSH 要写入的表。例如,要查询 Innodb 缓冲池的命中率,您可以发送以下查询请求:
select a.collection_end, a.collection_start, (( a.variable_Delta-b.variable_delta)/a.variable_delta)*100 as "HitRatio" from mysql.rds_global_status_history as a join mysql.rds_global_status_history as b on a.collection_end = b.collection_end where a. variable_name = 'Innodb_buffer_pool_read_requests' and b.variable_name = 'Innodb_buffer_pool_reads'