首页主机资讯Ubuntu下MongoDB的数据迁移步骤是什么

Ubuntu下MongoDB的数据迁移步骤是什么

时间2025-11-27 13:21:03发布访客分类主机资讯浏览1401
导读:Ubuntu 下 MongoDB 数据迁移步骤 一 方案选择 优先使用官方工具 mongodump/mongorestore(BSON 格式),可保留索引、数据类型与一致性,适合整库或跨实例迁移。对于副本集为保证一致性,使用 –oplog...

Ubuntu 下 MongoDB 数据迁移步骤

一 方案选择

  • 优先使用官方工具 mongodump/mongorestore(BSON 格式),可保留索引、数据类型与一致性,适合整库或跨实例迁移。对于副本集为保证一致性,使用 –oplog 捕获备份期间的写入,或在备份窗口内停止写入;对分片集群需按官方流程执行或使用 Atlas/Cloud Manager/Ops Manager 的协调备份。若对性能敏感或数据量大,优先考虑文件系统快照/云备份等方案。迁移时建议将备份输出为归档文件(–archive)并通过管道直接传输,减少磁盘 I/O 与中转步骤。

二 准备与版本匹配

  • 在两台 Ubuntu 主机安装匹配的 MongoDB Database Tools(包含 mongodump/mongorestore/mongoexport/mongoimport)。建议工具版本与目标 MongoDB 服务器版本兼容。验证命令:mongodump --version。如使用旧版或未安装,可下载 .deb/.tgz 包安装并更新 PATH。迁移前确认网络、端口(默认 27017)、磁盘空间与权限配置。

三 迁移步骤

  • 场景 A 整库迁移(推荐)
    1. 源库备份(示例:备份到时间戳目录)
      mongodump --host <
          源主机>
           --port 27017 --username <
          用户>
           --password <
          密码>
           \
        --authenticationDatabase admin --db <
          源库名>
           \
        --out /var/backups/mongobackups/$(date +'%F')
      
      如需压缩:--gzip;如需一致性(副本集):加 --oplog
    2. 传输备份到目标机(二选一)
      • 归档并管道直传(高效、少占磁盘):
        mongodump --host <
            源主机>
             --port 27017 -u <
            用户>
             -p <
            密码>
             \
          --authenticationDatabase admin --db <
            源库名>
             --archive | \
        mongorestore --host <
            目标主机>
             --port 27017 -u <
            用户>
             -p <
            密码>
             \
          --authenticationDatabase admin --archive
        
      • 或先拷贝目录再恢复:
        scp -r /var/backups/mongobackups/2025-11-27/<
            源库名>
             <
            目标用户>
            @<
            目标主机>
            :/tmp/
        mongorestore --host <
            目标主机>
             --port 27017 -u <
            用户>
             -p <
            密码>
             \
          --authenticationDatabase admin --dir /tmp/<
            源库名>
            
        
    3. 目标库恢复(示例)
      mongorestore --host <
          目标主机>
           --port 27017 -u <
          用户>
           -p <
          密码>
           \
        --authenticationDatabase admin --db <
          目标库名>
           /tmp/<
          源库名>
          
      
      如需先清空目标库再写入,可加 --drop(谨慎使用)。
  • 场景 B 单集合迁移(JSON,便于跨平台/审阅)
    1. 导出集合
      mongoexport --host <
          源主机>
           --port 27017 -u <
          用户>
           -p <
          密码>
           \
        --authenticationDatabase admin --db <
          库名>
           --collection <
          集合名>
           \
        --out /tmp/<
          集合名>
          .json
      
    2. 传输文件
      scp /tmp/<
          集合名>
          .json <
          目标用户>
          @<
          目标主机>
          :/tmp/
      
    3. 导入集合(可改名导入)
      mongoimport --host <
          目标主机>
           --port 27017 -u <
          用户>
           -p <
          密码>
           \
        --authenticationDatabase admin --db <
          目标库名>
           --collection <
          新集合名>
           \
        /tmp/<
          集合名>
          .json
      
    4. 如源库启用了认证机制(如 MONGODB-CR),需在命令中追加:
      --authenticationMechanism=MONGODB-CR(新版 SCRAM-SHA-1 通常无需指定)。

四 校验与常见问题

  • 校验
    • 集合计数对比(示例):
      mongo --host <
          源主机>
           --eval "db.<
          集合名>
          .count()"
      mongo --host <
          目标主机>
           --eval "db.<
          集合名>
          .count()"
      
    • 抽样查询对比结构、索引与样本文档,确认无丢失或类型偏差。
  • 常见问题与要点
    • 权限:执行 mongodump 需具备各库的 find 权限;目标库写入需具备相应 insert 权限。
    • 一致性:副本集请使用 –oplog 或在备份窗口停写;分片集群按官方协调流程或采用 Atlas/Cloud Manager/Ops Manager
    • 性能:mongodump/restore 会与运行实例交互并引发额外负载,建议在低峰时段执行,或改用快照/云备份
    • 特殊库:迁移时 mongodump 默认排除 local 数据库;请勿尝试导入 local/admin,以免鉴权或元数据错乱。
    • 工具版本:确保 Database Tools 与服务器版本兼容,必要时升级工具或服务器。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu下MongoDB的数据迁移步骤是什么
本文地址: https://pptw.com/jishu/757823.html
HBase如何在Ubuntu上配置 如何在Ubuntu上解决MongoDB的连接问题

游客 回复需填写必要信息