我正在尝试设置 SQL Server 2008 R2 镜像,但我遇到了这个错误:
启动镜像时出错。
附加信息:
数据库“MyDB”的更改失败。(Microsoft.SqlServer.Smo)执行 Transact-SQL 语句或批处理时发生异常。
(Microsoft.SqlServer.ConnectionInfo)服务器网络地址“TCP://10.39.113.135:5022”无法访问或不存在。检查网络地址名称以及本地和远程端点的端口是否可操作。(Microsoft SQL Server,错误:1418)
- 我可以从主体服务器 ping 10.39.113.135(镜像)。
- 我可以通过 telnet 从主服务器连接到 10.39.113.135:5022
- netstat -n 显示 5022 上没有连接,这意味着它没有被其他任何东西使用
- 端点配置步骤正确执行,我通过以下步骤确认两端都正确配置:http: //msdn.microsoft.com/en-us/library/ms189127.aspx
- 我确实准备了使用 NO RECOVERY 子句恢复到镜像服务器上的备份数据库
那么有什么想法为什么我会收到错误 1418?
以下是 Mark Storey-Smith 要求的信息:
主要的:
name endpoint_id principal_id protocol protocol_desc local_net_address local_tcp_port type type_desc state state_desc is_admin_endpoint
-------------------------------------------------------------------------------------------------------------------------------- ----------- ------------ -------- ------------------------------------------------------------ ------------------------------------------------ -------------- ---- ------------------------------------------------------------ ----- ------------------------------------------------------------ -----------------
Dedicated Admin Connection 1 1 2 TCP NULL NULL 2 TSQL 0 STARTED 1
Mirroring 65536 1 2 TCP NULL NULL 4 DATABASE_MIRRORING 0 STARTED 0
TSQL Default TCP 4 1 2 TCP 10.55.31.223 1433 2 TSQL 0 STARTED 0
TSQL Default VIA 5 1 5 VIA NULL NULL 2 TSQL 0 STARTED 0
TSQL Local Machine 2 1 4 SHARED_MEMORY NULL NULL 2 TSQL 0 STARTED 0
TSQL Named Pipes 3 1 3 NAMED_PIPES NULL NULL 2 TSQL 0 STARTED 0
(6 row(s) affected)
镜子:
name endpoint_id principal_id protocol protocol_desc local_net_address local_tcp_port type type_desc state state_desc is_admin_endpoint
-------------------------------------------------------------------------------------------------------------------------------- ----------- ------------ -------- ------------------------------------------------------------ ------------------------------------------------ -------------- ---- ------------------------------------------------------------ ----- ------------------------------------------------------------ -----------------
Dedicated Admin Connection 1 1 2 TCP NULL NULL 2 TSQL 0 STARTED 1
Mirroring 65536 1 2 TCP NULL NULL 4 DATABASE_MIRRORING 0 STARTED 0
TSQL Default TCP 4 1 2 TCP 10.39.113.135 1433 2 TSQL 0 STARTED 0
TSQL Default VIA 5 1 5 VIA NULL NULL 2 TSQL 0 STARTED 0
TSQL Local Machine 2 1 4 SHARED_MEMORY NULL NULL 2 TSQL 0 STARTED 0
TSQL Named Pipes 3 1 3 NAMED_PIPES NULL NULL 2 TSQL 0 STARTED 0
(6 row(s) affected)
您是否使用 telnet 检查了从镜像到主体的连接?您是否在镜像中恢复了日志备份?
我在较早的关于 mirroing 的 q/a中发布了几个诊断查询。运行这些并使用输出更新您的答案。
在每个实例上检查 Mirroring 端点并确保两者都在 5022 上运行(编写脚本以便轻松查看,不知道要使用的 DMV)并检查基于入站和出站主机的防火墙规则(win2k8 默认情况下将其打开) 在主体和镜像上。如果两台计算机位于不同的域中,则您将需要使用基于证书的身份验证进行镜像。确保您使用 NORECOVERY 选项进行完整备份和日志备份以还原到镜像。
事实证明,我试图在不支持此功能的 Microsoft SQL Server 2008 R2 标准版上进行异步数据库镜像。
要使用异步镜像,我必须使用企业版。
我希望数据库能给我一个更相关的错误,比如“请升级到企业版”。那好吧。