1、测试环境:
操作系统:CentOS Linux release 7.4.1708 (Core)
数据库版本:DM Database Server 64 V8 1-1-87-20.06.01-122565-ENT
一主一备读写分离集群:即时归档+事务一致模式
主机:GRP1_RWW_01 :192.168.10.123
备机:GRP1_RWW_02 :192.168.10.11
确认监视器:192.168.10.12
起始集群状态:
2、制造组分裂
以下操作可能导致组分裂,并不能稳定重现:
在主库GRP1_RWW_01上做些写操作不提交
断开主库GRP1_RWW_01的心跳网络发生切换
恢复主库GRP1_RWW_01网络发现已经发生组分裂,变成两个主库一个mount一个open。
此时连接open的主库GRP1_RWW_02可以正常操作。
由于已经发生的组分裂只能重新搭建。
3、动态重建集群
下面介绍在不停服务的情况下进行动态搭建:
3.1 先后关闭mount主库GRP1_RWW_01上的守护进程和数据库进程
3.2 对open的主库GRP1_RWW_02进行热备
3.3 将备份考到GRP1_RWW_01上进行恢复
3.4 将GRP1_RWW_01的原数据目录重命名,在相同位置重新初始化实例
3.5 对open的主库GRP1_RWW_02进行写操作,模拟持续对外提供服务
3.6 GRP1_RWW_01恢复完成后将原来的ini文件拷贝到数据目录中,并启动守护进程
3.7 查看监视器
GRP1_RWW_01恢复后将以备库状态加入集群
3.8 查看数据,在恢复期间新插入的记录3也已经同步到GRP1_RWW_01备库
动态搭建完成。
注意事项:
1.在发生组分裂时,产生了2个主库,一个open一个mount,由于应用使用的服务名方式连接数据库,新建立的连接可能连接到open的主库也可能连接到mount的主库,因此,此时对外服务会造成影响,可以手动关闭mount主库的守护进程和数据库进程,避免连接到mount主库,而产生影响,只用单一主库对外提供服务。
2.需要有足够大的归档日志空间,保证在恢复期间产生的归档日志不会被覆盖。否则备库数据无法恢复到当前主库的数据状态。