配置群集角色需为每个角色单独设置首选所有者(有序候选节点列表)与故障转移策略(含阈值、重启、故障回复),并限定可能所有者范围;SQL Server FCI受WSFC驱动,依赖HealthCheckTimeout调优且不支持与AlwaysOn自动互通。
配置群集角色的首选所有者与故障转移策略,核心是让角色在故障时按预期迁移、不盲目回切、也不因设置不当导致服务中断。这些设置必须为每个角色单独配置,不能全局统一。
首选所有者的设置逻辑
首选所有者不是“主备”关系,而是一个带顺序的候选节点列表。群集发生故障转移时,会从列表顶部开始查找第一个健康且可用的节点来承载该角色。
- 可在“故障转移群集管理器”中右键角色 → “属性” → “常规”选项卡下编辑首选所有者列表
- 支持拖动调整节点顺序;排第一的节点恢复后是否立即接管,取决于是否启用“故障回复”(见下文)
- 若首选所有者全部不可用,群集会继续尝试列表之后的其他健康节点,但始终遵守仲裁规则,不会强行启动在少数派节点上
- 建议将硬件性能更强、存储路径更短、网络延迟更低的节点放在前列,而非仅按“主/备”直觉排序
故障转移策略的关键参数
每个角色的“故障转移”选项卡里可配置三项关键行为:故障转移触发条件、失败后重试逻辑、以及是否允许自动回切。
Windows 命令行编码与兼容规范。涵盖 GBK/UTF-8 编码、PowerShell/pwsh 互操作、Python/Node.js、Git 配置及代码生成规则。适用于 Windows 10/11 + MSYS2/Git Bash 环境下的所有命令行操作。
- 故障转移阈值:指定单位时间内资源失败多少次后,整个角色组启动故障转移(例如“3次/6小时”)
- 重启阈值:同一节点上资源失败后,是否先尝试本地重启(如SQL Server服务崩溃时先重启服务,而非立刻换节点)
- 故障回复:启用后,当原首选所有者恢复并再次健康时,角色会自动迁回;禁用则保持在当前节点,避免频繁切换影响业务
可能所有者与实际约束
除了首选所有者,每个角色还关联一个“可能所有者”列表——这是该角色被允许运行的所有节点集合。它构成安全边界:
- 不在“可能所有者”列表中的节点,即使健康也无法承载该角色,哪怕首选所有者全宕机
- 此列表默认包含所有群集节点,但可手动缩小,例如因许可限制、存储访问权限或维护窗口等原因排除某些节点
- 修改后需确保所选节点确实具备运行该角色所需的全部依赖(如SQL Server实例、磁盘资源、IP地址等)
结合SQL Server FCI的特别注意点
对于SQL Server故障转移群集实例(FCI),其故障转移行为由WSFC底层机制驱动,但有额外约束:
- FCI资源组每次只能在一个节点上联机,客户端通过虚拟网络名和IP访问,无需感知节点变化
- HealthCheckTimeout值(默认60秒)直接影响故障检测灵敏度,过短易误判,过长则RTO拉长,建议根据实际负载压力测试调整
- AlwaysOn可用性组不能对FCI做自动故障转移,仅支持手动切换;反之亦然,二者故障转移机制不互通

















