sql serveralwayson辅助同步数据库延迟

问题描述 投票:0回答:1

我有一台始终在线的 sqlserver 2016,带有一个主数据库和一个辅助数据库。但是,当我从主数据库确认插入已完成后立即查询辅助数据库时,我什么也没得到。 所以我认为这是因为主数据库在辅助数据库收到日志后确认事务,但是辅助数据库在收到来自主数据库的日志后需要一些时间将记录写入数据库。 所以主数据库和辅助数据库之间肯定存在一些延迟,问题是如何在得到主数据库的确认后立即查询辅助数据库?

sql-server alwayson
1个回答
0
投票

不幸的是,即使在同步模式下,也无法判断只读辅助设备是否已应用从主设备接收到的更改。

[这个答案][1]解释得很好:

即使配置了辅助,数据延迟仍然存在 副本到同步模式。虽然同步确实是这样 副本有助于保证理想条件下(即 RPO)不丢失数据 = 0) 通过在向主节点发送 ACK 之前强化已提交事务的事务日志记录,它不会 保证次要副本上的 REDO 线程确实已应用 关联的日志记录到数据库页面。

因此,您可以以某种方式对应用程序进行编程,如果您立即尝试读取自己编写的内容,则应该点击读写主键。所有其他读取工作负载都可以像平常一样重定向到只读副本。 [1]:https://stackoverflow.com/a/39574594/1458738

© www.soinside.com 2019 - 2024. All rights reserved.