Microsoft SQL Server 数据库日志文件 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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
  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases (数据库),然后选择要修改的数据库实例。

  3. 选择修改

  4. Log exports (日志导出) 部分中,选择要开始发布到 CloudWatch Logs 的日志。

    您可以选择代理日志错误日志或两者。

  5. 选择继续,然后选择摘要页面上的修改数据库实例

要发布 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-class db.m4.large \ --engine sqlserver-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 代码中转义双引号 ("),方法是使用反斜杠 (\) 作为其前缀。