【问题标题】:SQL Server 2005 DB Mirroring ErrorSQL Server 2005 数据库镜像错误
【发布时间】: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?

标签: sql-server sql-server-2005 mirroring endpoints server-configuration


【解决方案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 配置管理器,并为每个实例设置您的本地用户和密码。

      只是我的两分钱,因为似乎并非每个解决方案都适用于每个人......我花了一天时间试图弄清楚

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多