SQL Server 2019下DReplay.exe缺失及预处理报错问题求助
我来帮你梳理下解决思路,针对你遇到的SQL Server 2019分布式回放工具的问题,分几个方面来处理:
一、先搞清楚安装路径异常的原因
你用setup.exe /Q /IACCEPTSQLSERVERLICENSETERMS /ACTION="install" /FEATURES=Tools命令安装后,工具跑到130文件夹里,是因为这个命令默认装的是SQL Server 2016版本的管理工具(130是SQL Server 2016的版本号),不是SQL Server 2019对应的150版本工具集。这就导致了后续版本不匹配的问题。
二、正确安装SQL Server 2019版DReplay.exe的方法
用2019安装包精准安装
确保你手里是SQL Server 2019的官方安装介质,然后运行下面的命令,直接指定安装分布式回放相关组件和对应版本的工具:setup.exe /Q /IACCEPTSQLSERVERLICENSETERMS /ACTION="install" /FEATURES=DReplayController,DReplayClient,Tools或者加上版本参数明确指定150:
setup.exe /Q /IACCEPTSQLSERVERLICENSETERMS /ACTION="install" /FEATURES=Tools /VERSION=150这样安装完成后,DReplay.exe应该会出现在
C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn路径下。检查安装完整性
装完后别忘了核对一下:- 控制器端:
C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn下要有DReplay.exe、Microsoft.SqlServer.Management.DistributedReplay.dll这些核心文件 - 客户端:
C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\Client下的组件也要齐全
- 控制器端:
三、解决资源加载错误的方案
你遇到的Could not find any resources appropriate for the specified culture错误,本质就是版本不匹配或者缺失了资源文件:
- 你装的2016工具和2019的SQL实例不兼容
- 之前复制旧服务器文件时,漏掉了带语言后缀的卫星资源文件(比如
.resources.dll)
修复步骤可以这么来:
- 先卸载旧版本工具
去控制面板里把之前装的SQL Server 2016管理工具卸载掉,避免版本冲突搅局。 - 重新安装2019版对应组件
按照上面的正确命令重新安装,确保工具版本和SQL实例版本一致。 - 调整环境变量优先级
检查系统的PATH环境变量,把C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn移到旧版本工具路径的前面,保证系统调用的是2019版的DReplay.exe。 - 注册组件(可选)
如果装完还是有问题,试试注册一下核心dll:regsvr32 "C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\Microsoft.SqlServer.Management.DistributedReplay.dll"
四、临时应急方案(实在没法重装的话)
如果暂时不能重新安装,你可以试试从旧服务器的130\Tools\Binn路径下,把所有带语言后缀的.resources.dll文件(比如Microsoft.SqlServer.Management.DistributedReplay.resources.dll)复制到新服务器对应的路径里,注意要保证这些文件和主dll的版本、签名完全一致,不然还是会报错。
内容的提问来源于stack exchange,提问作者M.Ali

