通过注册表卸载单个服务器实例

通过注册表卸载单个服务器实例

我正在运行 SQL Server 2014,并且有 50 个独立实例正在运行。这是此版本的最大实例数限制,我显然需要卸载一些实例并进行清理。

然而,经过研究,似乎存在一个错误,当您安装了 50 个实例时,它不允许您通过“程序和功能”安装程序或命令行卸载实例。安装程序在查询实例列表时冻结或挂起,并且永远不会继续卸载。我检查了引导日志文件,导出的错误表明它无法执行该操作,因为实例太多,而这才是整个问题所在!

我发现的唯一解决方案是通过注册表卸载实例。我能够使用 msiexec 从 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 中删除实例,但当我这样做时,SQL Browser 服务崩溃了,其他 sql 实例丢失了连接,旧实例的服务会重新出现。我最终从我制作的备份中恢复了注册表。有没有办法正确地从注册表中删除实例并重新定位浏览器服务?也许我遗漏了一些注册表项?

答案1

我已经根据操作顺序找到了解决方案。这解决了我的问题。

-停止 SQL 浏览器服务

-SC 删除特定错误实例的 SQL Server 服务

-使用安装程序磁盘 Setup.exe /Action=Uninstall /FEATURES=SQLEngine /INSTANCENAME=MyInstance /Q 从 setup.exe 运行卸载命令

-(错误实例的 SQL Server Agent 服务将会消失)

-启动 SQL 浏览器服务

-通过程序和功能卸载后续错误实例,因为这现在可以完成而不会挂起。

答案2

根据https://www.experts-exchange.com/questions/29025272/Manually-uninstalling-SQL-Server-Instances.html,这应该可行。

扫描注册表以查找实例名称并找到卸载程序的 MSI 文件。运行 msiexec /x "{id}",这样就可以卸载,托管安装程序不会发出任何抱怨。然后必须使用“sc delete ...”手动清理服务。

相关内容