Tar*_*ryn 22 sql-server upgrade availability-groups sql-server-2017 distributed-availability-groups
我们正准备对我们的 SQL Server执行大规模升级,并注意到分布式可用性组的一些异常行为,我正试图在继续之前解决这些问题。
上个月,我将远程辅助服务器从 SQL Server 2016 升级到 SQL Server 2017。该服务器是多个分布式可用性组 (DAG)和一个单独的可用性组 (AG) 的一部分。当我们升级这台服务器时,我们没有意识到它会进入一个不可读的状态,所以在过去的一个月里,我们一直完全依赖于主服务器。
作为即将进行的升级的一部分,我将CU 4补丁应用到服务器并重新启动它。当服务器重新上线时,刚刚打补丁的辅助服务器显示所有 DAG/AG 都在同步,没有任何问题。
然而,初选展示了一个非常不同的故事。报道称
在最初感到恐慌之后,我尝试了以下方法来使 DAG 中的事物再次同步:
ALTER DATABASE [<database] SET HADR RESUME;- 执行没有错误,但没有恢复任何同步我最后一次再次同步数据的尝试是登录到辅助服务器,然后手动重新启动 SQL Server 服务。手动重新启动服务似乎有点极端,因为我希望重新启动服务器就足够了。
有没有人遇到过重启后 DAG 没有开始同步到辅助节点的问题?如果有,是如何解决的?
我检查了 SQL Server 错误日志和辅助服务器上的事件查看器,没有发现任何异常。
请注意,这不是一个确定的答案,但它是与Taryn聊天后的最佳答案。
然而,初选展示了一个非常不同的故事。它报告说单独的 AG 同步没有任何问题,但 DAG 处于不同步/不健康状态
如果分布式 ag 下的各个数据库和 AG 表示它们运行良好且正在同步,则很有可能这只是 DMV 和/或 SSMS 仪表板中的一个小问题。由于错误日志中没有任何内容表明副本未连接或处于断开连接状态。
不幸的是,由于问题已经解决,所以很难确切地说出它是什么......但如果将来有人发生这种情况:
sqlserver.hadr_dump_log_block或sqlserver.hadr_apply_log_block查看辅助节点是否实际接收/应用日志块或...SQLServer:Database Replica\Log Bytes Received/sec如果您在该辅助节点上接收数据,但分布式 ag 仍然显示不同步或不健康,那么我会让它稍微看看 DMV 值是否发生变化,因为它显然正在接收和处理日志块。
但是,如果不是,那么我们需要进一步调查哪个超出了答案的范围。