为数据库试验助手配置 Distributed Replay

注意

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

数据库试验助手 (DEA) 使用 SQL Server 安装中的 Distributed Replay 工具针对升级的测试环境重播捕获的跟踪。 建议先使用小型跟踪文件执行测试运行,然后再执行完整重播,以确保正确重播查询。

Distributed Replay 要求

  • 在 Distributed Replay 控制器计算机上创建 IRF 文件需要额外 78% 的硬盘空间。
  • 200 MB 或 512 MB 是用于捕获生产或性能跟踪的理想跟踪滚动更新大小。
  • Distributed Replay 控制器和客户端计算机的最低 CPU 和 RAM 要求是具有 3.5 GB RAM 的单核 CPU。
  • 重播时间比捕获时间长约 1.55 倍,因为一个控制器和四个子计算机用于重播生产跟踪。
  • 如果使用“已发布”版本的生产和性能跟踪定义文件,并且性能跟踪定义会筛选出一个感兴趣的数据库的跟踪,则分析显示“性能跟踪”大小为“生产跟踪”大小大的 15 倍左右

设置虚拟网络或域

Distributed Replay 要求在计算机之间使用通用帐户。 由于此要求,出于安全原因,我们建议在虚拟网络或域控制的网络上运行 Distributed Replay:

  • 在环境中创建控制器和客户端计算机。
  • 确保控制器和客户端计算机可以通过网络相互 ping。
  • Distributed Replay 客户端计算机必须连接到运行 SQL Server 的重播目标计算机。

设置控制器服务

要设置控制器服务:

  1. 使用 SQL Server 安装程序安装 Distributed Replay 控制器。 如果跳过了配置 Distributed Replay 控制器的 SQL Server 安装程序向导步骤,则可以通过配置文件配置控制器。 在典型的安装中,配置文件位于 C:\Program Files (x86)\Microsoft SQL Server<version>\Tools\DReplayController\DReplayController.config。

  2. Distributed Replay 控制器日志位于 C:\Program Files (x86)\Microsoft SQL Server<version>\Tools\DReplayController\Log。

  3. 打开 Services.msc 并转到“SQL Server Distributed Replay 控制器”服务

  4. 右键单击该服务,然后选择“属性”。 将服务帐户设置为网络中控制器和客户端计算机通用的帐户。

  5. 选择“确定”以关闭“属性”窗口。

  6. 从 Services.msc 重新启动“SQL Server Distributed Replay 控制器”服务。 还可以在命令行运行以下命令以重启服务:

    NET STOP "SQL Server Distributed Replay Controller"
    NET START "SQL Server Distributed Replay Controller"

有关更多配置选项,请参阅配置 Distributed Replay

配置 DCOM

此配置仅在控制器计算机上是必需的。

  1. 打开 dcomcnfg.exe。

  2. 展开“组件服务”>“计算机”>“我的计算机”>“DCOM 配置”

  3. 在“DCOM 配置”下,右键单击 DReplayController,然后选择“属性”

  4. 选择“安全性”选项卡

  5. 在“启动和激活权限”下,选择“定制”,然后选择“编辑”

  6. 添加将启动重播的用户。 向用户授予本地启动和本地激活权限。 如果用户计划远程启动或激活,则向用户授予远程启动和远程激活权限。

  7. 选择“确定”以提交更改并返回到“安全”选项卡

  8. 在“访问权限”下,选择“定制”,然后选择“编辑”

  9. 添加将启动重播的用户。 向用户授予本地访问权限。 如果用户计划远程访问控制器服务,则向用户授予远程访问权限。

  10. 选择“确定”以提交更改并返回到“安全”选项卡

  11. 选择“确定”以提交更改

  12. 从 Services.msc 重新启动“SQL Server Distributed Replay 控制器”服务 还可以在命令行运行以下命令以重启服务:

    NET STOP "SQL Server Distributed Replay Controller"
    NET START "SQL Server Distributed Replay Controller"

设置客户端服务

在设置客户端服务之前,请使用 ping 等网络工具来验证控制器和客户端计算机是否可以通信。

  1. 使用 SQL Server 安装程序安装 Distributed Replay 客户端。

  2. 打开 Services.msc 并转到“SQL Server Distributed Replay 客户端”服务。

  3. 右键单击该服务,然后选择“属性”。 将服务帐户设置为网络中控制器和客户端计算机通用的帐户。

  4. 选择“确定”以关闭“属性”窗口。 如果跳过了配置 Distributed Replay 客户端的 SQL Server 安装程序向导步骤,则可以通过配置文件对其进行配置。 在典型的安装中,配置文件位于 C:\Program Files (x86)\Microsoft SQL Server<版本>\Tools\DReplayClient\DReplayClient.config。

  5. 确保 DReplayClient.config 文件包含控制器计算机的名称作为其控制器进行注册。

  6. 从 Services.msc 重新启动 SQL Server Distributed Replay 客户端服务。 要重启服务,还可以使用命令行运行以下命令:

    NET STOP "SQL Server Distributed Replay Client"
    NET START "SQL Server Distributed Replay Client"

    Distributed Replay 控制器日志位于 C:\Program Files (x86)\Microsoft SQL Server<版本>\Tools\DReplayClient\Log。 日志指示客户端是否可以向控制器注册自身。

    如果配置成功,日志将显示消息:“注册到控制器<控制器名称>”

有关更多配置选项,请参阅配置 Distributed Replay

设置 Distributed Replay 管理工具

可以使用 Distributed Replay 管理工具快速测试 Distributed Replay 在环境中是否正常运行。 在将多个客户端计算机注册到控制器的环境中,测试配置尤其有用。 可能需要安装 SQL Server Management Studio (SSMS) 才能获取管理工具。

  1. 转到 SSMS 安装位置,查找 Distributed Replay 管理工具 dreplay.exe 及其依赖组件。 目前,SSMS 17 是包括 dreplay.exe 的最新版本的 SSMS。
  2. 在命令提示符中运行 dreplay.exe status -f 1

如果上述步骤成功,控制台输出指示控制器可以看到其客户端处于 READY 状态。

为远程 Distributed Replay 访问配置防火墙

远程访问 Distributed Replay 需要打开在域或虚拟网络中可见的端口。

  1. 在“高级安全”中打开“Windows 防火墙”
  2. 转到“入站规则”
  3. 为程序 C:\Program Files (x86)\Microsoft SQL Server<版本>\Tools\DReplayController\DReplayController.exe 创建新的入站防火墙规则。
  4. 允许对 DReplayController.exe 的所有端口进行域级访问,以便能够与控制器服务远程通信。
  5. 保存规则。

设置目标计算机

运行 A/B 测试或试验需要两个重播。 也就是说,迁移方案可能需要两个单独的 SQL Server 安装实例。

还可以在同一计算机上安装两个版本的 SQL Server 实例。 需要注意的是,确保在重播正在进行时隔离实例。

必须为每个重播执行以下步骤:

  1. - 还原数据库的备份。
  2. 为客户端服务帐户用户提供访问 SQL Server 实例下数据库的权限。 在 SQL Server 实例上执行查询需要权限。
  3. 启动重播。

另请参阅