2014-01-16 71 views
9

我试图在将数据写入主副本之后从同步辅助副本读取数据。 但我的数据不存在于中学。SQL Server 2012 AlwaysOn同步副本实际上并不是同步读取

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

是否有可能使辅助副本真正同步读取查询?

+0

我们有完全相同的问题。有没有解决方法或解决办法? – Dima

+0

希望我早点见过这个。文档确实是误导人的。技术上正确的法律方式。没有解决方案。你必须知道每个查询是否安全以接受延迟 –

回答

9

文章从MS中的“AlwaysOn杂志:卸载只读工作负载到辅助副本”:

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