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

注意

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

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

分布式重播要求

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

设置虚拟网络或域

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

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

设置控制器服务

设置控制器服务:

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

  2. 分布式重播控制器日志位于 C:\Program Files (x86)\Microsoft SQL Server<版本>\Tools\DReplayController\Log。

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

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

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

  6. 请在 Services.msc 中重新启动 SQL Server Distributed Replay Controller 服务。 还可以在命令行运行以下命令以重启服务:

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

有关更多配置选项,请参阅 配置“分布式重播”

配置 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. 选择 “确定” 关闭 “属性” 窗口。 如果跳过了 SQL Server 安装程序向导步骤来配置 Distributed Replay 客户端,则可以通过配置文件对其进行配置。 在典型的安装中,配置文件位于 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"

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

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

有关更多配置选项,请参阅 配置“分布式重播”

配置 Distributed Replay 管理工具

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

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

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

为远程分布式重播访问配置防火墙

远程访问 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. 启动重播。