暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

原创 椰树上的雪 2023-05-31
694

        GBase 8a MPP具有灵活可靠的“数据文件损坏自动恢复机制”,当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分恢复成功。

最后修改时间:2023-06-05 15:02:54
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论