MongoDB在Ubuntu上的数据恢复
导读:在 Ubuntu 上恢复 MongoDB 数据的实用指南 一 场景与准备 明确备份类型: 逻辑备份(目录/BSON,来源于 mongodump),适合跨版本迁移、部分库表恢复、导入导出。 物理备份(文件拷贝/快照,来源于文件系统或云备份...
在 Ubuntu 上恢复 MongoDB 数据的实用指南
一 场景与准备
- 明确备份类型:
- 逻辑备份(目录/BSON,来源于 mongodump),适合跨版本迁移、部分库表恢复、导入导出。
- 物理备份(文件拷贝/快照,来源于文件系统或云备份),适合同版本整机恢复、快速拉起实例。
- 版本与兼容性:
- 逻辑恢复时,mongorestore 版本需与目标 MongoDB 版本兼容;旧版工具可能无法导入新版数据。
- 物理恢复通常要求数据库大版本一致(如 4.2 对 4.2),且存储引擎为 WiredTiger/RocksDB 等受支持引擎。
- 基本准备:
- 备份文件完整可读;目标机器安装同版本 MongoDB。
- 具备访问凭据与权限(如 –authenticationDatabase admin)。
- 建议恢复前先备份当前数据目录(可选但强烈建议)。
二 使用 mongorestore 的逻辑恢复步骤
- 停止写入并(可选)备份现有数据目录:
- sudo systemctl stop mongod
- 可选:mongodump --out /path/to/backup_before_restore
- 恢复命令常用范式:
- 恢复全量备份:mongorestore /path/to/backup/
- 恢复到指定库:mongorestore --db /path/to/backup/
- 覆盖写入:mongorestore --db --drop /path/to/backup/
- 指定主机/端口/凭据:mongorestore --host --port -u -p --authenticationDatabase admin /path/to/backup/
- 仅恢复部分集合:mongorestore --db --collection /path/to/backup//.bson
- 启动服务并校验:
- sudo systemctl start mongod
- mongo --eval ‘show dbs’ 或 use ; db..find().limit(5)
- 说明:mongodump/mongorestore 适合库/集合级恢复、迁移与导入导出场景。
三 时间点恢复与 oplog 回放
- 前提条件:备份时包含 oplog(通常在 mongodump 时使用 –oplog 选项生成 oplog.bson),且恢复目标为 副本集/可回放 oplog 的环境。
- 基本流程:
- 将包含 oplog 的备份目录恢复到目标实例。
- 使用 mongorestore 回放 oplog:mongorestore --oplogReplay /path/to/backup/
- 如需限定库表:mongorestore --oplogReplay --nsInclude ‘.’ /path/to/backup/
- 适用场景:误删集合/文档后,回放到故障前的时间点。
四 物理备份恢复步骤(WiredTiger/RocksDB)
- 适用:同版本自建 单节点/副本集,从文件系统快照或云厂商导出的物理备份恢复。
- 基本流程:
- 准备环境:安装与目标版本一致的 MongoDB;配置环境变量(如将 < MongoDB服务端路径> /bin 加入 PATH)。
- 解压备份:
- .tar.gz:tar xzvf .tar.gz
- _qp.xb(xbstream):先安装 percona-xtrabackup 与 qpress,然后
cat _qp.xb | xbstream -x -v
innobackupex --decompress --remove-original
- 配置并启动为单节点(示例,WiredTiger):
- 创建 mongod.conf(设置 systemLog、storage.dbPath、net.port、security.authorization 等)
- mongod -f /path/to/mongod.conf
- 登录验证:mongo --host 127.0.0.1 -u -p --authenticationDatabase admin
- 如需以副本集模式启动:移除 local.system.replset 配置、准备 keyFile、按副本集配置启动。
- 注意:物理恢复要求版本匹配、引擎一致,且通常要求实例未启用 TDE。
五 常见问题与排错要点
- 版本不兼容:逻辑恢复时,确保 mongorestore 版本与目标 MongoDB 兼容;必要时使用与目标库相同版本的 mongorestore。
- 权限不足:使用具有相应角色(如 root 或具备目标库读写权限的用户)并在命令中指定 –authenticationDatabase admin。
- 恢复覆盖风险:生产环境建议先停写并使用 –drop 谨慎操作;或先恢复到临时库核验后再切换。
- 物理恢复失败排查:检查解压是否完整、目录权限是否正确、配置文件(storage.dbPath、port、auth)是否匹配、版本是否一致。
- 无法启动:查看 mongod.log 定位存储引擎、权限、端口占用等问题。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: MongoDB在Ubuntu上的数据恢复
本文地址: https://pptw.com/jishu/786573.html
