如何查看 Amazon RDS MySQL 数据库实例的服务器活动?

上次更新时间:2019 年 12 月 13 日

如何查看运行 MySQL 的 Amazon Relational Database Service (Amazon RDS) 数据库实例的服务器活动?

解决方案

您可以使用服务器活动来帮助标识性能问题的根本原因,方法是查看 InnoDB 存储引擎的状态,标识运行查询或查找数据库实例上的死锁。

您必须拥有 MySQL PROCESS 服务器管理特权才能查看 MySQL 数据库实例上运行的所有线程。如果没有管理员权限,SHOW PROCESSLIST 只会显示与您正在使用的 MySQL 账户关联的线程。此外,您还必须拥有 MySQL PROCESS 服务器管理特权才能使用 SHOW ENGINE 和查看与 InnoDB 存储引擎的状态相关的信息。

要查看数据库实例的服务器活动,请执行以下步骤:

1.    为 MySQL 数据库实例启用常规和慢速查询日志

2.    连接至运行 MySQL 数据库引擎的数据库实例

3.    运行以下命令:

SHOW FULL PROCESSLIST\G
SHOW ENGINE INNODB STATUS\G

注意:要查看每个语句前 100 个字符以外的字符,请使用 FULL 关键字。

4.    要查看哪些事务处于等待状态以及哪些事务阻止正在等待的事务:

SELECT r.trx_id waiting_trx_id, r.trx_mysql_thread_id waiting_thread, r.trx_query waiting_query, b.trx_id blocking_trx_id, b.trx_mysql_thread_id blocking_thread, b.trx_query blocking_query FROM information_schema.innodb_lock_waits w INNER JOIN information_schema.innodb_trx b ON b.trx_id = w.blocking_trx_id INNER JOIN information_schema.innodb_trx r ON r.trx_id = w.requesting_trx_id;

注意:最好以短时间、连续间隔收集这些输出(例如,60 秒)。查看多个输出可以提供更广泛的引擎状态视图,这有助于您解决性能问题。


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?