同步提交模式下 Always On 只读副本主备查询结果不一致原因分析
同步提交模式下使用只读副本时,是否会出现次要副本与主副本查询结果不一致的情况?
环境配置
当前使用的是由主服务器和次要副本组成的简单 Always On 可用性组,配置信息如下:
业务场景与异常现象
日常流程的两个连续操作如下:
- 通过主副本连接,在 TableA 表中执行插入操作:
INSERT INTO TableA(UniqueId, Column1) SELECT 123, Column2 FROM @TVP - 插入操作完成后,立刻通过只读副本的只读连接,查询刚写入的对应数据:
SELECT Column1 FROM TableA WHERE UniqueId = 123
实际运行过程中,偶尔会出现查询无返回行的情况,无法查到刚刚插入的 UniqueId=123 的数据。
相关困惑
我最初推测该问题是因为只读副本尚未从主副本同步到对应数据,但我原本认为,在同步提交模式下,插入操作会在数据完成次要副本的日志固化后才会向客户端返回执行结果,按逻辑不应该出现上述异常。想明确出现该现象的根本原因是什么。
内容的提问来源于stack exchange,提问作者Jesse Moreland
相关产品推荐
相关产品推荐

