错误: 无法连接到群集命名实例通过防火墙

文章翻译 文章翻译
文章编号: 318432 - 查看本文应用于的产品
错误 #: 356696 (SHILOH_BUGS)
展开全部 | 关闭全部

症状

如果您试图通过一个防火墙连接的 SQL Server 群集命名的实例,并且您只能使用实例名称 (例如对于 SQL_Virtual_Name\Instance_Name) 在连接字符串中连接失败,并且您可能会收到以下错误消息之一:
错误消息 1
找不到指定的 SQL 服务器。
错误消息 2
SQL Server 不存在或者访问被拒绝。
如果服务器运行网络跟踪您可以看到服务器实际接收从客户端计算机上的虚拟服务器的 IP 地址的 UDP 端口 1434年查询 ; 但是,答案与当前正在运行 SQL Server 群集节点的物理的 IP 地址发送。

原因

如果连接字符串未指定目标 TCP 端口,客户端计算机连接到计算机正在运行群集的实例 SQL Server,时客户端库将查询该服务器上的端口 UDP 1434 收集有关实例的信息。

当服务器返回该信息时,网络框架包含的虚拟服务器的 IP 地址而不是在物理节点的 IP 地址。根据防火墙的配置可能会丢弃此网络数据包,并在客户端可能不会收到任何答案。

替代方法

若要变通解决此问题,您可以是:
  • 在连接字符串中指定 TCP 端口号。例如对于如果您的虚拟 SQL Server 服务器名为 VSERVER1,并且它正在侦听 TCP/IP 端口号 2433年您的连接字符串将包含以下属性。
    Data Source=VSERVER1\instancename,2433;Network Library=dbmssocn
    -or-

  • 每个客户端上使用客户端网络实用工具,以创建 SQL Server 别名。在该的别名中指定网络库使用 (TCP/IP) 和端口号。在您的连接字符串中使用此别名,并不在连接字符串中指定网络库属性。

    您还可以通过使用组策略对象 (GPO) 的域控制器上自动 SQL Server 别名,每个客户端上的创建。假定您虚拟实例的 SQL Server 被命名为 VSERVER1\MyInstance。虚拟实例的 SQL Server 正在侦听 TCP/IP 端口号 2433年。要为其创建 SQL Server 别名的名称是 MyAlias。若要实现的 SQL Server 别名创建的自动化,请按照下列步骤操作:
    1. 在域控制器上创建一个包含注册表项为 SQL Server 别名的.reg 文件。

      例如对于创建包含 Myreg.reg 文件
      Windows Registry Editor Version 5.00
      
      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo]
      "DSQUERY"="DBNETLIB"
      "MyAlias"="DBMSSOCN,VSERVER1\MyInstance,2433"
      以下信息。
    2. 若要进行一个组织单位 (OU),请按照下列步骤操作:
      1. 打开 Active Directory 用户和计算机,用鼠标右键单击 DomainName,指向 新建,然后单击 组织单位
      2. 新建对象-组织单位 对话框中输入在的 OU 的名称,然后单击 确定
    3. 添加用户和计算机您要应用到 OU 的 GPO。若要执行此操作拖动到您在步骤 2 中创建的 OU 的用户和计算机。
    4. 添加到该 OU 的 GPO。应用此 GPO 的用户登录脚本或计算机启动脚本要导入该.reg 文件。若要这样做,请按照下列步骤操作:
      1. 用鼠标右键单击您在步骤 2 中, 创建的 OU,然后单击 属性
      2. 属性 对话框中单击 组策略 选项卡上。
      3. 组策略 选项卡上单击 新建,然后单击 $ $ 编辑 以打开 组策略对象编辑器 窗口。
      4. 如果要将此 GPO 应用于用户或组请按照此步骤操作:
        • 展开 用户配置,展开 Windows 设置,单击 脚本 (登录/注销),然后双击 登录
        如果要将此 GPO 应用于计算机请按照此步骤操作:
        • 展开 计算机配置,展开 Windows 设置,单击 脚本 (启动/关机),然后双击 启动
      5. 属性 对话框中单击 显示文件 打开脚本文件所在的文件夹。

        注意在文件夹窗口的地址栏中会出现一个通用命名约定 (UNC) 路径。
      6. 将 Myreg.reg 文件放入您在步骤 4e 中打开该文件夹中。
      7. 在同一文件夹中创建一个.bat 文件,其中包含以下信息。假定文件的名称是 Mybat.bat.
        Regedit /s <Path>\Myreg.reg
        笔记
        • <Path>代表该文件夹的 UNC 路径。
        • 在静默模式下将.reg 文件导入 指定/s 开关。
      8. 单击 属性 对话框中的 添加
      9. 添加脚本 对话框中单击 浏览
      10. 浏览 对话框中找到 Mybat.bat 文件,然后单击 打开
      11. 添加脚本 对话框中单击 确定
      12. 属性 对话框中单击 确定
    5. 请确保用户和计算机的第 3 步中添加具有 读取 权限和对 GPO 的 应用组策略 权限。若要这样做,请按照下列步骤操作:
      1. Active Directory 用户和计算机,用鼠标右键单击您在步骤 2 中, 创建的 OU,然后单击 属性
      2. 属性 对话框中单击 组策略 选项卡上。
      3. 组策略 选项卡上单击您在步骤 4 c 中创建的 GPO,然后单击 属性
      4. 单击 属性 对话框中的 安全 选项卡。
      5. 安全 选项卡上确保用户和计算机应用 GPO 的列在 $ 组或用户名称 下。
      6. 请确保为用户和计算机指定了 读取 权限和 应用组策略 权限。

状态

Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。

在下列情况下解决此问题:
  • Windows Server 2008 上安装 Microsoft SQL Server 2008
  • Microsoft SQL Server 2005 年,可与 Microsoft SQL Server 2008,Windows Server 2008 上一起
在 Windows Server 2003 上的 Microsoft SQL Server 2008 中会出现此问题。

更多信息

有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
944390当您连接到命名实例正在运行 Windows Vista 或 Windows Server 2008 的客户端计算机上 SQL Server FIX: 错误消息:"指定 SQL 服务器找不到"或"错误查找服务器/实例指定"
936302在 Windows Server 2008 上安装 SQL Server 2005 时的已知问题的列表

属性

文章编号: 318432 - 最后修改: 2009年5月5日 - 修订: 3.0
这篇文章中的信息适用于:
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Enterprise
关键字:?
kbmt kbbug kbpending KB318432 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 318432
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com