访问 MySQL 慢速查询和常规日志 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

访问 MySQL 慢速查询和常规日志

通过设置数据库参数组中的参数,可以将 MySQL 慢查询日志和常规日志写入文件或者数据库表中。有关创建和修改数据库参数组的信息,请参阅 使用数据库参数组。您必须先设置这些参数,然后才能在 Amazon RDS 控制台中或使用 Amazon RDS API、Amazon RDS CLI 或 Amazon 软件开发工具包查看慢速查询日志或一般日志。

可通过使用下面列表中的参数来控制 MySQL 日志记录:

  • slow_query_log:要创建慢速查询日志,请设置为 1。默认值为 0。

  • general_log:要创建常规日志,请设置为 1。默认值为 0。

  • long_query_time:要防止在慢速查询日志中记录快速运行的查询,请指定需要记录的最短查询运行时间值,以秒为单位。默认值为 10 秒;最小值为 0。如果 log_output = FILE,则可以指定精确到微秒的浮点值。如果 log_output = TABLE,则必须指定精确到秒的整数值。系统只记录运行时间超过 long_query_time 值的查询。例如,将 long_query_time 设置为 0.1 可防止记录任何运行时间少于 100 毫秒的查询。

  • log_queries_not_using_indexes:要将所有不使用索引的查询记录到慢速查询日志,请设置为 1。默认值为 0。将记录不使用索引的查询,即使它们的运行时间小于 long_query_time 参数的值。

  • log_output option:您可为 log_output 参数指定下列选项之一。

    • TABLE(默认)– 将一般查询写入 mysql.general_log 表,将慢速查询写入 mysql.slow_log 表。

    • FILE– 将一般查询日志和慢速查询日志写入文件系统。日志文件每小时轮换一次。

    • NONE– 禁用日志记录。

启用了日志记录时,Amazon RDS 会定期轮换表日志或删除日志文件。这是一种预防措施,用于降低大型日志文件阻止数据库使用或影响性能的可能性。FILETABLE 日志记录按如下所示进行轮换和删除:

  • 启用了 FILE 日志记录时,会每小时检查日志文件并删除两周之前的日志文件。在一些情况下,删除之后的剩余日志文件的总体大小可能超过了数据库实例的分配空间的 2% 阈值。在这些情况下,将删除最大的日志文件,直到日志文件大小不再超过此阈值。

  • 启用了 TABLE 日志记录时,在某些情况下,日志表每 24 小时轮换一次。如果表日志使用的空间大于分配存储空间的 20% 或所有日志的总体大小超过 10GB,则会执行此轮换。如果用于数据库实例的空间量大于数据库实例的分配存储空间的 90%,则减小日志轮换的阈值。随后,如果表日志使用的空间大于分配存储空间的 10% 或是所有日志的总体大小超过 5 GB,则轮换日志表。您可以订阅 low_free_storage 事件,在轮换日志表以释放空间时,会发送相关通知。有关更多信息,请参阅 使用 Amazon RDS 事件通知

    轮换日志表时,会将当前日志表复制到备份日志表,随后删除当前日志表中的条目。如果备份日志表已存在,则先将其删除,然后将当前日志表复制到备份。如果需要,您可以查询备份日志表。mysql.general_log 表的备份日志表名为 mysql.general_log_backupmysql.slow_log 表的备份日志表名为 mysql.slow_log_backup

    您可以通过调用 mysql.general_log 过程来轮换 mysql.rds_rotate_general_log 表。您可以通过调用 mysql.slow_log 过程来轮换 mysql.rds_rotate_slow_log 表。

    表日志在数据库版本升级期间会进行轮换。

要通过 Amazon RDS 控制台、Amazon RDS API、Amazon RDS CLI 或 Amazon 软件开发工具包使用日志,请将 log_output 参数设置为 FILE。就像 MySQL 错误日志一样,这些日志文件也每小时轮换一次。将保留过去两周内生成的日志文件。请注意,Amazon RDS 和 Aurora 之间的保留期不同。

有关慢速查询日志和一般日志的更多信息,请参阅 MySQL 文档中的以下主题: