mongodb数据迁移centos步骤
导读:MongoDB 数据迁移到 CentOS 的标准步骤 一 方案选择与准备 迁移方式对比与适用场景 物理文件拷贝(停机迁移):拷贝 dbPath 数据目录,停机时间短、一致性高,适合同版本、同架构的 CentOS → CentOS 迁移...
MongoDB 数据迁移到 CentOS 的标准步骤
一 方案选择与准备
- 迁移方式对比与适用场景
- 物理文件拷贝(停机迁移):拷贝 dbPath 数据目录,停机时间短、一致性高,适合同版本、同架构的 CentOS → CentOS 迁移。
- 逻辑备份恢复(mongodump/mongorestore):导出为 BSON,适合跨版本、跨平台、部分库/集合迁移,停机可控。
- 集合级导出导入(mongoexport/mongoimport):导出为 JSON/CSV,可读性强,适合小数据量或结构迁移。
- 版本与兼容性
- 尽量保持源与目标 MongoDB 大版本一致(如 4.4 → 4.4、5.0 → 5.0),跨大版本建议用 mongodump/mongorestore。
- 账号与权限
- 准备具备 备份/恢复 权限的账号,并在命令中指定 –authenticationDatabase=admin。
- 网络与防火墙
- 开放 27017 端口(如 firewalld),确保源/目标主机可互通。
- 目标端准备
- 安装同版本 MongoDB,创建与源端一致的 dbPath、logPath 等目录结构,准备配置文件(如 /usr/local/mongodb/etc/mongodb.conf 或 /etc/mongod.conf)。
二 方法一 物理文件拷贝迁移(停机、同版本推荐)
- 源端操作
- 干净关闭 MongoDB
- 推荐在 mongo shell 中执行:
- use admin
- db.shutdownServer()
- 推荐在 mongo shell 中执行:
- 打包并传输数据目录
- 示例(若 data 为软链,请打包实际目录):
- tar jcvf /home/python/mongodb/data.tar.bz2 /home/python/mongodb/data
- scp /home/python/mongodb/data.tar.bz2 root@目标IP:/home/python/mongodb/
- 示例(若 data 为软链,请打包实际目录):
- 干净关闭 MongoDB
- 目标端操作
- 解压并放置数据
- tar -xvjf /home/python/mongodb/data.tar.bz2
- 确认目录结构(如使用软链:ln -s /home/python/mongodb/data /usr/local/mongodb/data)
- 启动服务
- 二进制方式:mongod --config /usr/local/mongodb/etc/mongodb.conf
- 或 systemd:systemctl start mongod(确保服务文件 ExecStart 指向正确配置)
- 验证
- 连接 mongo/mongosh:show dbs、检查集合与数据量。
- 解压并放置数据
三 方法二 逻辑备份恢复(mongodump/mongorestore,跨版本/跨平台通用)
- 源端导出
- 整库/多库:
- mongodump --host 源主机 --port 端口 -u 用户名 -p 密码 --authenticationDatabase=admin --out /data/dump_20241215
- 单库:
- mongodump --host 源主机 --port 端口 -u 用户名 -p 密码 --authenticationDatabase=admin --db 目标库名 --out /data/dump_db
- 单集合:
- mongodump --host 源主机 --port 端口 -u 用户名 -p 密码 --authenticationDatabase=admin --db 库名 --collection 集合名 --out /data/dump_coll
- 整库/多库:
- 传输到目标 CentOS
- scp -r /data/dump_20241215 root@目标IP:/data/
- 目标端恢复
- 整库/多库:
- mongorestore --host 127.0.0.1 --port 27017 -u 用户名 -p 密码 --authenticationDatabase=admin --dir /data/dump_20241215
- 单库:
- mongorestore --host 127.0.0.1 --port 27017 -u 用户名 -p 密码 --authenticationDatabase=admin --db 目标库名 /data/dump_db/目标库名
- 单集合:
- mongorestore --host 127.0.0.1 --port 27017 -u 用户名 -p 密码 --authenticationDatabase=admin --db 库名 --collection 集合名 /data/dump_coll/集合名.bson
- 整库/多库:
- 常用参数
- –gzip 压缩导出/导入(配合 --archive 可导出为单一归档)
- –drop 恢复前删除同名集合(谨慎使用)
- 认证机制如为 MONGODB-CR,需加 --authenticationMechanism=MONGODB-CR。
四 方法三 集合级导出导入(JSON/CSV,小数据量或结构迁移)
- 导出
- JSON:
- mongoexport --host 源主机 --port 端口 -u 用户名 -p 密码 --authenticationDatabase=admin --db 库名 --collection 集合名 -o /data/coll.json
- CSV(指定字段):
- mongoexport --host 源主机 --port 端口 -u 用户名 -p 密码 --authenticationDatabase=admin --db 库名 --collection 集合名 --type=csv -f 字段1,字段2 -o /data/coll.csv
- JSON:
- 导入
- JSON:
- mongoimport --host 127.0.0.1 --port 27017 -u 用户名 -p 密码 --authenticationDatabase=admin --db 库名 --collection 集合名 --file /data/coll.json
- CSV(含表头行):
- mongoimport --host 127.0.0.1 --port 27017 -u 用户名 -p 密码 --authenticationDatabase=admin --db 库名 --collection 集合名 --type=csv --headerline --file /data/coll.csv。
- JSON:
五 常见问题与验证
- 认证与机制
- 老用户(如 rwuser)可能需要加 –authenticationMechanism=MONGODB-CR;新用户使用 SCRAM-SHA-1 无需额外参数。
- 禁止导入系统库
- 云数据库等环境通常禁止导入 local、admin,避免元数据错乱与鉴权失败。
- 防火墙与端口
- 开放 27017/tcp:firewall-cmd --zone=public --add-port=27017/tcp --permanent & & firewall-cmd --reload
- 路径与权限
- 确认 dbPath、logPath 目录存在且 mongod 有读写权限;使用软链时确保链接目标可访问。
- 版本与兼容性
- 跨大版本优先用 mongodump/mongorestore;同版本物理拷贝更省时。
- 验证清单
- 连接 mongo/mongosh:show dbs、db.stats()、检查关键集合 count()、抽样查询数据一致性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: mongodb数据迁移centos步骤
本文地址: https://pptw.com/jishu/772136.html
