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!