我们的应用程序是否与 sql-server AlwaysOn 一起工作?

Ada*_*ler 3 sql-server availability-groups

这是我们的一位客户提出的问题。现在我已经给出了一个通用的回应,我们将支持这一点,但是他们应该为我们提供一个测试环境。

我们的应用程序使用 .net,我们允许客户端使用数据库实例名称和用户名/密码配置我们的服务器服务(我们使用 sql-server 身份验证)。

据我所知,他们需要做的就是使用集群实例名称而不是数据库服务器的主机名配置我们的应用程序。阅读Microsoft 提供的先决条件似乎对我们来说是完全透明的。

这样对吗?我们还需要对连接字符串进行其他更改吗?还有其他问题吗?

SQL*_*mer 5

首先,让我们澄清术语。AlwaysOn 是一个 Microsoft 营销术语,其中包括 SQL Server 可用性组和 SQL Server 故障转移群集实例。您应该停止使用 AlwaysOn,并针对所有未来的通信进行具体说明。

如果您指的是 FCI:配置应该对您的应用程序完全透明。他们应该配置到 FCI 的虚拟网络名称的连接,您的应用程序不会注意到任何差异。

如果您指的是 AG:对于 AG,他们可以选择是否配置 AG 侦听器。

如果他们没有使用侦听器,那么一切都很好,您的应用程序不会注意到任何区别。

如果他们在单个子网中使用侦听器,则它是透明的。

如果他们使用具有多个子网(侦听器的多个 IP)的侦听器,则您的应用程序将需要支持 MultiSubnetFailover=TRUE 连接参数,否则他们将需要修改 RegisterAllProvidersIP Windows 属性。如果其中之一没有被使用,那么他们就会遇到 DNS 缓存错误 IP 地址的问题,并且可能会责怪应用程序连接失败。

请参阅有关 MultiSubnetFailover 参数的这篇文章

请参阅有关 RegisterAllProvidersIP 属性的这篇文章