【问题标题】:SQL Server 2012 AlwaysOn synchronous replica is not actually synchronous for readingSQL Server 2012 AlwaysOn 同步副本实际上不是同步读取
【发布时间】:2014-02-05 07:39:01
【问题描述】:

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

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

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

【问题讨论】:

  • 我们有同样的问题。有什么解决办法或变通办法吗?
  • 希望我早点看到这个。文档确实具有误导性。在法律上在技术上是正确的。没有解决办法。您必须知道每个查询是否可以安全地接受延迟

标签: synchronization sql-server-2012 scalability alwayson


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多