欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

SQLServer 数据库镜像+复制切换方案

程序员文章站 2022-05-11 08:52:58
...

目标: 主机做了 Mirror 和 Replication ,当主机出现问题时, Replication 和 Mirror 实现自动的故障转移( Mirror 和 Replication 都切换到备机,而当主机 重新启动后,自动充当备机的角色)。 环境: 五台虚拟机,配置均为 Windows2008 Enterprise SQLSer

目标:

主机做了Mirror和Replication,当主机出现问题时,Replication和Mirror实现自动的故障转移(Mirror 和Replication都切换到备机,而当主机

重新启动后,自动充当备机的角色)。

环境:

五台虚拟机,配置均为Windows2008 Enterprise + SQLServer2008R2 Enterprise

08R201:Mirror见证机(WITNESS) IP:192.168.56.101

08R202:主机(Rep+Mirror) IP:192.168.56.102

08R203:Rep分发机 IP:192.168.56.103

08R204:Rep订阅机 IP:192.168.56.104

08R205:镜像机(Mirror) IP:192.168.56.105

步骤:

配置有见证服务器的镜像

1、创建证书和Endpoint

08R202(Master) 上运行下面的脚本:

主机执行:USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '123456abc'; CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate' , START_DATE = '11/08/2010',EXPIRY_DATE = '10/31/2099'; --主机执行:CREATE ENDPOINT Endpoint_Mirroring STATE = STARTED AS TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE HOST_A_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ); --主机执行:    BACKUP CERTIFICATE HOST_A_cert TO FILE = 'D:HOST_A_cert.cer';

08R205(Mirror) 上运行下面的脚本:

备机执行:USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '123456abc'; CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = 'HOST_B certificate', START_DATE = '11/08/2010',EXPIRY_DATE = '10/31/2099'; --备机执行:CREATE ENDPOINT Endpoint_Mirroring STATE = STARTED AS TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE HOST_B_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ); --备机执行:BACKUP CERTIFICATE HOST_B_cert TO FILE = 'D:HOST_B_cert.cer';

08R201(WITNESS)上运行下面的脚本:

Replicaiton不做具体的搭建过程,只做几点说明:

1. 08R202和08R205都需要搭建到08R203的Distribution;

2. 08R202和08R205上的发布库的所有者必须为“SA”,否则切换会出现如下错误:The process could not execute‘sp_replcmds’ on ‘WIN-08R205′.

3. 08R203分发机上配置文件需要做如下修改(配置故障转移Partner):

配置复制故障转移参数--查看代理配置,在分发服务器运行exec sp_help_agent_profile --Agent_Type含义--1 = Snapshot Agent; 2 = Log Reader Agent; 3 = Distribution Agent; --4 = Merge Agent; 9 = Queue Reader Agent.--对于事务复制,需查看Agent_Type=1,2的Profile_id--对于事务复制,需要配置快照代理(Snapshot Agent)和日志读取代理(Log Reader Agent)exec sp_add_agent_parameter @profile_id = 1, @parameter_name = N'-PublisherFailoverPartner', @parameter_value = N'WIN-08R205'--镜像服务器名称exec sp_add_agent_parameter @profile_id = 2, @parameter_name = N'-PublisherFailoverPartner', @parameter_value = N'WIN-08R205'--镜像服务器名称

修改完成后,记得重启Agent服务,使之生效。

4. 从08R202创建到08R204的同步链。

模拟故障转移并观察结果

1. 暂停08R202的SQLServer服务;

2. 到08R205上观察镜像和同步链是否转移过去了;

3. 如果同步链正常,修改某个表中的数据,看是否能同步到08R204上;

4. 重新启动08R202的SQLServer服务,看其是否成为了镜像机;

5. 如果一起都正常,那恭喜啦,我们的测试成功。

更多相关教程请访问 MySQL视频教程

相关标签: SQLServer 数据库