代码之家  ›  专栏  ›  技术社区  ›  Chris Bloom

在SQL Server镜像方案中设置见证时出现问题/错误

  •  2
  • Chris Bloom  · 技术社区  · 17 年前

    我有三台Windows服务器(data1、data2和datawitness),它们不属于任何域,也不使用AD。我正在尝试根据 http://alan328.com/SQL2005_Database_Mirroring_Tutorial.aspx

    无法将ALTER DATABASE命令发送到远程服务器实例“TCP://datawitness.somedomain.com:7024”。数据库镜像配置未更改。请验证服务器是否已连接,然后重试。

    我已经使用telnet测试了端口7024和1433,两台服务器确实可以相互连接。我还可以从主服务器上的SQL server Manager添加到见证服务器的连接。我在两台服务器上都使用了Configuration Manager来启用命名管道,并在默认情况下使用端口1433验证IP通信是否已启用。

    还可能是什么?我需要打开其他端口才能工作吗?(防火墙规则非常严格,但我知道前面提到的端口上的流量是明确允许的)

    • 每台服务器都位于不同的网段中

    • 服务器不使用AD,也不是域的一部分

    • 没有为这些服务器配置DNS服务器,因此我使用HOSTS文件将域名映射到IP地址(使用telnet、ping等进行验证)。

    • 防火墙规则是非常严格的,我没有直接的权限来调整它们,不过如果需要的话,我可以打电话进行更改

    • Data1和Data2使用SQL Server 2008,Datawitness使用SQL Express 2005。它们都使用默认实例(即,它们都不是命名实例)

    2 回复  |  直到 6 年前
        1
  •  8
  •   Chris Bloom    17 年前

    在浏览了博客、知识库文章和论坛帖子,重新安装、重新配置、重新启动和评测等之后,我终于找到了谜题的答案——见证服务器上事件日志中的一个条目报告了此错误:

    Database mirroring connection error 2 'DNS lookup failed with error: '11001(No such host is known.)'.' for 'TCP://ABC-WEB01:7024'.
    

    我使用一个hosts文件以datax.mydomain.com的形式映射了所有三个服务器的模拟域名。但是,现在很明显,证人试图使用主服务器的名称进行通信,我没有主服务器的主机条目。简单地为ABC-WEB01添加另一个指向主web服务器的条目就可以做到这一点。没有错误,镜像是正确的 最后 完成

        2
  •  0
  •   F.B. ten Kate    15 年前

    我想为这个特定的问题再添加一个子答案,正如我对Chris答案的评论所示,我的镜像显示为断开连接(对于见证人),很明显,您需要重新启动见证人服务器(或者在我的情况下,我只是重新排序了服务)。

    我一做这件事,镜子就显示出证人的联系是有联系的!

    见: http://www.bigresource.com/Tracker/Track-ms_sql-cBsxsUSH/