首页主机资讯MongoDB在Ubuntu上的数据恢复

MongoDB在Ubuntu上的数据恢复

时间2026-01-20 03:03:03发布访客分类主机资讯浏览1287
导读:在 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-xtrabackupqpress,然后
        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
如何通过Swagger在Debian实现自动化测试 如何在Debian定制Swagger界面

游客 回复需填写必要信息