SQL Server 2005 数据库镜像错误
Posted
技术标签:
【中文标题】SQL Server 2005 数据库镜像错误【英文标题】:SQL Server 2005 DB Mirroring Error 【发布时间】:2010-10-09 17:22:40 【问题描述】:尝试在我的服务器上设置 SQL Server 2005 数据库镜像时出现以下错误。我正在运行两台装有 SQL 2005 的 Win2K3 服务器,其中一台与 SQL 2000 版本一起运行。使用NORecovery
恢复数据库并配置端点后,当我尝试启动镜像会话时遇到以下错误。
TITLE: Database Properties
------------------------------
An error occurred while starting mirroring.
------------------------------
ADDITIONAL INFORMATION:
Alter failed for Database 'TestDB'. (Microsoft.SqlServer.Smo)
------------------------------
An exception occurred while executing a Transact-SQL statement or
batch. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
The server network address "TCP://S-01.ssl.local:5022" can not be reached
or does not exist. Check the network address name
and that the ports for the local and remote endpoints are operational.
(Microsoft SQL Server, Error: 1418)
我还要注意,我可以使用两台服务器的全名远程登录到端口。
更新
辅助服务器在本地 1434 上作为命名实例运行 SQL Server 2005,并在与所使用的 FQDN 匹配的 IP 地址上作为 1433 在网络上运行。
[编辑]
我可以 Telnet 到两台服务器上的 5022 端口。
[解决方案]
如果您可以登录并且两个端口都处于活动状态,则可能是 SQL Server 使用的基础帐户不是域帐户。在我们的服务器上,本地系统帐户是服务登录的身份。一旦将其更改为管理员域帐户,问题就解决了。
【问题讨论】:
请务必回答有关能够进入 5022 端口的问题。 它抱怨的网络地址,是principal、mirror还是witness? 【参考方案1】:由于看起来您的登录成功并且在实际启用镜像时失败了,您是否尝试过使用 SQL Profiler 来准确查看失败的语句?
不确定您是否熟悉 Profiler,但here's a tutorial(适用于 SQL 2000,但该工具在 2005 年仅略有不同)。
【讨论】:
我一直在使用它。我去看看。 ALTER DATABASE [TestDB] SET PARTNER = N'TCP://S-01.ssl.local:5022' 是在主服务器上运行的语句,它完成了。另一台服务器的跟踪上没有任何显示,这似乎是镜像设置的一部分。我想知道它是否是命名实例的一部分。 您是说您认为它在命名实例之间可能不起作用?我不认为这是一个问题,但我认为这是可能的。您是否在同一服务器上的多个实例上设置了镜像?也许你只能镜像一个实例,尽管这似乎是有限的。【参考方案2】:您是否在每台服务器上远程登录到端口 5022?那是数据库镜像使用的端口,而不是 SQL 端口 1433 / 1434。
我会检查所有防火墙设置以及 SQL Server 服务是否在域帐户下运行。
您可能还想查看这篇关于镜像的疑难解答文章中的其他要点:
http://blogs.msdn.com/grahamk/archive/2008/12/08/database-mirroring-error-1418-troubleshooter.aspx
【讨论】:
两个端口都可以通过 telnet 访问【参考方案3】:检查两台机器上的 SQL 日志并确保 SQL Server 正在侦听数据库镜像端点应该使用的端口 5022。
在具有命名实例的服务器上,是否有另一个实例配置为使用相同的 TCP 端口进行镜像或其他?
【讨论】:
【参考方案4】:如果您可以登录并且两个端口都处于活动状态,则可能是 SQL Server 使用的基础帐户不是域帐户。在我们的服务器上,本地系统帐户是服务登录的身份。一旦将其更改为管理员域帐户,问题就解决了。
【讨论】:
【参考方案5】:我也遇到过这个问题,但是在 Windows 7 中运行的 sql server 2008 中(同一台机器上的所有实例),
在我的情况下,解决方案:
正在这样做:
第 1 步)您的系统防火墙不应阻止 SQL Server 端口。
步骤 2) 转到计算机管理 >> 服务和应用程序 >> SQL Server 2005 配置 >> 网络配置 启用 TCP/IP 协议。确保 SQL SERVER 端口默认为 1433。
只是为了确保再执行一个可能需要也可能不需要的步骤。
步骤 3) 转到计算机管理 >> 服务和应用程序 >> SQL Server 2005 配置 >> 客户端配置 启用 TCP/IP 协议。
参考:Pinal Dave (http://blog.SQLAuthority.com)
然后是这个:http://www.youtube.com/watch?v=VHAUtCiN1M4 女巫基本上是转到 SQL Server 配置管理器,并为每个实例设置您的本地用户和密码。
只是我的两分钱,因为似乎并非每个解决方案都适用于每个人......我花了一天时间试图弄清楚
【讨论】:
以上是关于SQL Server 2005 数据库镜像错误的主要内容,如果未能解决你的问题,请参考以下文章
sql server 2005数据库检索时,出现无法为此请求检索数据的问题