--基本设置
主体服务器:DB
主体实例:(默认实例)
镜像服务器:DB02
镜像实例: MSSQLSERVERA(命名实例,服务器还有一个默认实例)
--主体&镜像 端口设置一样
CREATE ENDPOINT [Endpoint_For_Mirror]
AUTHORIZATION [HUANG\sqlservice]
STATE=STARTED
AS
TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATABASE_MIRRORING (ROLE = PARTNER, AUTHENTICATION = WINDOWS NEGOTIATE, ENCRYPTION = REQUIRED ALGORITHM AES)
GO
--在镜像设置(成功)
USE [master]
GO
ALTER DATABASE [Management] SET PARTNER = 'TCP://DB.huang.com:5022';
GO
--在主体设置(失败)
USE [master]
GO
ALTER DATABASE [MyDB]
SET PARTNER = 'TCP://DB02.huang.com:5022';
GO
/*失败:
消息 1418,级别 16,状态 1,第 1 行
服务器网络地址 "TCP://DB02.huang.com:5022" 无法访问或不存在。
请检查网络地址名称,并检查本地和远程端点的端口是否正常运行。
*/
ALTER DATABASE [MyDB]
SET PARTNER = 'TCP://DB02.huang.com\MSSQLSERVERA:5022';
GO
/*失败:
消息 1449,级别 16,状态 5,第 1 行
由于服务器连接字符串无效,ALTER DATABASE 命令失败。
*/
在主体设置伙伴时一直报错,无法设置成功。
消息 1418,级别 16,状态 1,第 1 行
服务器网络地址 "TCP://DB02.huang.com:5022" 无法访问或不存在。
请检查网络地址名称,并检查本地和远程端点的端口是否正常运行。
开始以为端口设置问题,设置几遍还是一样。后来发现这里一点信息,原来忘了一件事情!
SQL Server 2005 DB Mirroring Error
镜像是在域中服务器配置的,双方的 mssql 实例启动账户都是域账户,在数据库中都拥有 sysadmin 角色。然后,在安装新实例(mssqlservera)后,忘记把该实例的启动账户改为域账户了,所以在主体中设置伙伴时总是失败,因为镜像的实例启动账户仍然是网络账户。因此更改账户重启实例即可!!
附: 数据库镜像配置故障排除 (SQL Server 2014)