如何读取 Amazon RDS for SQL Server 中的服务器端跟踪?

上次更新日期:2019 年 12 月 20 日

如何读取 Amazon Relational Database Service(Amazon RDS)for SQL Server 中的服务器端跟踪?

简短描述

Amazon RDS 是一项托管式服务,因此不会授予用户访问操作系统的权限。如果您使用 SQL Server 的自托管式安装,则可以访问主机,并可以使用分析器 GUI 打开跟踪文件。您可以通过远程连接到 Amazon RDS 数据库实例并收集跟踪来运行客户端跟踪。随后会在远程客户端上创建跟踪文件。由于分析器是客户端工具,因此如果连接中断,跟踪将会停止。要避免连接中断,您可以运行服务器端跟踪

解决方法

使用 T-SQL 语句读取服务器端跟踪

1.    通过运行类似于以下 T-SQL 语句的命令来确定服务器中当前运行的跟踪:

select * from sys.traces;

注意:sys.traces 目录视图包含系统上当前运行的跟踪。

2.    通过运行类似于以下 fn_trace_gettable 函数的命令来读取跟踪文件:

select * from ::fn_trace_gettable('D:\rdsdbdata\log\rdstest.trc', default);

3.    您可以选择将服务器端跟踪结果保存到数据库表。然后,通过运行类似于以下 fn_trace_gettable 函数的命令,可以将数据库表用作 Tuning Advisor 的工作负载:

SELECT * INTO RDSTrace
FROM fn_trace_gettable('D:\rdsdbdata\Log\RDSTrace.trc', default);

注意:这些命令会将 D:\rdsdbdata\Log 目录中名为 RDSTrace.trc 的所有文件(包括 RDSTrace_1.trc 等所有滚动更新文件)的结果加载到位于当前数据库中的名为 RDSTrace 的表中。

跟踪文件和转储文件会累积,并可能会填满磁盘空间。默认情况下,Amazon RDS 会清除超过 7 天的跟踪文件和转储文件。您可以使用 rds_set_configuration 存储过程来设置跟踪文件保留期,从而修改跟踪文件的保留期。以下存储过程会将跟踪文件保留期设置为 24 小时(1440 分钟):

exec rdsadmin..rds_set_configuration 'tracefile retention', 1440;