温馨提示×

Linux环境下MongoDB的数据迁移步骤是什么

小樊
49
2025-09-14 19:23:51
栏目: 云计算

Linux环境下MongoDB数据迁移主要有以下两种常用方式:

一、使用命令行工具(推荐)

1. 数据导出(源服务器)

  • 导出整个数据库
    mongodump --host <源主机> --port <源端口> --db <数据库名> --out /备份路径
    示例:mongodump --host 192.168.1.100 --port 27017 --db mydb --out /data/backup
  • 导出指定集合
    mongodump --host <源主机> --port <源端口> --db <数据库名> --collection <集合名> --out /备份路径
    示例:mongodump --host 192.168.1.100 --port 27017 --db mydb --collection users --out /data/backup

2. 数据导入(目标服务器)

  • 导入整个数据库
    mongorestore --host <目标主机> --port <目标端口> --db <目标数据库名> /备份路径/<数据库名>
    示例:mongorestore --host 192.168.1.200 --port 27017 --db newdb /data/backup/mydb
  • 导入指定集合
    mongorestore --host <目标主机> --port <目标端口> --db <目标数据库名> --collection <集合名> /备份路径/<数据库名>/<集合名>.bson
    示例:mongorestore --host 192.168.1.200 --port 27017 --db newdb --collection users /data/backup/mydb/users.bson

3. 注意事项

  • 确保目标服务器已安装MongoDB且版本与源服务器一致。
  • 导入前需确认目标数据库不存在同名集合(或使用--drop参数覆盖)。
  • 大数据量迁移时,建议分批次导出导入,避免内存不足。

二、物理文件迁移(需停机)

1. 停止源服务器MongoDB服务

sudo systemctl stop mongod  # Systemd系统
# 或 sudo service mongod stop  # Init系统

2. 同步数据文件

使用rsync将源服务器的MongoDB数据目录(默认/var/lib/mongodb)同步到目标服务器:

sudo rsync -avz --progress /var/lib/mongodb/ <目标用户>@<目标IP>:/var/lib/mongodb/

3. 启动目标服务器MongoDB

sudo systemctl start mongod  # Systemd系统
# 或 sudo service mongod start  # Init系统

4. 验证数据

通过mongo客户端连接目标服务器,查询数据是否完整:

mongo --host <目标IP> --port 27017
> use <数据库名>
> db.<集合名>.find()

三、工具迁移(可选)

  • MongoShake:支持跨机房同步、增量迁移,适合大规模数据迁移。
  • MongoDB Compass:图形化界面操作,适合少量数据迁移。

选择建议

  • 优先使用mongodump/mongorestore,支持灵活选择数据库/集合,无需停机。
  • 若需快速迁移且能接受停机,可采用物理文件同步方式。

0