备份恢复方案
TDSQL Boundless 提供高效、可靠的全量数据备份与恢复能力,支持大规模集群场景下的数据安全与业务连续性。TDSQL Boundless 的备份恢复支持定期快速向 COS 存储介质备份数据,并支持在新实例恢复到选定的时间点。备份分为全量和增量两部分,恢复的过程会选择最近的全量备份数据进行恢复,再通过增量回放的方式将数据修改至选定的时间点。全量叠加增量的方式可以支持灵活回档到特定时间点,且无需频繁进行全量备份以节省空间和计算资源。
全量备份
全量备份将当前数据的一致性切片对应的 SST 文件上传至 COS。
1. 准备阶段
关闭集群 Region 分裂任务,阻止 DDL 操作。
获取全量 Region 元数据(含成员列表)、全局日志序列号(GLSV)、各 Region 已提交 Raft 索引。
生成备份专用时间戳,确保 TDSQL Boundless 不清理该时间点的快照数据。
2. 备份执行
在云存储(如 COS)创建备份目录,存储 Region 元数据。
分发备份任务至各节点,将对应的 SST 文件,硬链接至本地临时目录。
监控任务状态,将 SST 文件上传至云存储。
3. 收尾阶段
校验所有 Region 备份状态。
恢复 Region 分裂与 DDL 功能,更新任务状态为“完成”。
增量备份
增量备份为日常持续进行的任务,定时扫描 Raft 增量日志并上传至 COS。
1. 读取日志:增量备份线程定期扫描本地 Raft 日志,并备份已提交(committed)的日志。
2. 流式日志上传:将日志按路径规则上传至 COS,并按日期/区域拆分文件。
全量恢复
全量恢复通过下载 COS 上的备份文件并用于初始化新实例,将其恢复至全量备份的时间点。
1. 准备阶段
新建目标集群(副本数与备份一致)。
选择备份数据(校验完整性:全域 Region 覆盖、备份结果为“成功”)。
检查节点容量(需大于等于备份数据总大小的120%)。
2. 恢复执行
恢复集群元数据(GLSV、写屏障信息)。
分发恢复任务,各节点下载云存储中的 SST 文件至本地。
加载 SST 文件至对应 Region,完成数据恢复。
3. 收尾阶段
校验所有 Region 恢复状态,更新任务状态为“完成”,输出恢复结果。
增量恢复
增量恢复是根据指定的历史时刻,以全量备份的 SST 文件为基础,通过回放增量备份的 Raft 日志(记录数据变更),将集群数据恢复到指定的时间点。
1. 全量恢复:启动全量恢复,载入基础数据并等待其完成。
2. 拉取增量日志:拉取全量备份时间点之后到指定恢复时间点之前的增量备份日志
3. 增量回放:以 Region 为单位分组,自动处理 DDL 相关变更以及 Region 相关的分裂及合并,持续回放 Raft 日志,将数据恢复至指定时间点。