以下是初始测试环境:
操作系统:windows 2008 r2(主体服务器),windows 2008(镜像服务器),windows 2008(见证服务器)
数据库:mssql 2008
主体服务器ip: 192.168.0.14
镜像服务器ip: 192.168.0.15
见证服务器ip: 192.168.0.16
严格按照以下顺序执行:
一:创建证书
1、在主体服务器上执行:
创建证书
创建端点
backup certificate host_a_cert to file='d:\host_a_cert.cer'
2、在镜像服务器上执行:
创建证书
创建端点
backup certificate host_b_cert to file='d:\host_b_cert.cer'
3、在见证服务器上执行:
创建证书
创建端点
backup certificate host_c_cert to file='d:\host_c_cert.cer'
4、将上面备份得到的证书,分别复制到三台服务器上,也就是每台服务器都有上面三个证书
二、配置主体服务器
1、在主体服务器上创建用户并授与连接端点权限,镜像服务器将使用该用户连接主体服务器
2、在主体服务器上创建用户并授与连接端点权限,见证服务器将使用该用户连接主体服务器
3、在主体服务器上创建用户并授与连接端点权限,主体服务器自身登录用户
三、配置镜像服务器
1、在镜像服务器上创建用户并授与连接端点权限,主体服务器将使用该用户连接镜像服务器
2、在镜像服务器上创建用户并授与连接端点权限,见证服务器将使用该用户连接镜像服务器
3、在镜像服务器上创建用户并授与连接端点权限,镜像服务器自身登录用户
四、配置见证服务器
1、在见证服务器上创建用户并授与连接端点权限,主体服务器将使用该用户连接见证服务器
2、在见证服务器上创建用户并授与连接端点权限,镜像服务器将使用该用户连接见证服务器
3、在见证服务器上创建用户并授与连接端点权限,见证服务器自身登录用户
五、在镜像服务器上恢复初始据库
1、将主体服务器上要设置镜像的数据库完全备份,并复制到镜像服务器上
2、在主体服务器上找到程序中(比如Web网站)用来登录数据库的用户的登录名及sid,并记录下来
3、在镜像服务器上创建用来登录程序的登录名,这个登录名及sid要与上面一步查到的登录名及sid一致
4、将备份数据库还原到镜像服务器,注意要使用“Restore With Norecovery”选项进行还原
六、连接三台服务器
1、在镜像服务器上将主体服务器设置为数据库的伙伴
2、在主体服务器上将镜像服务器设置为数据库的伙伴
3、在主体服务器上将见证服务器设置为见证服务器
七、其他说明
1、数据库连接字符串(C#为例):"server=192.168.0.14;Failover Partner=192.168.0.15;database=data;uid=sa;pwd=ttt;"
2、如果使用ip无法登录,可执行命令:netsh winsock reset
3、任意两台服务器(当然更包括三台)不能同时停机,否则服务终止
4、如果三台服务器同时停机,只有当停机前的主体服务器和其他两台中的任意一台都恢复时,才可重新开始服务;如果主体服务器没有恢复,不管其他两台的状态如何,都无法提供服务
5、可正常对外提供服务的组合必须如下:
主体服务器+镜像服务器+见证服务器 -> 主体服务器提供服务
主体服务器+镜像服务器 -> 主体服务器提供服务
主体服务器+见证服务器 -> 主体服务器提供服务
镜像服务器+见证服务器(不是三机同时停机后又重启的组合) -> 镜像服务器转为主体服务器并提供服务,主体服务器恢复后变为镜像服务器
6、取消镜像:在当时的主体服务器(不一定是创建之初的那台服务器)选中数据库后右键,点击“镜像”,然后取消镜像即可。注意,如果取消镜像后要想独立使用当前镜像服务器上的数据库,必须先在当前的主体服务器上启动故障转移,将当前的镜像服务器转为主体服务器后,在转化后的主体服务器上执行取消镜像操作方可;否则将无法再使用镜像服务器上的数据库