我已成功使用SQL Server 2008和Windows Server 2008 R2 64bit配置了主体和镜像。但是,当我尝试在混合中添加见证(SQL Server 2005 and Windows Server 2003 32bit)
时,我在主要事件日志中收到以下错误:
EventID 1456 "The ALTER DATABASE command could not be sent to the remote
server instance 'TCP://SERVERNAME.DOMAIN:5022'. The database mirroring
configuration was not changed. Verify that the server is connected,
and try again." and EventID 1474 "Database mirroring connection error
4 'An error occurred while receiving data: '64(The specified network name is
no longer available.)'.' for 'TCP://SERVERNAME.DOMAIN:5022'."
我可以通过netstat和SQL Profiler在端口5022上看到临时建立的连接,然后是这些错误。
有谁知道为什么会这样?
答案 0 :(得分:2)
我有完全相同的问题。 2 Server 2008 64位盒,带有2005年见证。与原始海报有相同的错误消息。检查所有相同的设置,这是所有谷歌搜索将指向你。
最后,通过转移到运行SQL 2008的证人来解决这个问题。对那个问题感到沮丧两天。
仅供参考 - 这是微软对Witness服务器的陈述。我想你可以阅读你想要的内容:
软件和硬件建议
我们强烈建议证人与合作伙伴分开驻留在另一台计算机上。数据库镜像合作伙伴仅受SQL Server 2005 Standard及更高版本以及SQL Server 2005 Enterprise Edition及更高版本的支持。相比之下,证人也受SQL Server 2005 Workgroup及更高版本以及SQL Server 2005 Express Edition及更高版本的支持。见证人可以在任何可靠的计算机系统上运行,该系统支持任何这些版本的SQL Server。但是,我们建议用作见证服务器的每个服务器实例都对应于您运行的SQL Server Standard版本所需的最低配置。有关这些要求的详细信息,请参阅安装SQL Server 2008 R2的硬件和软件要求。“
答案 1 :(得分:1)
您的合作伙伴名称是否与镜像的FQDN完全匹配?当镜像(或事情的主体)通过与ALTER DATABASE ... SET PARTNER = 'tcp://partnername:...';
中使用的名称不同的名称知道自己(GetComputerNameEx
的返回)时,您描述的行为可能会发生。请考虑以下情况:
Foo
作为镜像。 Foo
通过hosts文件解析为正确的镜像IP Bar
。Foo
的状态是什么,你看到他吗?”。镜子会报告'你好,我是Bar
'。因此,证人将向校长报告“我不知道Foo
在哪里”,这最终会打破镜像会议。有更多细节和细微差别。故事的要点是:在设置镜像时,始终使用通过DNS正确解析的FQDN名称。
答案 2 :(得分:1)
根据Microsoft SQL Server 2008 Bible,原则,镜像和见证服务器都必须具有相同的SQL Server版本(2005年与2008年)。原则和镜像也必须具有该版本的相同版本(Enterprise vs. Standard)。因此,证人可以是任何版本(express,std,ent,workgroup ......),但也必须是同一版本。
答案 3 :(得分:0)
我遇到了同样的问题。我在适配器上禁用了IP V6,并且能够连接到见证服务器。