MOT恢复概念
MOT恢复模块提供了恢复MOT表数据所需的所有功能。恢复模块的主要目标是在计划(例如维护)关闭或计划外(例如电源故障)崩溃后,将数据和MOT引擎恢复到一致的状态。
openGauss数据库恢复(有时也称为冷启动)包括MOT表,并且随着数据库其余部分的恢复而自动执行。MOT恢复模块无缝、全面地集成到openGauss恢复过程中。
MOT恢复有两个主要阶段:检查点恢复和WAL恢复(重做日志)。
MOT检查点恢复在封装的恢复发生之前执行。仅在冷启动事件(PG进程的启动)中执行此操作。它首先恢复元数据,然后插入当前有效检查点的所有行,这由checkpoint_recovery_workers并行完成,每个行都在不同的表中工作。索引在插入过程中创建。
在检查点时,表被分成多个16MB的块,以便多个恢复工作进程可以并行地恢复表。这样做是为了加快检查点恢复速度,它被实现为一个多线程过程,其中每个线程负责恢复不同的段。不同段之间没有依赖关系,因此线程之间没有争用,在更新表或插入新行时也不需要使用锁。
WAL记录作为封装的WAL恢复的一部分进行恢复。openGauss封装会迭代XLOG,根据xlog记录类型执行必要的操作。如果是记录类型为MOT的条目,封装将它转发给MOT 恢复管理器进行处理。如果XLOG条目太旧(即XLOG条目的LSN比检查点的LSN旧),MOT恢复将忽略该条目。
在主备部署中,备用服务器始终处于Recovery状态,以便自动WAL恢复过程。
MOT恢复参数在mot.conf文件中配置,参见MOT恢复。