5

谁能指出我或告诉我如何将连接字符串写入 SQL Server 群集实例?

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

我要求 C# ADO.Net 代码的连接字符串。

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

4

4 回答 4

3

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

例子:

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

所以,它是vserv1\instancenamevserv1。您不使用物理服务器名称

根据虚拟服务器的可能名称数量进行编辑:

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

  • 在 A/P 中,只有一个虚拟服务器被托管,备用节点没有被主动使用。
  • 在 A/A 中,有 2 个虚拟服务器,通常每个节点托管一个。每个节点都为另一个节点备用。
于 2009-04-15T15:14:02.840 回答
3

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

于 2009-04-16T09:41:10.293 回答
0

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

data-source=tcp:AG1-Listener

从字面上看,这在任何地方都没有记录。我很幸运,在某处的博客上找到了一个集群的连接字符串,并从那里弄清楚了。

于 2013-08-08T16:39:07.040 回答
0

我知道这是一个旧线程,但是:

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

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

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

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

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

于 2016-01-20T15:03:40.823 回答