尝试在我的服务器上设置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)
我还要注意,我可以使用两台服务器的全名telnet到端口。
更新
辅助服务器将SQL Server 2005作为本地1434上的命名实例运行,并通过网络运行1433,其IP地址与正在使用的FQDN匹配。
[编辑]
我能够在两台服务器上Telnet到端口5022。
[溶液]
如果您可以记录并且两个端口都处于活动状态,则可能是SQL Server正在使用的基础帐户不是域帐户。在我们的服务器上,本地系统帐户是该服务登录的用户。将此更改为管理员域帐户后,问题就解决了。
答案 0 :(得分:1)
您是否在每台服务器上远程登录到端口5022?这是数据库镜像使用的端口,而不是SQL端口1433/1434。
我会检查所有防火墙设置,并且SQL Server服务正在域帐户下运行。
您可能还想查看此问题排查文章中有关镜像的其他要点:
http://blogs.msdn.com/grahamk/archive/2008/12/08/database-mirroring-error-1418-troubleshooter.aspx
答案 1 :(得分:1)
检查两台计算机上的SQL日志,并确保SQL Server正在侦听数据库镜像端点应使用的端口5022。
在具有命名实例的服务器上,是否有另一个实例配置为使用相同的TCP端口进行镜像或其他?
答案 2 :(得分:1)
如果您可以记录并且两个端口都处于活动状态,则可能是SQL Server正在使用的基础帐户不是域帐户。在我们的服务器上,本地系统帐户是该服务登录的用户。将此更改为管理员域帐户后,问题就解决了。
答案 3 :(得分:0)
由于看起来您的登录成功并且在实际启用镜像时失败了,您是否尝试使用SQL事件探查器查看确切的语句失败?
不确定您是否熟悉Profiler,但here's a tutorial(适用于SQL 2000,但该工具在2005年略有不同)。
答案 4 :(得分:0)
我也有这个问题但是在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配置管理器,并为每个实例设置您的本地用户和密码。
只是我的两分钱,因为似乎不是每个解决方案都适用于所有人......而且我有一天想要弄清楚