技术分享 | PBM备份恢复

PerconaBackupforMongoDB(PBM)是一个开源工具,支持MongoDB的逻辑备份、物理备份、增量备份和Point-in-Time恢复。文章详细介绍了PBM的架构、工作流程、安装配置、备份与恢复操作,以及一些关键特性,如备份压缩、优先级设置等。此外,还提到了PBM在MongoDBCommunity版本中的限制和选择性备份恢复的实验性功能。

作者:张洪

爱可生南区 DBA 团队成员,主要负责mysql故障处理及相关技术支持。爱好旅游,摄影。

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


概述

Percona Backup for MongoDB(PBM)是一个针对MongoDB副本集和分片的一致性备份开源工具,它支持逻辑备份、物理备份、增量备份以及选择性备份和恢复等特性,并且支持Point-in-Time恢复到指定时间点。

但非常可惜的是物理备份相关功能目前仅适用于Percona Server for MongoDB的分支,因此下面主要围绕逻辑备份与Point-in-Time来展开,MongoDB Community版本要求4.0及以上。

架构

pbm-agent

pbm-agent用于执行备份、恢复,删除和其它操作的进程,它必须运行在集群的每个mongod实例上。包括副本集中的secondary节点以及分片集群中的config副本集。

所有pbm-agent都会监视PBM Control集合的更新,当PBM CLI对PBM Control集合产生更新时,将会在每个副本集上选择一个secondary上的pbm-agent执行操作,如果没有响应则会选择Primary上的pbm-agent执行操作。

被选中的pbm-agent将会加锁,避免同时触发备份和恢复等互斥操作。操作完成后将会释放锁,并更新PBM Control集合

PBM CLI

PBM CLI是一个操作PBM的命令行工具,它使用PBM Control集合与pbm-agent进程通信。通过更新和读取操作、日志等相应的PBM Control集合来启动和监视备份和恢复操作。同时,它也将PBM配置信息保存在PBM Control集合中。

PBM Control collections

PBM Control collections是存储配置数据和备份状态的特殊集合,分片环境存放在config副本集的admin数据库中,副本集则保存在自身的admin数据库中。

主要包含以下集合:

  • admin.pbmBackups:备份的日志和状态
  • admin.pbmAgents:pbm-agent的运行状态
  • admin.pbmConfig:PBM的配置信息
  • admin.pbmCmd:用于定义和触发操作
  • admin.pbmLock:pbm-agent同步锁
  • admin.pbmLockOp:用于协调不互斥的操作,如执行备份、删除备份等
  • admin.pbmLog:存储pbm-agent的日志信息
  • admin.pbmOpLog:存储操作ID
  • admin.pbmPITRChunks:存储point-in-time恢复的oplog块
  • admin.pbmPITRState:存储point-in-time恢复增量备份的状态
  • admin.pbmRestores:存储还原历史记录和状态
  • admin.pbmStatus:记录PBM备份状态

remote backup storge
远程备份存储是保存备份文件的位置,可以是S3存储,也可以是Filesystem。通过pbm list命令可以查看备份集。备份文件名称都是以UTC备份开始时间作为前缀,每个备份都有一个元数据文件。对于备份中的每个副本集:

  • 有一个mongodump格式的压缩归档文件,它是集合的转储
  • 覆盖备份时间的oplog的BSON文件转储

安装配置

下载PBM

# wget https://downloads.percona.com/downloads/percona-backup-mongodb/percona-backup-mongodb-2.0.3/binary/tarball/percona-backup-mongodb-2.0.3-x86_64.tar.gz

解压PBM

# tar -xvf percona-backup-mongodb-2.0.3-x86_64.tar.gz

配置环境变量

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值