AntDB 使用 barman 实现数据的备份和恢复,但是集群节点部署在多台主机上,每个节点单独备份和恢复。多台服务器时钟不同步的情况下同时备份后, 无法真正实现基于时间点的数据完全和不完全恢复。AntDB 提供基于时间点的全局一致性备份恢复。
AntDB 可以根据用户定制的备份策略在分布式场景下进行全量备份和增量备份,并通过基于时间点的全局一致性 WAL barrier 位点技术实现全局节点强一致性的数据恢复。这彻底解决了这样的难题:在分布式场景下,若在多台服务器时钟不同步的情况下同时备份,则无法真正实现基于时间点的数据完全和不完全恢复。
1.流程设计
barrier 是所有节点一致性位点,连接 coordinator 执 行“CREATE BARRIER <barrier_name>”语句。
通过 barman 恢复数据,recovery.conf 基于 barrier 的恢复,确保集群各个数据节点均恢复到一致的状态(全局 barrier 点),如图 3-9 所示。
2.实现说明
● 增加create barrier命令。
● 新增barrier wal类型:wal日志中由特定的格式记录barrier。
● 在各个节点新增barrier wal日志内容:在create barrier中AntDB各个节点的wal日志都会写入创建的barrier信息。
● 修改barman适配barrier:修改barman工具支持数据库恢复的时候增加参数target-barrier,以恢复到指定的barrier时刻。
● barman工具适配AntDB节点:barman工具是Python开发的,需要依赖Python环境和相应的模块,安装完成后设置相应的环境变量,以及修改默认的配置文件并添加需要备份节点的配置文件。
● 备份验证:配置好barman之后,通过barman check命令检查备份是否配置正确。
恢复验证:通过barman recover功能完成备份数据的恢复。