【发布时间】:2010-10-19 14:15:41
【问题描述】:
谁能指出或告诉我如何将连接字符串写入 SQL Server 集群实例?
我想与 SQL Server 集群的特定实例的数据库(初始目录)建立可信连接。我找了很长一段时间,但找不到谷歌的官方答案。
我要求 C# ADO.Net 代码的连接字符串。
我知道如何将连接字符串写入普通的单机非集群 SQL Server 实例。
【问题讨论】:
标签: c# sql-server ado.net cluster-computing
谁能指出或告诉我如何将连接字符串写入 SQL Server 集群实例?
我想与 SQL Server 集群的特定实例的数据库(初始目录)建立可信连接。我找了很长一段时间,但找不到谷歌的官方答案。
我要求 C# ADO.Net 代码的连接字符串。
我知道如何将连接字符串写入普通的单机非集群 SQL Server 实例。
【问题讨论】:
标签: c# sql-server ado.net cluster-computing
服务器名称是虚拟服务器名称。
例子:
pserver1,pserver2
cserver
-这托管虚拟服务器vserv1(也许,见下文)vserv2
所以,它是vserv1\instancename 或vserv1。您不使用物理服务器名称
根据虚拟服务器可能名称的数量进行编辑:
集群可能是主动/被动/A/P)或主动/主动(A/A)
【讨论】:
连接字符串以通常的方式编写;但是在集群中,您有 3 个(或更多)地址:一个用于构成集群的每个节点,一个用于集群。 例如:我们有两个节点,地址分别为 192.168.0.10 和 192.168.0.20:如果您在连接字符串中写下其中一个数字作为 DataSource,您将获得对该物理实例的访问权限。但是,如果您想访问集群(虚拟)Sql Server 实例,则必须使用集群的地址(例如:192.168.0.230)作为数据源。 当然,您也可以使用机器名称代替 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 重置数据包,因此这些打开的连接会无限期地等待查询结果(假设无限期查询超时),并可能导致连接停止响应(挂起)。
【讨论】: