在命令提示符中运行数据库试验助手
注意
此工具将于 2024 年 12 月 15 日停用。 对于出现的任何问题,我们将停止支持此工具,并且不会发布任何缺陷修复或进一步更新。
本文介绍如何在数据库试验助手 (DEA) 中捕获跟踪,然后通过命令提示符分析结果。
注意
若要详细了解每个 DEA 操作,请运行以下命令:
Deacmd.exe -o <operation> --help
需要操作名称。 有效操作包括 Analysis、StartCapture 和 StopCapture。
使用 DEA 命令启动新的工作负荷捕获
若要启动新的工作负荷捕获,请在命令提示符中运行以下命令:
Deacmd.exe -o StartCapture -n <Trace FileName> -x <Trace Format> -h <SQLServerInstance> -f <database name> -e <Encrypt Connection> -m <Authetication Mode> -u <user name> -p <password> -l <Location of Output Folder> -d <duration>
例如:
Deacmd.exe -o StartCapture -n sql2008capture -x 0 -h localhost -f adventureworks -e --trust -m 0 -l c:\test -d 60
使用 Deacmd.exe
命令启动新的工作负荷捕获时,可以使用以下选项:
选项 | 说明 |
---|---|
-n 、--name |
必需。 跟踪文件名。 |
-x 、--format |
必需。 跟踪的格式(0 = 跟踪,1 = XEvents)。 |
-d 、--duration |
必需。 最长捕获时间单位(分钟)。 |
-l 、--location |
必需。 用于在主计算机上存储跟踪或 XEvent 文件的输出文件夹的位置。 |
-t 、--type |
默认值:0。 SQL Server 的类型(0 = SqlServer,1 = AzureSQLDB,2 = Azure SQL 托管实例)。 |
-h 、--host |
必需。 要启动捕获的 SQL Server 主机名或实例名称。 |
-e 、--encrypt |
默认值:True。 加密与 SQL Server 实例之间的连接。 |
--trust |
默认值: False。 连接到 SQL Server 实例时信任服务器证书。 |
-f 、--databasename |
要筛选跟踪的数据库的名称(如果未指定捕获在所有数据库上启动)。 |
-m 、--authmode |
默认值:0。 身份验证模式(0 = Windows, 1 = Sql 身份验证)。 |
-u 、--username |
连接 SQL 服务器的用户名。 |
-p 、--password |
连接到 SQL Server 的密码。 |
重播工作负荷捕获
如果使用 Distributed Replay,请执行以下步骤。
登录到 Distributed Replay 控制器计算机。
若要将使用 DEA 命令捕获的工作负荷跟踪转换为 IRF 文件,请运行以下命令:
DReplay preprocess -m "dreplaycontroller" -i "Path to first trace file" -d "<Folder path on controller>\IrfFolder"
使用 StartReplayCaptureTrace.sql 在运行 SQL Server 的目标计算机上启动跟踪捕获。
a. 在 SQL Server Management Studio (SSMS) 中,打开 <Dea_InstallPath>\Scripts\StartReplayCaptureTrace.sql。
b. 运行
Set @durationInMins=0
以便跟踪捕获不会在指定时间后自动停止。c. 若要设置每个跟踪文件的最大文件大小,请运行
Set @maxfilesize
。 建议大小为 200 MB。d. 编辑
@Tracefile
以设置跟踪文件的唯一名称。e. 如果必须仅在特定数据库上捕获工作负荷,则编辑
@dbname
以指定数据库名称。 默认情况下,捕获整个服务器上的工作负荷。若要针对目标 SQL Server 实例重播 IRF 文件,请运行以下命令:
DReplay replay -m "dreplaycontroller" -d "<Folder Path on Dreplay Controller>\IrfFolder" -o -s "SQL2016Target" -w "dreplaychild1,dreplaychild2,dreplaycild3,dreplaychild4"
a. 要监视状态,请运行下面的命令:
DReplay status -f 1
b. 若要停止重播,例如,如果看到传递百分比低于预期,请运行以下命令:
DReplay cancel
停止目标 SQL Server 实例上的跟踪捕获。
在 SSMS 中,打开 <Dea_InstallPath>\Scripts\StopCaptureTrace.sql。
编辑
@Tracefile
以匹配运行 SQL Server 的目标计算机上的跟踪文件路径。针对运行 SQL Server 的目标计算机运行脚本。
使用 InBuilt Replay
如果使用 InBuilt Replay,则无需设置 Distributed Replay。 在命令提示符中使用 InBuilt Replay 的功能正在开发中。 目前,可以使用 GUI 通过 InBuilt Replay 运行重播。
使用 DEA 命令分析跟踪
若要启动新的跟踪分析,请运行以下命令:
Deacmd.exe -o analysis -a <Target1 trace filepath> -b <Target2 trace filepath> -r reportname -h <SQLserverInstance> -e <encryptconnection> -u <username>
例如:
Deacmd.exe -o analysis -a C:\Trace\SQL2008Source\Trace.trc -b C:\ Trace\SQL2014Trace\Trace.trc -r upgrade20082014 -h localhost -e
若要查看这些跟踪文件的分析报告,需要使用 GUI 查看图表和组织指标。 但是,分析数据库将写入指定的 SQL Server 实例,因此还可以直接查询生成的分析表。
使用 DEA 命令分析跟踪时,可以使用以下选项:
选项 | 说明 |
---|---|
-a 、--traceA |
必需。 A 实例的事件文件的文件路径。 示例:C:\traces\Sql2008trace.trc。 如果有一批文件,请选择第一个文件和 DEA 自动检查滚动更新文件。 如果文件位于 Blob 中,请提供要将事件文件存储在本地的文件夹路径。 示例:C:\traces\ |
-b 、--traceB |
必需。 B 实例的事件文件的文件路径。 示例:C:\traces\Sql2014trace.trc。 如果有一批文件,请选择第一个文件和 DEA 自动检查滚动更新文件。 如果文件位于 Blob 中,请提供要将事件文件存储在本地的文件夹路径。 示例:C:\traces\ |
-r 、--ReportName |
必需。 当前分析的名称。 由此名称标识生成的分析报告。 |
-t 、--type |
默认值:0。 SQL Server 的类型(0 = SqlServer,1 = AzureSQLDB,2 = Azure SQL 托管实例)。 |
-h 、--host |
必需。 SQL Server 主机名或实例名。 |
-e 、--encrypt |
默认值:True。 加密与 SQL Server 实例之间的连接。 |
--trust |
默认值: False。 连接到 SQL Server 实例时信任服务器证书。 |
-m 、--authmode |
默认值:0。 身份验证模式(0 = Windows, 1 = Sql 身份验证)。 |
-u 、--username |
连接 SQL 服务器的用户名。 |
--p |
连接到 SQL Server 的密码。 |
--ab |
默认值: False。 跟踪 A 的存储位置位于 blob 中。 如果使用,还必须指定 --abu (Trace A Blob Url) |
--bb |
默认值: False。 跟踪 B 的存储位置位于 blob 中。 如果使用,还必须指定 --bbu (Trace B Blob Url) |
--abu |
包含 SAS 密钥的 A 实例的 blob URL。 |
--bbu |
包含 SAS 密钥的 B 实例的 blob URL。 |
另请参阅
- 有关使用 DEA 详细信息,请参阅数据库实验助手概述。