关于sql server2008创建镜像同步失败的问题解决

背景:客户的数据库需要做主从备份,通过镜像的方式实现。

问题1:数据库提示服务器网络地址 “TCP://xxx:5022″ 无法访问或不存在。请检查网络地址名称,并检查本地和远程端点的端口是否正常运行。 (Microsoft SQL Server,错误: 1418)

问题2:数据库日志Database Mirroring login attempt failed with error: 'Connection handshake failed. There is no compatible authentication protocol. State 21.'

先说问题1各种查找资料,并没有找到有用的东西,最后翻看了数据库的日志记录,得到问题2,翻译过来连接握手失败。没有兼容的身份验证协议。

我创建镜像都是官方的教程一步一步操作的,实在想不通,然后使用select * from sys.database_mirroring_endpoints查看对比了主从数据库的异同点,发现有两个字段的值不同,connection_auth和connection_auth_desc,这两个大概意思就是连接认证,有预感越来越接近真相了,第一反应想把这两个字段值改成一样,写了一条修改语句,结果提示“不允许对系统目录进行即席更新。”,没办法只有一不做二不休直接删除重建。

删除语句:

DROP ENDPOINT [Endpoint_Mirroring]

重建语句:

CREATE ENDPOINT [Endpoint_Mirroring]

STATE = STARTED

AS TCP(LISTENER_PORT = 5022, LISTENER_IP = ALL)

FOR DATA_MIRRORING (ENCRYPTION = REQUIRED ALGORITHM RC4, ROLE = ALL)

GO

注意为了保持统一,建议主从数据库的Endpoint都删了重建。

然后再次执行创建镜像的流程,这里就不在赘述,记录两条关键语句:

从服务器执行:

ALTER DATABASE 从库 SET PARTNER =N'TCP://domain1:5022';

主服务器执行:

ALTER DATABASE 主库 SET PARTNER =N'TCP://domain2:5022';

执行顺序不能颠倒。还有一点我在数据库上右键手动创建镜像从来没成功过,直接执行语句简单粗暴反而能成功。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值