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