连接到带有MultiSubnetFailover的SQL Server 2012 AlwaysOn组监听器导致超时
问题描述:
当MultiSubnetFailover设置为true时,我们的开发人员无法连接到AlwaysOn可用性组监听器,这是一个奇怪的问题。但是,尝试直接连接到组的主节点时,客户端可以连接。我们使用.Net 4.0.3以及windows 7使用.Net 4.0.3,在windows 8上重现了这一点。和.Net 4.5。连接到带有MultiSubnetFailover的SQL Server 2012 AlwaysOn组监听器导致超时
我们还成功将我们的登台服务器连接到组监听器上,并使用sqlcmd和SMS使用MultiSubnetFailover标志连接到贵宾室。所以看起来听者本身是正确配置的。
下面是对Listener名称的nslookup结果。就我能在网上找到的,我们已经做得很好,但连接仍然超时。任何人都可以提供的帮助非常感谢。
更新:
通过排除法,这似乎以某种方式被涉及具有安装Visual Studio,对开发商的机器。
NSLOOKUP:
Non-authoritative answer:
Name: sql02
Address: 10.101.2.222
Name: sql02
Address: 10.101.1.222
Name: sql02
Address: 10.101.0.222
最少测试用例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var connection = new SqlConnection(@"
Data Source = sql02;
Initial Catalog = test;
Integrated Security = True;
MultiSubnetFailover = True;
MultipleActiveResultSets = True;
Max Pool Size = 512;");
connection.Open();
}
}
}
答
实际上,我们已经确定了问题的最后一周。
事实证明,这是由运行Avast!的开发机器创建的驱动程序问题!作为防病毒解决方案。我们无法找到防止这种情况的魔术设置,所以我们不得不卸载Avast!并将用另一种杀毒软件替代它。
答
尝试增加您的登录超时为30秒,看看是否连接成功。如果是这样,请记下连接所需的秒数。大约20-22秒吗?
您可以使用SQLCMD.EXE来测试这个是这样的:
SQLCMD -S听众-E -M -L30