0

我们已经设置了一个 SQL Server 2019 Enterprise High Availability 集群,前面有一个可用性组侦听器 (AGL)。与我们进行手动/计划的故障转移相比,我们在测试自动(脏)故障转移时遇到了奇怪的(?)行为。最紧迫的问题是客户端何时在 Centos 7 上使用 Microsoft ODBC Driver 17.7 for SQL Server。但同样的情况也发生在 .net framework/core 上。

场景

手动/计划故障转移

测试

我们告诉 AG 将集群从主副本故障转移到辅助副本。

AG-行为

AG 故障转移到辅助副本。

客户行为

客户端立即与 AG 断开连接,ODBC 驱动器尝试重新连接,成功并且客户端可以继续工作。

自动/脏故障转移(不像我们预期的那样工作)

测试

我们断言客户端通过 AG 连接到主副本,然后拔下主副本机器上的插头(以模拟断电)。

AG-行为

AG 故障转移到辅助副本。

客户行为

客户端不会断开连接,而是继续等待响应,直到查询超时开始(这需要几分钟,太长了)。

问题

据我们了解,AG 应该在手动/计划和自动故障转移期间断开客户端的连接,但对我们来说,这只发生在手动/计划的故障转移期间。这是此解决方案的预期行为还是我们的 SQL Server/AG 配置有问题?

4

0 回答 0