我正在尝试在将数据写入主副本之后从同步辅助副本中读取数据。 但我的数据不存在于二级。
在辅助数据出现之前,有一个约100-500毫秒的延迟。
是否可以使辅助副本与读取查询真正同步?
答案 0 :(得分:9)
来自MS的文章“AlwaysOn:将只读工作负载卸载到辅助副本”:
在辅助副本上运行的报告工作负载将产生一些数据延迟,通常为几秒到几分钟,具体取决于主要工作负载和网络延迟。即使已将辅助副本配置为同步模式,也存在数据延迟。虽然同步副本确实通过在向主数据库发送ACK之前强化已提交事务的事务日志记录来帮助保证理想条件(即RPO = 0)中的数据丢失,但它并不保证REDO线程在辅助副本上确实已将关联的日志记录应用于数据库页面。所以有一些数据延迟。您可能想知道在异步模式下配置辅助副本时是否更有可能出现此数据延迟。这是一个更难回答的问题。如果主副本和辅助副本之间的网络无法跟上事务日志流量(即,如果没有足够的带宽),则异步副本可能会进一步落后,从而导致更高的数据延迟。对于同步副本,网络带宽不足不会导致辅助设备上的数据延迟增加,但会降低主要工作负载的事务响应时间和吞吐量。