首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“同步提交可用性模式”是否确保副本之间的一致性?

“同步提交可用性模式”是否确保副本之间的一致性?
EN

Database Administration用户
提问于 2014-12-05 12:24:38
回答 1查看 3.7K关注 0票数 7

如果您在同步提交可用性模式同步提交可用性模式上引用MSDN文档,您可以阅读:

在同步提交可用性模式(同步提交模式)下,在加入可用性组后,辅助数据库会赶上相应的主数据库并进入同步状态。只要数据同步继续,辅助数据库就保持同步。这保证了在给定主数据库上提交的每个事务也都已提交到相应的辅助数据库中。当给定次副本上的每个辅助数据库同步时,二级副本作为一个整体的同步-健康状态是健康的。

假设我有一个具有HEALTHY状态的同步数据库的三个节点可用性组。所有副本都使用同步提交模式。

另外,假设我有配置只读路由,以便使用ApplicationIntent=Read-Only的请求连接到辅助副本。

如果我通过读-写连接提交一个更改,那么,非常快地,通过使用ApplicationIntent=Read-Only连接的另一个连接选择更改的记录,我能期望每次从这两个副本返回一致的结果吗?

编辑-支持接受答案的进一步信息.

在Microsoft AlwaysOn:将只读工作负载卸载到二级副本(Sunil Agarwal,2012年年7月)中,标题“数据延迟”下面的一节是(强调“我的”)。

在辅助副本上运行的报告工作负载将产生一些数据延迟,通常会根据主工作负载和网络延迟而产生几秒钟到几分钟的延迟。即使将辅助副本配置为同步模式,也存在数据延迟。虽然确实,在将ACK发送到主副本之前,同步副本有助于在理想条件下(即RPO = 0)保证不丢失提交事务的事务日志记录,但它并不保证辅助副本上的重做线程确实将关联的日志记录应用于数据库页。所以有一些数据延迟。您可能想知道,当您在异步模式下配置了辅助副本时,这种数据延迟是否更有可能发生。这是一个更难回答的问题。如果主副本和辅助副本之间的网络无法跟上事务日志流量(也就是说,如果带宽不足),则异步副本可能会进一步落后,从而导致更高的数据延迟。在同步复制的情况下,不足的网络带宽不会导致次要的数据延迟更高,但它会减缓主工作负载的事务响应时间和吞吐量。如果您的报告工作负载不能容忍任何数据延迟,则必须在主副本上运行它。好消息是,通常大多数报告工作负载可以容忍某些数据延迟,因此可以安全地迁移到二级副本。

虽然微软文档的广度并不矛盾,但我认为它可以更加明确。“同步”并不意味着原子性和一致性,就像缩略词中使用的那样。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2014-12-05 12:47:04

同步状态只确保写入由辅助(写入磁盘的日志)增强。它没有说明它们正在被应用(数据改变了)。

我能期望每次都从两个副本返回一致的结果吗?

是。读起来总是一致的。但请记住,在关系术语中,一致性(ACID)与分布式(CAP)一致性有不同的含义。您不能保证读取最新的一致状态。特别是,您不一定会阅读您自己提交的写入。从每个副本中读取的数据虽然每个都是一致的,但可能不匹配。

票数 10
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/84420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档