Linux环境下MongoDB数据迁移方法
一、常用迁移方式与适用场景
二、方法一 逻辑导出导入 mongoexport 与 mongoimport
mongoexport -h 源主机 -p 端口 -u 用户名 -p 密码 -d 库名 -c 集合名 -o 文件.jsonmongoexport -h 源主机 -p 端口 -u 用户名 -p 密码 -d 库名 -c 集合名 --type=csv -f 字段1,字段2 --headerline -o 文件.csv-h/-p/-u/-p/-d/-c/-o/--type/--headerline/-f/-q(查询条件)mongoimport -h 目标主机 -p 端口 -u 用户名 -p 密码 -d 库名 -c 集合名 --file 文件.jsonmongoimport -h 目标主机 -p 端口 -u 用户名 -p 密码 -d 库名 -c 集合名 --type=csv --headerline -f 字段1,字段2 --file 文件.csv--drop(导入前清空集合)、--ignoreBlanks(CSV忽略空值)、-j N(并发写入)mongoexport -h 10.0.0.10:27017 -u admin -p *** -d sales -c orders -o /tmp/orders.jsonmongoimport -h 10.0.0.20:27017 -u admin -p *** -d sales -c orders --file /tmp/orders.json三、方法二 二进制备份恢复 mongodump 与 mongorestore
mongodump -h 源主机 -p 端口 -u 用户名 -p 密码 -o /backup/dump-20251116mongodump -h 源主机 -p 端口 -u 用户名 -p 密码 -d 库名 -o /backup/dump-库名mongodump -h 源主机 -p 端口 -u 用户名 -p 密码 --gzip --archive=/backup/dump-20251116.archivemongorestore -h 目标主机 -p 端口 -u 用户名 -p 密码 -d 库名 --dir /backup/dump-库名/库名mongorestore -h 目标主机 -p 端口 -u 用户名 -p 密码 --gzip --archive=/backup/dump-20251116.archive--drop(恢复前删除目标集合)、--gzip(压缩传输/恢复)mongodump -h 10.0.0.10:27017 -u admin -p *** --gzip --archive=/tmp/db.archivemongorestore -h 10.0.0.20:27017 -u admin -p *** --gzip --archive=/tmp/db.archive四、方法三 文件系统拷贝 rsync 方式(停库)
sudo systemctl stop mongodsudo rsync -avz --progress /var/lib/mongodb/ 目标主机:/var/lib/mongodb/sudo ufw allow 27017/tcp 或 sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPTsudo systemctl start mongodmongo --host 目标主机 --port 27017 查询集合/数据量五、迁移注意事项与实用建议