9

我正在尝试在将数据写入主副本之后从同步辅助副本中读取数据。但我的数据不存在于二级。

在数据出现在辅助节点之前,有大约 100-500 毫秒的延迟。

是否可以使辅助副本对于读取查询真正同步?

4

1 回答 1

9

来自 MS 在文章“AlwaysOn:将只读工作负载卸载到辅助副本”中:

在辅助副本上运行的报告工作负载会产生一些数据延迟,通常为几秒到几分钟,具体取决于主要工作负载和网络延迟。即使您已将辅助副本配置为同步模式,也存在数据延迟。虽然同步副本确实有助于在理想条件下(即 RPO = 0)通过在向主节点发送 ACK 之前强化已提交事务的事务日志记录来确保不丢失数据,但它并不能保证 REDO 线程在辅助副本上确实已将关联的日志记录应用到数据库页面。所以会有一些数据延迟。您可能想知道,当您将辅助副本配置为异步模式时,是否更有可能出现这种数据延迟。这是一个更难回答的问题。如果主副本和辅助副本之间的网络无法跟上事务日志流量(即,如果没有足够的带宽),异步副本可能会进一步落后,从而导致更高的数据延迟。在同步副本的情况下,网络带宽不足不会导致辅助节点上的数据延迟更高,但会减慢主工作负载的事务响应时间和吞吐量。

于 2014-03-04T18:21:31.403 回答