任何人都可以指向我或告诉我如何将连接字符串写入到SQL Server群集实例?将连接字符串连接到SQL Server群集
我想建立到SQL Server集群特定实例的数据库(初始目录)的可信连接。我发现了很长一段时间,但找不到谷歌的官方答复。
我在问C#ADO.Net代码的连接字符串。
我知道如何将连接字符串写入普通的单机非群集SQL Server实例。
任何人都可以指向我或告诉我如何将连接字符串写入到SQL Server群集实例?将连接字符串连接到SQL Server群集
我想建立到SQL Server集群特定实例的数据库(初始目录)的可信连接。我发现了很长一段时间,但找不到谷歌的官方答复。
我在问C#ADO.Net代码的连接字符串。
我知道如何将连接字符串写入普通的单机非群集SQL Server实例。
服务器名称是虚拟服务器名称。
例子:
pserver1
,pserver2
cserver
- 此托管虚拟服务器vserv1
(也许,见下文)vserv2
所以,这是vserv1\instancename
或vserv1
。你不使用物理服务器名
编辑,基于虚拟服务器可能的名字数:
集群可以是主动/被动/ A/P)或主动/主动(A/A)
连接字符串以通常的方式写入;但是在集群中,您有3个(或更多)地址:每个节点为集群定义一个节点,为集群定义一个节点。 例如:我们有两个节点,地址分别为192.168.0.10和192.168.0.20:如果您在连接字符串中将这些数字中的一个写入数据源,您将获得对该物理实例的访问权限。但是,如果要访问群集(虚拟)Sql Server实例,则必须使用群集的地址(例如:192.168.0.230)作为DataSource。 当然,如果您与群集位于同一个域中,也可以使用机器的名称而不是IP地址。
这没有记录在我能找到的任何地方,但我必须使用群集上可用性组侦听器的名称。例如:
data-source=tcp:AG1-Listener
从字面上看,这是无处可记的。我很幸运,找到了一个连接字符串到某个博客上的某个集群,并从那里找出它。
我知道这是一个古老的线程,但:
https://support.microsoft.com/en-us/kb/273673
解释了为什么超时应在连接上指定的。摘录如下。
如果SQL Server服务器由群集管理员进行故障转移,则不会发送TCP重置数据包。如果SQL Server进程被操作系统终止(通过Kill.exe),则会发送重置数据包。
如果应用程序未指定查询超时参数或查询超时时间为零(0),则这可能会影响客户端应用程序。
如果应用程序没有查询超时值,则在故障转移发生后,打开的连接将保留在ESTABLISHED状态。事实上,打开的连接没有关闭,并且没有从这些连接发送进一步的TCP数据包表明这些连接完全空闲。因为故障转移没有向客户端应用程序发送任何TCP重置数据包,所以这些打开的连接会无限期地等待查询结果(假设无限的查询超时),并可能导致连接停止响应(挂起)。
困惑 - “主机虚拟服务器vserv1(也许)vserv2”,你的意思是集群有两个虚拟服务器名称,vserv1和vserv2?或者这是一个错字? – George2 2009-04-16 06:49:08
什么是SQL群集非默认实例的连接字符串格式? – George2 2009-05-20 12:41:47