我有三个不属于任何域且不使用 AD 的 Windows 服务器(data1、data2 和 datawitness)。我正在尝试根据http://alan328.com/SQL2005_Database_Mirroring_Tutorial.aspx上的说明设置镜像。在我告诉 data1 使用 datawitness 作为见证服务器的最后一组指令之前,我已经取得了成功。该步骤失败并显示以下消息:
更改数据库 MyDatabase 设置见证 = 'TCP://datawitness.somedomain.com:7024'
ALTER DATABASE 命令无法发送到远程服务器实例“TCP://datawitness.somedomain.com:7024”。数据库镜像配置未更改。验证服务器是否已连接,然后重试。
我已经使用 telnet 测试了端口 7024 和 1433,并且两台服务器确实可以相互连接。我还可以从主服务器上的 SQL Server 管理器添加到见证服务器的连接。我已经在两台服务器上使用配置管理器来启用命名管道并验证 IP 流量是否已启用并默认使用端口 1433。
还能是什么?我是否需要打开任何其他端口才能使其正常工作?(防火墙规则非常严格,但我知道前面提到的端口上的流量是明确允许的)
这里值得一提的注意事项:
每台服务器在不同的网段
服务器不使用 AD 并且不是域的一部分
没有为这些服务器配置 DNS 服务器,因此我使用 HOSTS 文件将域名映射到 IP 地址(使用 telnet、ping 等验证)。
防火墙规则非常严格,我无法直接调整它们,但如果需要我可以调用更改
Data1 和 Data2 使用 SQL Server 2008,Datawitness 使用 SQL Express 2005。它们都使用默认实例(即它们都不是命名实例)