我有三个Windows服务器(data1,data2和datawitness)不属于任何域,不使用AD.我正在尝试根据http://alan328.com/SQL2005_Database_Mirroring_Tutorial.aspx上的说明设置镜像.我已经成功,直到最后一组指令,我告诉data1使用datawitness作为见证服务器.该步骤失败,并显示以下消息:
alter database MyDatabase set witness ='TCP://datawitness.somedomain.com:7024'
无法将ALTER DATABASE命令发送到远程服务器实例"TCP://datawitness.somedomain.com:7024".数据库镜像配置未更改.验证服务器是否已连接,然后重试.
我使用telnet测试了端口7024和1433,两个服务器确实可以相互连接.我还能够从主服务器上的SQL Server Manager添加到见证服务器的连接.我已经在两台服务器上使用配置管理器来启用命名管道并验证IP流量是否已启用并默认使用端口1433.
还有什么呢?我需要打开任何其他端口才能使用吗?(防火墙规则非常严格,但我知道前面提到的端口上的流量是明确允许的)
值得一提的注意事项:
每个服务器都在不同的网段中
服务器不使用AD,也不属于域
没有为这些服务器配置DNS服务器,因此我使用HOSTS文件将域名映射到IP地址(使用telnet,ping等进行验证).
防火墙规则非常严格,我无法直接调整它们,但我可以根据需要调用更改
Data1和Data2使用SQL Server 2008,Datawitness使用SQL Express 2005.所有这些都使用默认实例(即它们都不是命名实例)
Chris Bloom.. 8
在梳理了博客和知识库文章和论坛帖子并重新安装和重新配置,重新启动和分析等等之后,我终于找到了解决问题的关键 - 见证服务器上的事件日志中的条目报告了此错误:
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的形式映射所有三台服务器的模拟域名.然而,现在显而易见的是,目击者试图使用主服务器的名称进行通信,我没有主机条目.只需添加指向主Web服务器的ABC-WEB01的另一个条目就可以了.没有错误,镜像终于完成了.
希望这可以节省其他人十亿小时.
在梳理了博客和知识库文章和论坛帖子并重新安装和重新配置,重新启动和分析等等之后,我终于找到了解决问题的关键 - 见证服务器上的事件日志中的条目报告了此错误:
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的形式映射所有三台服务器的模拟域名.然而,现在显而易见的是,目击者试图使用主服务器的名称进行通信,我没有主机条目.只需添加指向主Web服务器的ABC-WEB01的另一个条目就可以了.没有错误,镜像终于完成了.
希望这可以节省其他人十亿小时.