mssql sqlserver 集群故障无法自动转移–注册表丢失或损坏


摘要:
下文讲述客户端无法故障转移至sqlserver的另一个节点的现象


sql错误日志如下:

spid20s Service Broker管理器已关闭。
spid11s SQL Server正在响应来自Service Control Manager的“停止”请求而终止。这仅是一条信息性消息。无需用户操作。
spid11s SQL跟踪由于服务器关闭而停止。跟踪ID =’1’。这仅是一条信息性消息; 无需用户操作。

从日志的提示信息上,我们可以看出sqlserver失败,来自 管理控制器的停止请求,从日志信息中,我们可以分析出sqlserver已经成功启动,但是由于其它原因,被要求关闭。
我们需要从以下两个方面着手处理:
1 本地sql server服务
2 sqlserver资源联机服务
如果上次两个任一失败,都会导致故障无法转移。
————————–
最后我们通过查阅操作系统日志,发现以下信息

[Microsoft] [SQL Server Native Client 10.0] 注册表信息已损坏或丢失。确保提供商安装并正确注册。
[Microsoft] [SQL Server Native Client 10.0] 客户端无法建立连接
[Microsoft] [SQL Server Native Client 10.0]建立到SQL Server的连接时发生网络相关或实例特定的错误。服务器未找到或无法访问。
SQL SERVER – 无法故障转移SQL Server实例 – 错误:注册表信息损坏或丢失

从过以上的日志信息,我们可以看出注册表中相关信息异常
—————————————
处理方法:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer 下不包含Node2节点信息
但Node1中,存在相关注册表信息,将Node1上的注册表相关信息导出,并导入至Node1中,sqlserver故障转移恢复正常。
—————————————