logo
GBase 8a
运维管理
文章

GBase 8a MPP集群损坏数据文件自动恢复机制

秦俭节约
发表于2024-03-04 09:29:26407次浏览0个评论

        GBase 8a MPP具备灵活可靠的“损坏数据文件自动恢复机制”,当集群中某节点数据文件被误删除或因磁盘硬件故障导致的原有数据文件丢失时,GBase 8a在发现异常后,会自动根据备份数据来恢复被损坏的原文件,此过程完全在后台自动进行,无需人工干预。
 

原理解释:

        GBase 8a MPP集群为保障库内数据安全,采用主备分片技术,将备份数据分片与主数据分片分开保存,当主分片数据无法使用时,集群通过备份分片的数据来继续对外服务,从而保障集群的可靠性和数据完整性。在GBase 8a主备分片技术的基础上,衍生出集群的“损坏数据文件自动恢复机制”。

        当主分片数据节点无法正常对外提供服务时(节点状态为CLOSE),集群会自动将任务切换至备份分片所在的数据节点上进行,利用备份分片中的数据继续开展业务计算,这便是集群的高可用机制。而当主分片数据节点可以正常对外提供服务(节点状态为OPEN),但主分片数据文件意外丢失时,就会触发集群的“数据文件损坏自动修复机制”,通过恢复进程将丢失的数据自动从备份分片拷贝至主分片上,从而使主分片可继续对外提供服务。

        如下将验证此功能机制,测试环境为3台虚拟机,集群版本为V9.5.3版本,测试集群采取兼容模式混合部署,每台虚拟机上有1个协调节点,1个管理节点和1个数据节点,集群主备分片比例为1比1(可根据实际需求自行设置)。


 

验证开始

1. 首先确认集群3个节点状态正常

2. 进入库内创建测试用表tt并导入数据,导入成功后,该表数据量约为157万条。

3. 查看集群分片对应关系,左边一列为主分片所在节点IP,中间一列为分片ID,右边一列为备份分片所在节点IP。由此可见,分片ID为2的数据,主分片在192.168.184.129节点上,备份分片在192.168.184.130节点上。

4. 随后我们进入129节点上测试表tt的数据文件存放位置,目录名tt_n2中的n2对应的是分片ID,由此可知该目录里存放的是tt表在129节点上的主分片数据。之后我们在129节点上执行rm -rf tt_n2/命令来彻底删除此目录,以此模拟该数据文件损坏的情景。


5. 随后在库内通过select * from tt;命令查询tt表,在查询命中tt表在129节点上的数据,而找不到数据文件后,会返回报错信息。

6. 此时集群记录event事件,显示在129节点上出现数据不一致情况,后台自动调用数据恢复进程。

7. 随后丢失的数据被恢复,集群数据一致性恢复正常。

8. 再次进入库中执行select * from tt;命令进行查询,tt表中的157万余条数据被全部查询出来。

9. 随后查看该表数据分布情况,129节点上n2分片的数据恢复成功,3个节点数据分布均匀。
 

10. 检查集群日志,可以看到集群在发现tt_n2数据文件丢失的error后,立即调用gc_sync_client进程对损坏的数据文件进行恢复,于17:16分恢复成功。

评论

登录后才可以发表评论
图片
图片

热门帖子