下面的图形描述了 OceanBase 数据库物理恢复的架构。
对于用户可见的流程主要有两步:
在目的集群上用 CREATE RESOURCE POOL 命令建立恢复租户需要的 resource pool。
通过 ALTER SYSTEM RESTORE TENANT 命令调度租户恢复任务。
对于备份恢复来说,restore tenant 命令内部的流程如下:
创建恢复用的租户
恢复租户的系统表数据
恢复租户的系统表日志
调整恢复租户的元信息
恢复租户的用户表数据
恢复租户的用户表日志
恢复扫尾工作
对于单个 PG 来说,恢复的流程就是将 PG 的元信息和宏块数据拷贝到指定的 OBServer,构建出一个只有基线数据的 PG;然后再把 PG 的日志拷贝到指定的 OBServer,回放到该 PG 的 memtable 中。这个流程中如果日志的量比较大,可能会触发转储操作。