如果辅助节点发生故障,则始终在主节点上提交

SSS*_*SSS 3 sql-server sql-server-2012 availability-groups

我在同步自动故障转移模式下配置了两个节点 SQL Server AlwaysOn 可用性组。

现在因为在同步模式下,事务需要首先在辅助副本上提交,只有在确认之后,它才会在主节点上提交。

现在,如果我的辅助副本节点出现故障,事务是否只会在我的主节点上提交,除非我的辅助节点出现?我的交易不会被硬化到磁盘吗?

Bre*_*zar 6

Books Online 在这方面有一个非常好的页面,包括:

如果次要副本超过主要的会话超时期限,则主要副本会临时转换为该次要副本的异步提交模式。当次要副本与主要副本重新连接时,它们会恢复同步提交模式。

换句话说,主节点在短时间内持有事务,感觉就像有一个阻塞锁阻止了你的事务完成。在主节点放弃辅助节点后,事务将通过,但只会在主节点上进行强化 - 而不是不可用的辅助节点。

默认会话超时时间为 10 秒。

如果您希望主服务器仅在特定数量的辅助服务器可用时接受事务,则需要升级到 SQL Server 2017 并使用新的 REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT 设置。