标签:导入 关闭 net -- sele server select ror case
按照基本操作建立镜像同步的时候,最后步骤报错
服务器网络地址 "TCP://XXXXXXX:5022" 无法访问或不存在。
请检查网络地址名称,并检查本地和远程端点的端口是否正常运行
查询sql日志,发现是‘10052(远程主机强迫关闭了一个现有的连接。)’,初步判断是权限原因。针对这种报错,在网上搜索了大神用证书授权的解决方案后,自己测试通过,记录一下步骤。(本案例是双机热备,只有主体服务器和镜像服务器,没有见证服务器)
USE master GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘YourPassword‘;
删除的话用drop命令,使用相同方式在镜像服务器创建主密钥
USE master GO CREATE CERTIFICATE Host_A_Cert WITH Subject = ‘Host_A Certificate‘, Expiry_Date = ‘2080-1-1‘; --过期日期
删除的话用drop命令,使用相同方式在镜像服务器创建Host_B_Cert的证书
IF NOT EXISTS ( SELECT * FROM sys.database_mirroring_endpoints ) BEGIN CREATE ENDPOINT [DatabaseMirroring] STATE = STARTED AS TCP ( LISTENER_PORT = 5022,LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE Host_A_Cert, ENCRYPTION = REQUIRED Algorithm AES, ROLE = ALL ); END
使用相同方式在镜像服务器创建Host_B_Cert证书的端点
BACKUP CERTIFICATE Host_A_Cert TO FILE = ‘C:\ShareFolders\Host_A_Cert.cer‘;
将备份出来的证书复制到镜像服务器。使用相同方式在镜像服务器备份证书Host_B_Cert,将镜像服务器证书复制到主体服务器。
CREATE LOGIN Host_B_Login WITH PASSWORD = ‘YourPassword‘;
创建一个账号给镜像服务器使用,使用同样方式在镜像服务器创建一个账号Host_A_Login给主体服务器使用。
CREATE USER Host_B_User For Login Host_B_Login;
使用相同方式在镜像服务器创建用户Host_A_User映射到刚才创建的登录账号
CREATE CERTIFICATE Host_B_Cert AUTHORIZATION Host_B_User FROM FILE = ‘C:\Certifications\Host_B_Cert.cer‘;
创建一个新证书,并使用刚才从镜像服务器复制过来的证书导入,然后映射用户到这个新证书上。在镜像服务器也这样执行一遍。
GRANT CONNECT ON ENDPOINT::[DatabaseMirroring] TO [Host_B_Login];
在镜像服务器上也执行一遍。至此,证书授权结束。
sqlserver 镜像配置问题 (针对服务器网络地址 "TCP://XXXXX:5022" 无法访问或不存在。 请检查网络地址名称,并检查本地和远程端点的端口是否正常运行)
标签:导入 关闭 net -- sele server select ror case
原文地址:https://www.cnblogs.com/blossomwei/p/13041792.html