SQL 可用性组

1 availability-groups sql-server-2017

我有一个关于 SQL 标准可用性组的问题。我目前有一个 AG 设置,其中包含一个主副本和一个辅助副本。我正在使用同步提交,但对异步感到好奇。次要副本将/可以落后多远?如果辅助副本因任何原因离线,它会在上线后完全赶上吗?二级可以停机多久才赶不上?我了解两种提交类型之间的区别(一种在提交给应用程序之前验证事务已提交,而另一种提交类型则没有)。我不确定的是,在异步提交类型中,辅助节点可以离线多长时间。

Kri*_*yer 5

次要副本将/可以落后多远?

这取决于许多因素。2 个节点之间的网络速度、辅助节点上的磁盘速度、正在传输的数据量。其中许多 KPI 位于 AG 概览仪表板中(在 SSMS 中右键单击 AG 并选择“显示仪表板”)。您可以选择一系列不同的指标,包括日志发送队列、日志重做队列、估计的恢复时间、估计的数据丢失等。 正如下面来自 scsimon 的评论所述,在异步时,辅助节点并不是每个都真正“赶上” '。它将始终显示“正在同步..”状态而不是“已同步”。

如果辅助副本因任何原因离线,它会在上线后完全赶上吗?

是的。还值得注意的是,在您的辅助副本不可用/断开连接期间,您将无法备份日志中尚未发送到辅助副本的任何事务。在 sys.databases 中,列 log_reuse_Wait_desc 将填充“AVAILABILITY REPLICA”,因为除非在辅助服务器上提交事务,否则无法刷新事务。

二级可以停机多久才赶不上?

中学不会只是“赶不上”。如果您关闭辅助服务器(而不将其从 AG 中删除),日志备份将不会刷新事务,日志文件将填满,然后您将耗尽空间,从而导致任何未来的事务失败。辅助服务器可以关闭的时间在很大程度上取决于您拥有多少空间以及您的事务量是多少。一旦辅助节点恢复正常,它将开始应用在它关闭时发生的事务。我已经看到这需要几分钟到几个小时。

对于短暂的中断/修补,让辅助连接保持连接很好,但如果您正在查看长时间的中断,删除辅助副本可能更容易,而不必担心日志文件填满的麻烦。然后,一旦中断完成,您只需将 DB 重新初始化到 AG 中。