症状
假设你有一个分布式可用性组(DAG),其中包含 Microsoft SQL Server 2016 和2017中的多个数据库(>15)。 有时,连接超时在 SQL Server 的全局主转发器实例和 DAG 转发器实例之间发生。 重新建立连接后,数据库的数据移动不会自动恢复。 此外,你可能会注意到以下情况:
-
数据库副本处于 NOT_HEALTY 和 NOT_SYNCHRONIZING 状态。
-
DAG 转发器中的 last_commit_time 与连接超时的时间相符。
你还可能会看到在主可用性组的主副本主机的错误日志中记录了以下错误消息:
日期时间spid329s 与 id 为 [ReplicaID] 的可用性副本"ReplicaName"的以前建立的连接上出现连接超时。 存在网络或防火墙问题,或者可用性副本已转换为解析角色。
DateTime Spid1538s Alwayson 可用性组与辅助数据库的连接在可用性副本 "ReplicaName"上通过副本 ID: {ReplicaID} 终止了主数据库"DatabaseName"的连接。 这只是一条信息性消息。 无需用户操作。
-
如果不是 "分布式可用性" 组中的所有数据库,则会报告这种情况。
状态
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。
解决方案
在 SQL Server 的以下累积更新中修复了此问题:
关于 SQL Server 的累积更新:
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
参考
了解 terminology Microsoft 用于描述软件更新的术语。