ITPub博客

首页 > 数据库 > 国内数据库 > GBase 8a MPP集群feventlog机制简介

GBase 8a MPP集群feventlog机制简介

原创 国内数据库 作者:GBASE南大通用 时间:2026-06-26 14:12:42 0 删除 编辑

在分布式数据库的运维中,保障集群高可用和数据一致性是核心挑战。南大通用GBase 8a MPP 集群(gbase database)设计的 feventlog(故障事件日志)机制,正是其实现自动故障恢复、保障数据最终一致性的关键组件。本文将从基础概念到实践操作,对其进行全面梳理。

文章配图-1

一、 feventlog 是什么?

feventlog 是 GBase 8a MPP 集群的故障事件日志,是集群自动恢复机制的核心载体。其主要职责是:当集群节点或分片因异常(如宕机、网络中断、存储损坏等)而无法正常执行操作时,将本应下发的 DDL 或 DML 操作暂时记录为特定类型的日志,待故障节点恢复后,自动重做这些操作,从而确保集群所有节点的数据与逻辑状态最终保持一致。它是判断和维持集群节点状态一致性的核心依据。

feventlog 主要包含以下三类事件日志:

(1)ddlevent:记录数据结构定义语句(如 CREATE、ALTER、DROP TABLE 等)。

(2)dmlevent:记录数据操作语句(如 INSERT、UPDATE、DELETE)。

(3)dmlstorageevent:当检测到物理存储损坏(如数据文件丢失、元数据不可读)时,记录升级版的 DML 事件日志。

二、 记录原理:何时、如何产生?

当集群中的节点被标记为故障(Failure)状态时,Coordinator 节点(调度节点)将不再把 SQL 操作直接下发到该节点,而是将这些操作的相关信息记录到 feventlog 中。

1、触发场景:

(1)节点发生硬件故障、网络隔离或进程僵死等。

(2)在 rebalance(重分布)过程中,参与节点发生故障。

(3)在高并发 DDL/DML/查询操作期间,节点进程被异常终止。

2、记录升级:

(1)普通 DML 操作异常会记录为 dmlevent。

(2)若操作遇到存储层面的物理损坏,则会自动升级记录为 dmlstorageevent。

3、日志内容:

每条 feventlog 都会记录事件 ID、对象名(如表名)、分片名、故障节点 IP、SCN(系统变更号)、具体操作内容等关键信息。管理员可以通过 gcadmin 系列命令进行查看(例如:gcadmin showddlevent,gcadmin showdmlevent)。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69979120/viewspace-3174644/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
GBASE南大通用,致力于成为用户最信赖的数据库产品供应商!

注册时间:2020-07-16

  • 博文量
    1309
  • 访问量
    1282774