1.通过证书方式来实施数据库镜像时成功,相关的T-SQL语句网上到处都是...这里就不说了

2.通过Microsoft SQL Server Management Studio中数据库->任务->镜像->配置安全性也可以实施

这里有个地方需要注意,在用MSSMS来进行SQLServer数据库镜像之前,我通过了证书的方式来做过了数据库镜像了

那么我实际上已经创建了Endpoint_Mirroring,可是在使用MSSMS进行数据库镜像配置时,创建端点并没有报错...这个其实应该是会报错的,就是因为没有报错,导致我配置完成后(没有报错)进行数据库镜像时,一直报错

"无法将   ALTER   DATABASE   命令发送到远程服务器实例   'TCP://PHOENIX-ZJ.phoenixit.com:5022 '。数据库镜像配置未更改。请确保该服务器已连接,然后重试。   (Microsoft   SQL   Server,错误:   1456) "

 

再排查这个问题的时候,

telnet PHOENIX-ZJ.phoenixit.com:5022 是没有问题的

ping PHOENIX-ZJ.phoenixit.com也是通的..

死活不知道为啥啊...

 

思来想去..通过如下T-SQL语句发现了一点异常的地方:

select * from sys.database_mirroring_endpoints

这个语句查询出来有个字段"connection_auth_desc" 显示是证书模式

理论上通过MSSMS创建的Endpoint_Mirroring的话,该字段应该是"NEGOTIATE"

 

接下来删除这个端点:

DROP ENDPOINT Endpoint_Mirroring

然后再通过MSSMS来进行镜像数据库的配置...

OK...Thank god!