2009-04-15 156 views
2

任何人都可以指向我或告诉我如何将连接字符串写入到SQL Server群集实例?将连接字符串连接到SQL Server群集

我想建立到SQL Server集群特定实例的数据库(初始目录)的可信连接。我发现了很长一段时间,但找不到谷歌的官方答复。

我在问C#ADO.Net代码的连接字符串。

我知道如何将连接字符串写入普通的单机非群集SQL Server实例。

回答

3

服务器名称是虚拟服务器名称。

例子:

  • 你有物理pserver1pserver2
  • 这些一起组成集群cserver - 此托管虚拟服务器vserv1(也许,见下文)vserv2

所以,这是vserv1\instancenamevserv1。你不使用物理服务器名

编辑,基于虚拟服务器可能的名字数:

集群可以是主动/被动/ A/P)或主动/主动(A/A)

  • 在A/P中,只托管一个虚拟服务器,并且不主动使用备用节点。
  • 在A/A中,有2个虚拟服务器,通常每个节点都有一个虚拟服务器。每个节点都是等待另一个节点的。
+0

困惑 - “主机虚拟服务器vserv1(也许)vserv2”,你的意思是集群有两个虚拟服务器名称,vserv1和vserv2?或者这是一个错字? – George2 2009-04-16 06:49:08

+0

什么是SQL群集非默认实例的连接字符串格式? – George2 2009-05-20 12:41:47

3

连接字符串以通常的方式写入;但是在集群中,您有3个(或更多)地址:每个节点为集群定义一个节点,为集群定义一个节点。 例如:我们有两个节点,地址分别为192.168.0.10和192.168.0.20:如果您在连接字符串中将这些数字中的一个写入数据源,您将获得对该物理实例的访问权限。但是,如果要访问群集(虚拟)Sql Server实例,则必须使用群集的地址(例如:192.168.0.230)作为DataSource。 当然,如果您与群集位于同一个域中,也可以使用机器的名称而不是IP地址。

0

这没有记录在我能找到的任何地方,但我必须使用群集上可用性组侦听器的名称。例如:

data-source=tcp:AG1-Listener 

从字面上看,这是无处可记的。我很幸运,找到了一个连接字符串到某个博客上的某个集群,并从那里找出它。

0

我知道这是一个古老的线程,但:

https://support.microsoft.com/en-us/kb/273673

解释了为什么超时应在连接上指定的。摘录如下。

如果SQL Server服务器由群集管理员进行故障转移,则不会发送TCP重置数据包。如果SQL Server进程被操作系统终止(通过Kill.exe),则会发送重置数据包。

如果应用程序未指定查询超时参数或查询超时时间为零(0),则这可能会影响客户端应用程序。

如果应用程序没有查询超时值,则在故障转移发生后,打开的连接将保留在ESTABLISHED状态。事实上,打开的连接没有关闭,并且没有从这些连接发送进一步的TCP数据包表明这些连接完全空闲。因为故障转移没有向客户端应用程序发送任何TCP重置数据包,所以这些打开的连接会无限期地等待查询结果(假设无限的查询超时),并可能导致连接停止响应(挂起)。