【问题标题】:MultiSubnetFailover does not work with ODBC13/17 in WindowsMultiSubnetFailover 不适用于 Windows 中的 ODBC13/17
【发布时间】:2018-05-24 04:59:01
【问题描述】:

在 Windows 中,ODBC 版本 13/17 是否可以与 MultiSubnetFailover 关键字和多子网集群环境一起使用?

在Windows中使用ODBC13/17,故障转移后,无法重新连接到主节点并报错

Microsoft][ODBC Driver 13 for SQL Server]连接是 坏了,恢复是不可能的。客户端驱动程序试图 恢复连接一次或多次,所有尝试均失败。 增加 ConnectRetryCount 的值以增加 恢复尝试

我使用 SQL Server 2016 和不同子网中的 2 个节点。

我的连接字符串看起来像

"Driver={ODBC Driver 13 for SQL Server};Server="170.25.132.24";DB="test";USER="abc";PW="XXX";MultiSubnetFailover=No"

当我们设置 MultiSubnetFailover=No 时,预期的结果是什么?是否建议在multisubnet集群环境中设置MultiSubnetFailover=No

【问题讨论】:

    标签: sql-server sql-server-2016


    【解决方案1】:

    设置MultiSubnetFailover=No似乎没有任何好处

    微软声明:

    我们建议对单子网和多子网连接使用此设置 到可用性组侦听器和 SQL Server 故障转移群集 实例名称。启用此选项会添加额外的优化, 即使是单子网场景。

    Listeners, Client Connectivity, Application Failover

    Microsoft ODBC Driver 17 for SQL Server 支持故障转移集群:

    ODBC Driver on Linux and macOS Support for High Availability and Disaster Recovery

    您需要在连接字符串中指定 MultiSubnetFailover=Yes,并且 您应该将可用性组的可用性组listener指定为连接字符串中的服务器。

    如果您使用的是 Windows,我建议您使用 SQL Server 本地客户端: SQL Server Native Client Support for High Availability, Disaster Recovery

    【讨论】:

    • 是的,我同意。在 Linux 中,13 和 17 都可以正常工作。但在 Windows 中,它没有按预期工作。我已经给了 AG 监听器和 MultiSubnetFailover=Yes 另外,当我们设置 MultiSubnetFailover=No 时,预期的结果是什么?
    • 保持 MultiSubnetFailover=Yes 有一个优势。但我想知道设置为否时的行为。在某些情况下,即使设置为否,我也可以在故障转移后重新连接,但重新连接需要更多时间。但在某些情况下,它无法重新连接并继续重试。我无法断定这是预期的行为。
    • 您是否尝试过将连接超时时间增加到 60 秒? : 连接超时=60;
    • 不,我没有。我已经离开应用程序尝试重新连接一个多小时。但是,它仍然没有重新连接。我认为 MultiSubnetFailover=No 会导致未定义的行为。
    猜你喜欢
    • 2013-04-27
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 2021-02-15
    相关资源
    最近更新 更多