配置数据库镜像时的1418错误处理.

在非域环境下,配置SQL Server 2008 数据库镜像服务的时候,在最后一步(即下图中,点击"开始镜像"按钮之后),遇到报错1418错误,

1418:  服务器网络地址 "tcp://xiaoxu:5022" 无法访问或不存在。请检查网络地址名称,并检查本地和远程端点的端口是否正常运行。

在“镜像服务器”的日志中有如下错误:

Database Mirroring login attempt failed with error: 'Connection handshake failed. An OS call failed: (8009030c) 0x8009030c(登录没有成功). State 67.'.  [CLIENT: 192.168.1.8]

 

 

 在试着两台机器上,修改hosts文件,修改SQL Server启动账户为同一账户密码,互相telnet 1433和5022端口都通(在windows防火墙把这两个端口添加到“例外”), 互相“ping 主机名”也是通的.   然后删除endpoint,再重新配置镜像,仍然报同样的错误。

 

解决方法为:配置两台机器上,启动sql server为同一名字账户,且密码要相同;重启SQL Server服务; 然后在两机器上,都删除端点(drop endpoint ...),再重启配置。 

 

用T-SQL的方式配置镜像,参见:http://msdn.microsoft.com/en-us/library/ms179306.aspx

图形界面配置,可参见:非域环境下SqlServer2005镜像安装配置步骤

 

另外,“高性能模式(异步)”不支持手动“故障转移”,“高安全(同步)”支持手动“故障转移”。两种方式可以通过在主体服务器上执行如下T-SQL实现修改:

ALTER DATABASE testdb SET PARTNER SAFETY { FULL | OFF }

“高安全(同步)”模式,是指主体服务器提交了一个事务之后,将事务日志发给镜像服务器,同时在一个队列中等待镜像的响应,而不是在镜像服务器响应之后,主体服务器才提交事务。 (即就算镜像服务器挂了, 主体服务器也照常运行)

posted @   qanholas  阅读(3018)  评论(1编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
点击右上角即可分享
微信分享提示