环境信息:
主机名 | IP | |
---|---|---|
故障转移群集: | TEST-MSSQL-CLUSTER | 100.65.1.210 |
SQL Server 群集: | TESTMSSQL | 100.65.1.211 |
群集描述:
在有故障转移群集的两台机器上,使用文件共享目录做仲裁盘。创建一个 iscsi 共享磁盘,添加到故障转移群集的磁盘上,并且作为 SQL Server 2019 的数据盘。
两台节点的防火墙已经关闭。
问题:
使用“新的SQLServer故障转移群集安装”安装到最后时候遇到以下错误:群集资源"SQL Server"无法联机,因为在依赖关系资源"SQL Network Name( )"联机时出现错误。有关详细信息,请参考故障转移群集管理器中的"群集事件"。:
故障转移群集的 VIP:100.65.1.210 和 SQL Server 群集 VIP:100.65.1.211 都是正常联机状态:
群集的SQL Server (MSSQLSERVER)
角色中关键事件主要有以下两个错误:
- 事件ID:1205
群集服务无法使群集角色“SQLServer(MSSQLSERVER)”完全联机或脱机。一个或多个资源可能处于失败状态。这可能会影响群集角色的可用性。
- 事件ID:1069
群集角色“SQLServer(MSSQLSERVER)”中的类型“Network Name”的群集资源“SQL Network Hame(TESTMSSQLSERVER)”失败。错误代码为“0x3eb”(“无法完成此功能。”)。
根据资源和角色的失败策略,群集服务可能会尝试使资源在此节点上联机,或将组移到群集的其他节点中,然后重新启动它。请使用故障转移群集管理器或 Get-ClusterResource Windows Power Shell cmdlet 检查资源和组状态。
根本原因
在Active Directory(AD)里,CNO 群集计算机账户TEST-MSSQL-CLUSTER$
,没有足够权限去绑定新的名字 TESTMSSQLSERVER
。 CNO 绑定新 NetBIOS 名时,被拒绝了。
解决办法
在Active Directory里,手动创建SQL虚拟机名(VCO)对象,并赋权。
步骤如下:
- 打开【Active Directory 用户和计算机】(
dsa.msc
)管理工具。 - 找到群集计算机账户(
TEST-MSSQL-CLUSTER$
)所在的组织单位(OU)。 - 手动新建一个计算机对象(Computer):名字就是
TESTMSSQLSERVER
。 - 新建完以后,右键新建的
TESTMSSQLSERVER
→ 【属性】→ 【安全】→ 【添加】群集账户TEST-MSSQL-CLUSTER$
。 - 给
TEST-MSSQL-CLUSTER$
授予完全控制权限。 - 保存。
这样,当群集服务TEST-MSSQL-CLUSTER
试图联机TESTMSSQLSERVER
时,就不会再被拒绝了,因为它已经提前有了VCO对象并有控制权限。点重试安装就不会报错。