前两天一位新朋友在QQ上说:“安装SQL Server集群的时候,第二个节点选不上”:
我当时第一反应是Windows的集群没有搞好,于是乎先后问了“另一个节点有没有开机”、“有没有安装分布式事务协调其(MSDTC)”、“是不是使用远程桌面安装”等一系列无关痛痒的问题,但依然没有头绪,找不到明显的硬伤。
此时,我还是坚持认为问题出现在Windows的集群上,于是让他对群集管理器进行截图:
细心的朋友应该能够发现“MSDTC” 装错地方了,正常来说应该是装在群集组中,很多文档中都说MSDTC并不是必须的,但我遇到好几个案例都是因为没有安装MSDTC导致安装失败,于是我认为终于找到突破口了。
纠正了这个错误后,问题依旧,另一个节点还是“不可用”,原因“未知”。
让他从另一个节点开始安装,故障依旧。
于是,我让他做一下故障转移,看看资源是否能正常切换到另一个节点中,实验表明集群具有故障转移能力,简单来说,操作系统这一层上的集群(MSCS) 已经没有问题了,明明MSCS没有问题,但是SQL Server集群安装时却死活不认另一个节点,很是奇怪。
第二天,他让我“远程协助”,由于从事运维有一段时间了,对于故障的排除我养成了一种“亲手确认”的习惯,首先是自己再做一次MSCS的故障转移,刚开始切换的时候,主节点挂了,原来他机器的性能问题(他的机器跑了3个虚拟机,一个域控制器、两个节点),在群集管理器中清晰地看到资源的转移过程,的确MSCS是没有问题的。
于是我抱着拼人品的心态,开始安装SQL Server,一路下来都很顺利,到了“选节点”那步,也就是本文那一张图片所描述的那步,不能选择第二个节点,“亲手确认”了病症后,还是回到了昨天卡住的那个问题上。
于是借助万能的 google 和 baidu ,使用关键字“sql server 集群 安装 不可用节点 未知”搜索,发现没有什么可用的信息,“未知”都落在作者、出处上,于是使用仅剩0.4级的英语将关键字翻译成英语“sql server cluster unavailable node reason unknow”,终于在MSDN上找到了一个类似的问题:cluster install 2nd node unavailable ,最后作者“自问自答”地回答了问题:
ok, after setting up a packet sniffer and running behind the bits and bytes I finally found the solution to this problem.
Make sure the "Remote Registry" service is running on second (inactive) node!
简单来说就是开启 Remote Registry 这个服务,再查了一下该服务的状态——“禁用”,而我这边的 SQL Server 集群的 Remote Registry 是自动启动的,先不管马上将这个服务启动,重新开始SQL Server 安装进程,终于可以选择第二个节点了。
这让我想起了他的机器名有YLMF的字样,于是我怀疑他的系统是那种“雨林木风”xxxxxxxx版,后来也证实了这一点:
折腾了这么久,这次 SQL Server 集群安装不能选择第二个节点的原因是 Remote Registry 这个服务没有启动,而没有 Remote Registry 没有启用的原因是它被禁用,而 Remote Registry 被禁用的原因极有可能是由于“雨林木风”xxxxxxxx版经过“优化”并且禁用了“无关痛痒”的服务所致。