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