[SQL Server]非域环境下,配置数据库镜像时的1418错误处理.

来源:互联网 发布:安卓持久化国际化源码 编辑:程序博客网 时间:2024/04/28 23:40

在非域环境下,配置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 }

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

 

原创粉丝点击