以下是Linux上迁移MongoDB数据的常用技巧及适用场景:
mongodump/mongorestore
# 备份
mongodump --host 源主机 --port 源端口 --db 数据库名 --out /备份路径
# 恢复
mongorestore --host 目标主机 --port 目标端口 --db 数据库名 /备份路径/数据库名
--oplogReplay
参数实现时间点恢复。mongoexport/mongoimport
# 导出集合为JSON
mongoexport --host 源主机 --db 数据库名 --collection 集合名 --out data.json
# 导入JSON数据
mongoimport --host 目标主机 --db 数据库名 --collection 集合名 --file data.json
sudo systemctl stop mongod
sudo rsync -avz /var/lib/mongodb/ 目标服务器:/var/lib/mongodb/
sudo systemctl start mongod
副本集扩展迁移
第三方工具
mongodump --version
和mongorestore --version
检查。mongo
shell检查集合数量、索引和数据一致性:mongo --host 目标主机 --eval "db.getCollectionNames()"
--numInsertionWorkersPerCollection
参数)。--ssl
参数),并限制临时访问权限。方案 | 优点 | 缺点 | 推荐场景 |
---|---|---|---|
mongodump/restore | 官方工具、保留索引、支持增量 | 大数据量时耗时较长 | 通用型迁移 |
mongoexport/import | 轻量级、支持格式转换 | 不保留约束、性能较低 | 小数据量或格式转换需求 |
rsync物理迁移 | 快速、无需停机(同版本) | 需停机、版本必须一致 | 同服务器或副本集迁移 |
根据数据规模、停机时间要求和环境复杂度选择合适方案,优先在测试环境验证迁移流程后再应用到生产环境。