内容提要
本文介绍了Percona Backup for MongoDB(PBM)的使用方法,包括多种备份方式和在副本集和分片拓扑中的应用。文章还提供了配置、监控和调试PBM的步骤。PBM是一个适用于复杂MongoDB拓扑结构的简单方便的备份和恢复工具。
延伸解读
PBM 代理连接配置的关键细节
在配置 pbm-agent 时,必须确保每个代理连接到本地的 mongod 节点,而不是副本集 URI。文章强调,代理应使用独立连接(如 mongodb://pbmuser:pbmuser@localhost:27017/?authSource=admin),而 PBM 客户端则应连接到副本集(如添加 replSetName 参数)。这种区分对于备份和恢复操作的正确性至关重要,错误配置可能导致代理无法正常工作。
分片环境下的用户与角色管理
在分片集群中,PBM 要求在每个副本集(包括配置服务器和所有分片)的主节点上创建相同的用户和角色。文章演示了在 configRepl、shard01 和 shard02 上分别执行创建 pbmAnyAction 角色和 pbmuser 用户的命令。这确保了 PBM 代理有足够的权限执行备份和恢复操作,同时避免了因权限不足而导致的失败。
物理备份与逻辑备份的差异及限制
PBM 支持物理和逻辑两种备份类型。物理备份直接复制磁盘文件,恢复时需要关闭 mongod 节点、清理数据目录并复制文件,之后还需重启节点、重新同步备份列表并启动 balancer 和 mongos。逻辑备份则通过 mongodump 工具进行,恢复时数据会插入到每个主节点,然后通过复制传播。但文章指出,MongoDB 社区版不支持热物理备份,因此只能使用逻辑备份。
监控与调试 PBM 活动的实用命令
文章提供了多个监控和调试 PBM 的命令,例如使用 pbm logs 查看所有日志,或通过 --event=backup 和 --event=restore 过滤特定事件的日志。还可以使用 journalctl -u pbm-agent.service 检查代理服务事件,以及 pbm describe-backup 查看特定备份的详细信息。这些命令有助于快速定位备份或恢复过程中的问题。
Q&A
Percona Backup for MongoDB (PBM) 是什么?它支持哪些备份类型?
PBM 是一个备份管理工具,通过提供物理、逻辑、增量、PITR 等多种备份层来增强 MongoDB 的备份能力。
在副本集环境中配置 PBM 时,如何设置 MongoDB 身份验证?
需要在主节点上创建自定义角色 pbmAnyAction 和用户 pbmuser,并赋予 readWrite、backup、clusterMonitor、restore 和 pbmAnyAction 角色。
PBM 的 pbm-agent 进程应该连接到什么类型的 MongoDB 连接?
pbm-agent 进程应连接到本地 mongod 节点的独立连接,不要设置为连接到副本集 URI。
在分片环境中设置 PBM 时,需要在哪些节点上创建用户?
需要在每个副本集的主节点上创建用户,包括配置服务器副本集和所有分片副本集的主节点。
PBM 的物理备份和逻辑备份有什么区别?
物理备份是复制磁盘文件,恢复时需关闭 mongod 节点并清理数据目录;逻辑备份通过 mongodump 工具转储数据,恢复时由 pbm-agent 将数据插入每个主节点,其余节点通过复制获得数据。
如何监控和调查 PBM 的备份或恢复活动?
可以使用 pbm logs 查看所有日志,pbm logs --event=backup 或 --event=restore 查看特定事件,journalctl -u pbm-agent.service 检查代理事件,pbm describe-backup 查看特定备份详情。