WSFC故障转移致SQL事务复制中断,求无损故障转移方案
WSFC故障转移后保持SQL事务复制可用的方法
核心配置前提
要实现故障转移不中断复制,必须先确保基础配置满足集群兼容要求:
- 发布服务器必须使用WSFC集群虚拟网络名称作为连接标识,而非单个节点的主机名。所有订阅端的连接目标都指向该集群名称,故障转移后连接地址无需变更。
- 两个节点的SQL Server服务需使用统一域账户运行,该账户需拥有复制相关资源(快照共享、数据库文件)的访问权限。
- 快照共享路径必须使用**集群共享卷(CSV)**或域内共享文件夹,禁止使用单个节点的本地路径,避免故障转移后被动节点无法访问快照文件。
手动故障转移操作步骤
- 故障转移前暂停日志读取器代理:
EXEC sp_stop_job @job_name = '你的发布服务器-发布库-日志读取器代理作业名' - 等待日志读取器代理完成当前日志的读取与分发,确保发布库事务日志已处理至最新状态。
- 通过故障转移群集管理器执行节点切换操作。
- 故障转移完成后,确认新活动节点的SQL Server服务正常运行,发布库、分发库(若在集群内)已在线。
- 重启相关复制代理:
EXEC sp_start_job @job_name = '你的发布服务器-发布库-日志读取器代理作业名' EXEC sp_start_job @job_name = '你的订阅服务器-订阅库-分发代理作业名' - 打开复制监视器验证状态,确认无错误且订阅端数据与发布端一致。
自动故障转移适配方案
若启用自动故障转移,需配置以下内容保证复制自动恢复:
- 在两个节点上均配置复制代理作业,设置为SQL Server服务启动时自动触发。
- 在WSFC故障转移脚本中添加代理重启命令,确保故障转移完成后自动执行。
常见问题排查
- 若故障转移后复制中断,优先检查订阅端连接字符串是否指向集群名称,而非旧节点主机名。
- 查看复制代理作业日志,排查是否存在权限问题(如被动节点无法访问快照共享)或数据库未正确挂载的情况。
内容的提问来源于stack exchange,提问作者user3625272
相关产品推荐
相关产品推荐

