南大通用GBase 8a(gbase database)数据库在线备份技术原理:库级全备流程关键技术写时复制技术是保障在线备份不阻塞 DDL/DML 和数据一致性的关键技术。开启写时复制后当用户在备份状态的表上执行的 DDL/DML 时系统首先复制表的元数据和尾块数据然后再执行 DDL/DML 命令。特殊的如果是 DROP 表操作系统在 DROP 表之前不仅复制表的元数据还需要移走该表的数据文件然后在执行表的 DROP 操作。流程开始库级备份加库的读锁避免备份期间库被删除启动写时复制备份期间不阻塞 DDL/DML准备备份清单获取库下所有表的列表划分备份批次由于库下的所有表可能会比较多备份的时候会划分备份批次一批次一批次的进行备份操作获取一批次需要备份的表每张表设置备份状态执行表的元数据和数据备份如果备份失败会将失败的表写入失败列表中去以便后续再进行尝试完成备份后将表设置为正常状态重试失败列表中的表尝试完成备份重试 3 次如还未完成将记录为失败的表重试完成后设置表为正常状态关闭写时复制释放库的读锁结束库级备份生成一个库级备份的备份点全量备份按照以下顺序备份所需要的文件库级备份的备份清单库的元数据信息和表的元数据信息表的数据文件备份任务下发到每个备份节点按照每个节点为单位进行备份每个 gcluster 节点负责备份本节点的库/表元数据将备份文件上传到远端存储系统中或本地每个 gnode 节点负责备份本节点的元数据及表的数据文件将备份文件上传到远端存储系统中或本地备份点信息包括备份周期、备份点、备份时间以及备份成功与失败的表列表信息。