这是MongoDB官方提供的命令行工具组合,适用于大多数迁移场景(尤其是全量迁移)。mongodump将源数据库导出为BSON格式文件(保留数据结构、索引等信息),mongorestore将BSON文件导入目标数据库。该方法支持跨版本、跨平台迁移,且数据一致性高。
操作示例:
mongodump --host 192.168.1.100 --port 27017 --db mydb --out /backup/mongodump
scp -r /backup/mongodump user@192.168.1.200:/backup/
mongorestore --host 192.168.1.200 --port 27017 /backup/mongodump/mydb
适用于需要将数据导出为JSON/CSV格式的场景(如跨系统迁移、数据转换)。mongoexport将指定集合导出为易读的文本文件,mongoimport将文本文件导入目标数据库。注意:该方法不保留索引(需手动重建),适合小批量数据迁移。
操作示例:
mongoexport --host 192.168.1.100 --port 27017 --db mydb --collection users --out /backup/users.json
mongoimport --host 192.168.1.200 --port 27017 --db mydb --collection users /backup/users.json
若源数据库可停机,可直接复制MongoDB的数据目录(默认/var/lib/mongo)到目标服务器。该方法速度快,适合大型数据库迁移,但需确保源数据库停止服务以避免数据不一致。
操作步骤:
sudo systemctl stop mongod
sudo rsync -av /var/lib/mongo/ user@192.168.1.200:/var/lib/mongo/
sudo systemctl start mongod
mongodump或数据目录复制方式备份源数据库,防止数据丢失。mongodb://192.168.1.200:27017),指向目标数据库地址和端口。/etc/mongod.conf(如数据目录、端口、绑定IP)。mongo --host 192.168.1.200 --port 27017 mydb --eval "db.users.count()"
db.collection.getIndexes()命令查看)。/var/log/mongodb/mongod.log),确认无错误或警告信息。mongodump --gzip)减少传输时间。mongorestore --objcheck验证数据有效性)。mongoshake或NineData等工具实现实时增量同步,减少停机时间。