Amazon RDS for Microsoft SQL Server 数据库日志文件
您可以使用 Amazon RDS 控制台、Amazon CLI 或 RDS API 访问 Microsoft SQL Server 错误日志、代理日志、跟踪文件和转储文件。有关查看、下载和监视基于文件的数据库日志的更多信息,请参阅 监控 Amazon RDS 日志文件。
保留计划
日志文件每天都会轮换,并且会在重新启动数据库实例时轮换。以下是 Amazon RDS 上的 Microsoft SQL Server 日志的保留计划。
日志类型 | 保留计划 |
---|---|
错误日志 |
最多可保留 30 个错误日志。Amazon RDS 可能会删除超过 7 天的错误日志。 |
Agent 日志 |
最多可保留 10 个代理日志。Amazon RDS 可能会删除超过 7 天的代理日志。 |
跟踪文件 |
根据数据库实例的跟踪文件保留期保留跟踪文件。默认的跟踪文件保留期为 7 天。要修改数据库实例的跟踪文件保留期,请参阅设置跟踪文件和转储文件的保留期。 |
转储文件 |
根据数据库实例的转储文件保留期保留转储文件。默认的转储文件保留期为 7 天。要修改数据库实例的转储文件保留期,请参阅设置跟踪文件和转储文件的保留期。 |
使用 rds_read_error_log 过程查看 SQL Server 错误日志
您可以使用 Amazon RDS 存储过程 rds_read_error_log
查看错误日志和代理日志。有关更多信息,请参阅“查看错误和代理日志”。
将 SQL Server 日志发布到 Amazon CloudWatch Logs
使用 Amazon RDS for SQL Server,您可以将错误和代理日志事件直接发布到 Amazon CloudWatch Logs。使用 CloudWatch Logs 分析日志数据,然后使用 CloudWatch 创建警报和查看指标。
利用 CloudWatch Logs,您可以:
-
将日志存储在具有您定义的保留期间的高持久性存储空间中。
-
搜索并筛选日志数据。
-
在账户间共享日志数据。
-
将日志导出到 Amazon S3。
-
将数据流式传输到 Amazon Opensearch 服务。
-
使用 Amazon Kinesis Data Streams 实时处理日志数据。有关更多信息,请参阅《面向 SQL 的适用于 Apache Flink 的亚马逊托管服务的应用程序开发人员指南》中的使用 Amazon CloudWatch Logs。
Amazon RDS 将每个 SQL Server 数据库日志作为日志组中的单独数据库流进行发布。例如,如果您发布代理日志和错误日志,则错误数据将存储在 /aws/rds/instance/
日志组中的错误日志流中,而代理日志数据将存储在 my_instance
/error/aws/rds/instance/
日志组中。my_instance
/agent
对于多可用区数据库实例,Amazon RDS 将数据库日志作为日志组中的两个独立流发布。例如,如果您发布错误日志,则错误数据将分别存储在错误日志流 /aws/rds/instance/
和 my_instance.node1
/error/aws/rds/instance/
中。日志流在失效转移期间不会发生变化,每个节点的错误日志流可能包含来自主实例或辅助实例的错误日志。使用多可用区,系统会自动为 my_instance.node2
/error/aws/rds/instance/
创建日志流,以存储诸如数据库实例失效转移等事件数据。my_instance
/rds-events
注意
默认情况下,没有启用将 SQL Server 日志发布到 CloudWatch Logs 的功能。不支持发布跟踪和转储文件。所有区域都支持将 SQL Server 日志发布到 CloudWatch Logs,亚太地区(香港)除外。
从Amazon Web Services Management Console将 SQL Server 数据库日志发布到 CloudWatch Logs
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择 Databases (数据库),然后选择要修改的数据库实例。
-
选择修改。
-
在 Log exports (日志导出) 部分中,选择要开始发布到 CloudWatch Logs 的日志。
您可以选择代理日志、错误日志或两者。
-
选择继续,然后选择摘要页面上的修改数据库实例。
要发布 SQL Server 日志,您可以使用具有以下参数的 modify-db-instance
命令:
-
--db-instance-identifier
-
--cloudwatch-logs-export-configuration
注意
对 --cloudwatch-logs-export-configuration
选项进行的更改始终立即应用于数据库实例。因此,--apply-immediately
和 --no-apply-immediately
选项没有影响。
您还可以使用以下命令来发布 SQL Server 日志:
例
以下示例将创建一个启用了 CloudWatch Logs 发布的 SQL Server 数据库实例。--enable-cloudwatch-logs-exports
值是一个可以包括 error
和/或 agent
的 JSON 字符串数组。
对于 Linux、macOS 或 Unix:
aws rds create-db-instance \ --db-instance-identifier
mydbinstance
\ --enable-cloudwatch-logs-exports '["error","agent"]' \ --db-instance-classdb.m4.large
\ --enginesqlserver-se
对于 Windows:
aws rds create-db-instance ^ --db-instance-identifier
mydbinstance
^ --enable-cloudwatch-logs-exports "[\"error\",\"agent\"]" ^ --db-instance-class db.m4.large ^ --engine sqlserver-se
注意
使用 Windows 命令提示符时,必须在 JSON 代码中转义双引号 ("),方法是使用反斜杠 (\) 作为其前缀。
例
以下示例修改现有的 SQL Server 数据库实例以将日志文件发布到 CloudWatch Logs。--cloudwatch-logs-export-configuration
值是 JSON 对象。此对象的键是 EnableLogTypes
,其值是可以包括 error
和/或 agent
的字符串数组。
对于 Linux、macOS 或 Unix:
aws rds modify-db-instance \ --db-instance-identifier
mydbinstance
\ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["error","agent"]}'
对于 Windows:
aws rds modify-db-instance ^ --db-instance-identifier
mydbinstance
^ --cloudwatch-logs-export-configuration "{\"EnableLogTypes\":[\"error\",\"agent\"]}"
注意
使用 Windows 命令提示符时,必须在 JSON 代码中转义双引号 ("),方法是使用反斜杠 (\) 作为其前缀。
例
以下示例修改现有的 SQL Server 数据库实例以禁用将代理日志文件发布到 CloudWatch Logs 的功能。--cloudwatch-logs-export-configuration
值是 JSON 对象。此对象的键是 DisableLogTypes
,其值是可以包括 error
和/或 agent
的字符串数组。
对于 Linux、macOS 或 Unix:
aws rds modify-db-instance \ --db-instance-identifier
mydbinstance
\ --cloudwatch-logs-export-configuration '{"DisableLogTypes":["agent"]}'
对于 Windows:
aws rds modify-db-instance ^ --db-instance-identifier
mydbinstance
^ --cloudwatch-logs-export-configuration "{\"DisableLogTypes\":[\"agent\"]}"
注意
使用 Windows 命令提示符时,必须在 JSON 代码中转义双引号 ("),方法是使用反斜杠 (\) 作为其前缀。