首页主机资讯MongoDB数据迁移在Ubuntu上怎么弄

MongoDB数据迁移在Ubuntu上怎么弄

时间2025-11-19 11:36:04发布访客分类主机资讯浏览1124
导读:在 Ubuntu 上做 MongoDB 数据迁移的实用步骤 一 方案选择 同版本或相近版本、需要保留索引与数据类型时,优先使用 mongodump/mongorestore(BSON 二进制,保真度高,适合迁移)。 跨大版本或跨产品迁移、...

在 Ubuntu 上做 MongoDB 数据迁移的实用步骤

一 方案选择

  • 同版本或相近版本、需要保留索引与数据类型时,优先使用 mongodump/mongorestore(BSON 二进制,保真度高,适合迁移)。
  • 跨大版本或跨产品迁移、只需迁移部分数据、强调可读性时,使用 mongoexport/mongoimport(JSON/CSV,不保留索引/账户等元数据)。
  • 需要不停机近实时同步时,考虑 Change Streams 或第三方工具(如 Studio 3T、Robo 3T)。
  • 迁移前务必评估数据量与资源占用,选择业务低峰时段执行。

二 准备与工具安装

  • 安装命令行工具包(包含 mongodump/mongorestore/mongoexport/mongoimport):
    • Ubuntu 20.04/22.04 常见做法:sudo apt update & & sudo apt install -y mongodb-org-tools
    • 若仓库无该包,可手动安装 MongoDB Database Tools(.tgz 或 .deb),或用官方源安装对应版本。
  • 验证工具可用:mongodump --version。
  • 迁移前确认网络、端口(默认 27017)、磁盘空间与权限。

三 同版本迁移步骤(推荐)

  • 源库导出(示例为本地,远程请替换主机与端口):
    • 全库:mongodump --uri=“mongodb://源主机:27017” --out=/data/backup/$(date +%F)
    • 单库:mongodump --uri=“mongodb://源主机:27017” --db=mydb --out=/data/backup/mydb_$(date +%F)
  • 传输备份到目标机器:
    • scp -r /data/backup/mydb_2025-11-19 目标主机:/data/backup/
  • 目标库恢复:
    • 全库:mongorestore --uri=“mongodb://目标主机:27017” --drop /data/backup/mydb_2025-11-19
    • 单库:mongorestore --uri=“mongodb://目标主机:27017” --db=mydb --drop /data/backup/mydb_2025-11-19/mydb
  • 说明:–drop 会在恢复前删除同名库/集合,避免重复;如跨主机迁移,请在 URI 中带上认证参数(如 --username/–password 或 --uri 包含用户名密码)。

四 跨版本或跨产品迁移(JSON/CSV)

  • 导出集合为 JSON(示例):
    • mongoexport --uri=“mongodb://源主机:27017” --db=mydb --collection=mycoll --out=mycoll.json
    • 可按条件导出:–query=‘{ “ts”:{ “$gt”:ISODate(“2025-01-01”)} } ’
  • 可选:导出为 CSV(字段顺序需一致):
    • mongoexport --uri=“mongodb://源主机:27017” --db=mydb --collection=mycoll --type=csv --fields=f1,f2,f3 --out=mycoll.csv
  • 目标库导入:
    • JSON:mongoimport --uri=“mongodb://目标主机:27017” --db=mydb --collection=mycoll --file=mycoll.json
    • CSV:mongoimport --uri=“mongodb://目标主机:27017” --db=mydb --collection=mycoll --type=csv --headerline --file=mycoll.csv
  • 注意:JSON/CSV 不保留索引、触发器、用户与角色等元数据,导入后需重建索引与权限。

五 常见问题与校验

  • 认证失败:在命令中加入 --authenticationDatabase=admin(或对应库),或在 URI 中提供凭据。
  • 重复键冲突:恢复时加 --drop;导入 JSON 时可用 --upsert/–upsertFields 控制。
  • 版本兼容:BSON 跨版本并非总是兼容,跨大版本优先尝试 JSON 方案或先在测试环境验证。
  • 一致性:导出期间写入会导致不一致,尽量在低峰期执行,或使用复制集/备份窗口策略。
  • 校验:对比导出前后数据量(如 du -sh)、集合 count、抽样查询与索引是否齐全。

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


若转载请注明出处: MongoDB数据迁移在Ubuntu上怎么弄
本文地址: https://pptw.com/jishu/751003.html
Ubuntu上MongoDB如何进行安全审计 Ubuntu MongoDB如何进行权限控制

游客 回复需填写必要信息