AWS 文档 http://aws.amazon.com/cn/documentation/

解翰采
2023-12-01

访问 MySQL 错误日志

MySQL 错误日志写入 mysql-error.log 文件。您可以通过使用 Amazon RDS 控制台或者通过使用 Amazon RDS API、Amazon RDS CLI 或 AWS 软件开发工具包检索日志来查看 mysql-error.logmysql-error.log 每 5 分钟刷新一次,其内容附加到 mysql-error-running.logmysql-error-running.log 文件每小时轮换一次,保留过去 24 小时内每小时生成的文件。每个日志文件的名称上都会附有生成时间的信息(以 UTC 时间标记)。日志文件还会拥有时间戳,帮助您确定日志项的写入时间。

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

访问 MySQL 慢查询和常规日志

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

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

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

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

  • log_output:要将一般日志和慢速查询日志写入文件系统,请设置为 FILE。默认值为 TABLE,这会将一般查询写入 mysql.general_log 表,将慢速查询写入 mysql.slow_log 表。要禁用日志记录,请设置为 NONE

  • 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 参数值,只要它们不使用索引,就会被系统记录。

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

如果满足以下条件之一,Amazon RDS 会自动轮换慢速日志和一般日志,以降低日志过大造成数据库无法使用或影响性能的可能性:

  • 磁盘空间使用率大于分配空间的 90%,并且单个日志的分配存储空间使用率大于 10% 或日志使用的存储空间大于 5 GB。

  • 单个日志的分配存储空间使用率大于 20% 或日志使用的存储空间大于 10 GB,无论总磁盘使用情况如何。

无论哪种情况下,Amazon RDS 都将在 Amazon RDS 事件中记录日志轮换并向您发送通知。请注意,Amazon RDS 将来可能会在出现自动日志轮换时更改逻辑。

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

访问基于文件的 MySQL 日志

您可以使用 Amazon RDS 的日志处理功能访问基于文件的 MySQL 日志,如一般日志或慢速查询日志:

管理基于表的 MySQL 日志

可通过创建数据库参数组并将 log_output 服务器参数设置为 TABLE,将一般日志和慢速查询日志引向数据库实例上的表。系统随后会将一般查询记录到 mysql.general_log 表,并将慢速查询记录到mysql.slow_log 表。可以查询表来访问日志信息。启用此日志记录功能会增加写入数据库的数据量,导致性能降低。

默认情况下,一般日志和慢速查询日志处于禁用状态。要启用将日志记录到表的功能,必须将 general_log 和 slow_query_log 服务器参数设置为 1

直到通过将相应参数重置为 0 而关闭相应日志记录活动,日志表才不再增大。随着时间的推移,通常会累积大量的数据,这些数据会占用相当大比例的分配存储空间。Amazon RDS 不允许您截断日志表,但您可以移动其中的内容。表的交替会将表的内容保存到备份表,然后创建一个新的空日志表。可用以下命令行过程手动轮换日志表,其中 PROMPT> 表示命令提示符:

PROMPT> CALL mysql.rds_rotate_slow_log;
            PROMPT> CALL mysql.rds_rotate_general_log;
 类似资料: