Aurora MySQL 数据库日志概览 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Aurora MySQL 数据库日志概览

您可以监控以下类型的 Aurora MySQL 日志文件:

  • 错误日志

  • 慢速查询日志

  • 常规日志

  • 审计日志

默认情况下,系统会生成 Aurora MySQL 错误日志。您可以通过在数据库参数组中设置参数来生成慢速查询日志和一般日志。

Aurora MySQL 错误日志

Aurora MySQL 在 mysql-error.log 文件中写入错误。每个日志文件的名称上都会附有生成时间的信息 (以 UTC 时间标记)。日志文件还会拥有时间戳,帮助您确定日志项的写入时间。

Aurora MySQL 仅在启动、关闭和遇到错误时向错误日志写入内容。数据库实例可以运行数小时或者数天,而不向错误日志中写入新项。如果看不到最近的条目,则原因是服务器未遇到导致生成日志条目的错误。

Aurora MySQL 每 5 分钟将 mysql-error.log 写入磁盘。MySQL 会将日志的内容附加到 mysql-error-running.log

Aurora MySQL 每小时轮换一次 mysql-error-running.log 文件。在 24 小时之后或已使用 15% 的存储空间后,Aurora MySQL 删除审计、一般查询、慢查询和开发工具包日志。

注意

Amazon RDS 和 Aurora 之间的日志保留期不同。

Aurora MySQL 慢速查询日志和一般日志

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

可通过使用下面列表中的参数来控制 Aurora 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– 禁用日志记录。

    对于 Aurora MySQL 5.6,log_output 的默认值为 TABLE。对于 Aurora MySQL 5.7,log_output 的默认值为 FILE

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

  • 启用了 FILE 日志记录时,会每小时检查日志文件并删除30 天之前的日志文件。在一些情况下,删除之后的剩余日志文件的总体大小可能超过了数据库实例的分配空间的 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 错误日志一样,这些日志文件也每小时轮换一次。将保留过去30 天内生成的日志文件。请注意,Amazon RDS 和 Aurora 之间的保留期不同。

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

日志轮换和保留

Aurora MySQL 慢速查询日志、错误日志和一般日志文件的大小限制为不超过为数据库实例分配的存储空间的 2%。为了维护此阈值,日志每小时自动轮换一次。Aurora MySQL 会在 24 小时后或达到 15% 的磁盘空间时删除日志。如果在删除旧日志文件后,日志文件的总体大小超出此阈值,则将删除最早的日志文件,直到日志文件大小不再超出此阈值。

BLOB 的大小限制

对于 Aurora MySQL,写入到重做日志的 BLOB 存在大小限制。要解决此限制,请确保 Aurora MySQL 数据库实例的 innodb_log_file_size 参数是在您的表中找到的最大 BLOB 数据大小与同一表中其他可变长度字段(VARCHARVARBINARYTEXT)的长度之和的 10 倍。有关如何设置参数值的信息,请参阅使用参数组。有关重做日志 BLOB 大小限制的信息,请转至 MySQL 5.6.20 中的更改