GBase 8a数据库集群,对数据节点的主副本备份方式,默认是循环制,2备份1,3备份2,4备份3,1备份最后1个节点。在某些情况下,可以人工指定备份方式,比如本文介绍的分成多个组,组内互备,也就是2备份1,1备份2,4备份3,3备份4。本文提供自动生成gcChangeInfo.xml同组互备策略的脚本。
互备的优势
比如1+1的情况,如果坏2台服务器,在循环备份情况下,100%会导致集群不可用。而互备,则有50%的可能是2台落在了2个互备组里,所以有50%的几率继续可用。
故障恢复除了标准的节点替换外,可以采用物理文件迁移的方式,特别是数据量不是极大(5T以内)时。因为2个节点互备,数据完全相同,直接复制过去就行。而循环备份则分布在前后2台服务器上。
互备的缺点
当1个节点故障,做故障恢复时,只有1个节点提供数据,而循环备份的可以有2个。
循环备份的样子
[gbase@localhost gcinstall]$ gcadmin showdistribution
Distribution ID: 1 | State: new | Total segment num: 4
Primary Segment Node IP Segment ID Duplicate Segment node IP
====================================================================================
| 192.168.174.151 | 1 | 192.168.174.152 |
------------------------------------------------------------------------------------
| 192.168.174.152 | 2 | 192.168.174.153 |
------------------------------------------------------------------------------------
| 192.168.174.153 | 3