MongoDB Linux版如何进行数据迁移
导读:MongoDB Linux版数据迁移实操指南 一、迁移方案总览与选择 物理文件拷贝迁移:直接复制数据目录(适合同版本、同存储引擎、单机或复制集的“快速整机迁移”)。要点是停库、拷贝、校准权限与配置、再启动。常用于同构环境,停机时间可控。...
MongoDB Linux版数据迁移实操指南
一、迁移方案总览与选择
- 物理文件拷贝迁移:直接复制数据目录(适合同版本、同存储引擎、单机或复制集的“快速整机迁移”)。要点是停库、拷贝、校准权限与配置、再启动。常用于同构环境,停机时间可控。
- 逻辑导出导入:使用 mongoexport/mongoimport 或 mongodump/mongorestore 逐库/逐集合迁移(适合跨版本、跨平台、只迁移部分库表、或云上云下互通)。要点是工具版本匹配、认证与网络可达、必要时分批导入。
二、物理文件拷贝迁移步骤(同构、停机最小)
- 停库
- 推荐优雅关闭:mongo shell 执行 use admin → db.shutdownServer();或使用系统服务:sudo systemctl stop mongod。避免 kill -9 导致异常锁文件残留。
- 拷贝数据目录
- 常见数据目录:/var/lib/mongodb;配置文件:/etc/mongod.conf。使用 rsync 可靠传输:
- rsync -avz --progress /var/lib/mongodb/ user@new_server_ip:/var/lib/mongodb/
- 目标端确认目录存在、属主属组与权限正确(mongod 运行用户,如 mongodb:mongodb)。
- 常见数据目录:/var/lib/mongodb;配置文件:/etc/mongod.conf。使用 rsync 可靠传输:
- 校准配置
- 如目标路径不同,修改 /etc/mongod.conf:
- storage.dbPath: /new/data/path
- systemLog.path: /new/log/path/mongod.log
- 如目标路径不同,修改 /etc/mongod.conf:
- 启动与网络
- 启动服务:sudo systemctl start mongod
- 开放端口(默认 27017):sudo ufw allow 27017/tcp 或 iptables 放行
- 验证
- mongo --host new_server_ip --port 27017 连接检查库表与数据量;必要时对比校验和/记录数。
三、逻辑迁移步骤(跨版本/跨平台/部分迁移)
- 准备工具
- 安装与源端版本匹配的 MongoDB Database Tools(含 mongoexport/mongoimport/mongodump/mongorestore)。示例下载与解压:
- wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel80-x86_64-100.5.3.tgz
- tar -zxvf mongodb-database-tools-*.tgz -C /usr/local/mongodb/
- 安装与源端版本匹配的 MongoDB Database Tools(含 mongoexport/mongoimport/mongodump/mongorestore)。示例下载与解压:
- 导出(示例)
- 集合级 JSON/CSV:
- ./mongoexport -h 127.0.0.1:27017 -d mydb -c mycol -o mycol.json
- 整库 BSON(含索引/类型更完整):
- ./mongodump -h 127.0.0.1:27017 -d mydb -o /backup/mydb
- 集合级 JSON/CSV:
- 传输
- scp /backup/mydb user@new_server_ip:/backup/
- 导入(示例)
- 集合级:
- ./mongoimport -h 127.0.0.1:27017 -d mydb -c mycol /backup/mydb/mydb/mycol.bson
- 整库:
- ./mongorestore -h 127.0.0.1:27017 /backup/mydb
- 集合级:
- 认证与网络
- 开启认证时追加:-u 用户名 -p 密码 --authenticationDatabase admin
- 远程导入需保证网络可达与端口开放。
四、关键注意事项与常见问题
- 版本与兼容性
- 避免跨多个大版本直接升级/迁移;按官方路径逐级升级(如 4.2 → 4.4 → 5.0),每一步验证功能与兼容性。
- 关注 featureCompatibilityVersion(FCV),必要时在升级/迁移前后设置为目标版本,确保索引/命令可用。
- 存储引擎与一致性
- 物理拷贝迁移要求源与目标 存储引擎一致(如都为 WiredTiger),否则建议用逻辑迁移(mongodump/mongorestore)。
- 复制集/分片
- 复制集:更稳妥是“新增新节点→数据同步→切换主→下线旧节点”的滚动迁移;不建议直接拷贝数据目录到新节点。
- 分片集群:按分片逐步迁移或使用官方工具/备份恢复方案,避免一次性全量切换风险。
- 认证与网络
- 开启认证需提供具有相应角色(如 readWrite、backup、restore)的用户,并指定 –authenticationDatabase admin。
- 云环境注意 安全组/防火墙 与 bind_ip 配置,确保迁移主机可连目标 27017 端口。
- 大对象与性能
- GridFS、超大集合建议分批导出/导入,避免超时与内存压力;必要时调大 batchSize/并发并监控磁盘 I/O。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: MongoDB Linux版如何进行数据迁移
本文地址: https://pptw.com/jishu/753465.html
