在命令提示符处运行数据库试验助手

注意

此工具于 2024 年 12 月 15 日 停用。 我们已停止支持此工具解决出现的任何问题,并且不会发出任何 bug 修复或进一步更新。

本文介绍如何在数据库试验助手(DEA)中捕获跟踪,并通过命令提示符分析结果,所有操作均在命令提示符下进行。

如需详细了解每个 DEA 操作,请运行以下命令:

deacmd.exe -o <operation> --help

需要一个操作名称。 有效操作包括 AnalysisStartCaptureStopCapture

使用 DEA 命令启动新的工作负荷捕获

若要启动新的工作负荷捕获,请在命令提示符处运行以下命令:

deacmd.exe -o StartCapture -n <Trace FileName> -x <Trace Format> -h <SQLServerInstance> -f <database name> -e <Encrypt Connection> -m <Authentication 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 Server 的用户名。
-p--password 用于连接到 SQL Server 的密码。

重播工作负荷捕获

如果使用 Distributed Replay,请执行以下步骤。

  1. 登录到 Distributed Replay 控制器计算机。

  2. 若要将使用 DEA 命令捕获的工作负荷跟踪转换为 IRF 文件,请运行以下命令:

    DReplay preprocess -m "dreplaycontroller" -i "Path to first trace file" -d "<Folder path on controller>\IrfFolder"
    
  3. 使用 StartReplayCaptureTrace.sql在运行 SQL Server 的目标计算机上启动跟踪捕获。

    1. 在 SQL Server Management Studio(SSMS)中,打开 <Dea_InstallPath>\Scripts\StartReplayCaptureTrace.sql

    2. 运行 Set @durationInMins=0,以便跟踪捕获不会在指定时间后自动停止。

    3. 若要设置每个跟踪文件的最大文件大小,请运行 Set @maxfilesize。 建议的大小为 200 MB。

    4. 编辑 @Tracefile 以设置跟踪文件的唯一名称。

    5. 编辑 @dbname 以指定数据库名称(如果工作负荷必须仅在特定数据库上捕获)。 默认配置下,将捕获整个服务器的工作负载。

  4. 若要针对目标 SQL Server 实例重播 IRF 文件,请运行以下命令:

    DReplay replay -m "dreplaycontroller" -d "<Folder Path on Dreplay Controller>\IrfFolder" -o -s "SQL2016Target" -w "dreplaychild1,dreplaychild2,dreplaychild3,dreplaychild4"
    
    1. 若要监视状态,请运行以下命令:
    DReplay status -f 1
    
    1. 若要停止重播,例如,如果看到传递百分比低于预期,请运行以下命令:
    DReplay cancel
    
  5. 停止目标 SQL Server 实例上的跟踪捕获。

  6. 在 SSMS 中,打开 <Dea_InstallPath>\Scripts\StopCaptureTrace.sql

  7. 编辑 @Tracefile 以匹配运行 SQL Server 的目标计算机上的跟踪文件路径。

  8. 针对运行 SQL Server 的目标计算机运行脚本。

使用内置回放

如果使用 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 Server 的用户名。
--p 用于连接到 SQL Server 的密码。
--ab 默认值:False。 跟踪 A 的存储位置位于 Blob 中。 如果使用,还必须指定 --abu (Trace A Blob Url)
--bb 默认值:False。 跟踪 B 的存储位置位于 Blob 中。 如果使用,还必须指定 --bbu (Trace B Blob Url)
--abu 具有 SAS 密钥的实例的 Blob URL。
--bbu 包含 SAS 密钥的 B 实例的 Blob URL。