GBase 8a数据库feventlog故障事件日志
在分布式数据库(MPP)的生产运维中,保障集群的高可用性与数据的最终一致性是核心挑战。南大通用GBase 8a MPP 集群(gbase database)设计了一套称为 feventlog(故障事件日志) 的自愈机制,通过“记录-恢复”的闭环流程,自动化处理节点故障,确保分布式系统的数据完整性与服务连续性。以下将对其核心原理、工作机制、恢复流程进行深入解析。
feventlog是自动恢复机制的核心载体。 其主要功能是当集群中的节点或分片因异常(如硬件故障、网络故障、服务进程异常等)无法正常执行SQL操作时,记录该节点分片为特定类型的feventlog日志,将本应下发的SQL语句,包括DDL、DML、DQL,不做该节点下发,转而下发到健康的副本节点。待故障节点恢复后,系统自动恢复DDL、DML操作的对象、数据,从而确保整个集群所有节点的数据和逻辑状态最终一致。
feventlog 主要分为以下三类事件:
1、ddlevent(数据结构定义事件)
记录 DDL 操作,例如建表(CREATE TABLE)、改表(ALTER TABLE)、删表(DROP TABLE)等元数据变更。
2、dmlevent(数据操作事件)
记录 DML 操作,例如数据插入(INSERT)、更新(UPDATE)、删除(DELETE)等实际数据变动。
3、dmlstorageevent(数据存储故障事件)
当存储层面检测到物理损坏(如数据文件丢失或无法读取),会自动升级形成的记录,是一种增强版的 DML 事件日志。
管理员可通过 gcadmin 系列命令查看各类事件日志,如:
$ gcadmin showddlevent
$ gcadmin showdmlevent
$ gcadmin showdmlstorageevent
