linux

MongoDB如何在Linux上进行数据迁移

小樊
38
2025-08-13 16:19:34
栏目: 云计算

在Linux上进行MongoDB数据迁移,常用方法有命令行工具迁移文件复制迁移,以下是具体操作:

一、命令行工具迁移(推荐)

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

使用mongodump命令导出数据库或集合数据到指定目录:

# 导出整个数据库
mongodump -d <数据库名> -o /path/to/backup/dir

# 导出指定集合(如需过滤数据,可添加--query参数)
mongodump -d <数据库名> -c <集合名> -o /path/to/backup/dir

示例:导出testdb数据库到/tmp/backup目录

mongodump -d testdb -o /tmp/backup

2. 传输数据(可选)

若需跨服务器迁移,使用scprsync复制备份文件到目标服务器:

# 复制整个备份目录(需目标服务器有对应路径)
scp -r /tmp/backup user@目标服务器IP:/tmp/

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

使用mongorestore命令将备份数据导入目标数据库:

# 导入整个数据库(可指定新数据库名)
mongorestore -d <新数据库名> /path/to/backup/dir/<原数据库名>

# 导入指定集合(需确保目标集合存在或使用--drop覆盖)
mongorestore -d <数据库名> -c <集合名> /path/to/backup/dir/<原数据库名>/<集合名>.bson

示例:将/tmp/backup中的testdb导入为目标服务器的newdb

mongorestore -d newdb /tmp/backup/testdb

二、文件复制迁移(适用于同服务器或需保留原配置)

1. 停止MongoDB服务

sudo systemctl stop mongod  # 或 sudo service mongod stop

2. 复制数据文件

MongoDB数据默认存储在/var/lib/mongodb目录,将其复制到目标服务器或新路径:

# 同服务器复制(需停止服务)
sudo cp -r /var/lib/mongodb /new/data/path

# 跨服务器复制(使用scp)
scp -r /var/lib/mongodb user@目标服务器IP:/var/lib/mongodb

3. 更新配置文件(如路径变更)

修改/etc/mongod.conf中的dbPathlogPath,指向新数据目录:

storage:
  dbPath: /new/data/path/mongodb
systemLog:
  path: /new/data/path/mongod.log

4. 启动服务并验证

sudo systemctl start mongod
# 连接MongoDB验证数据
mongo --host <服务器IP> --port 27017

关键注意事项

以上方法可根据实际需求选择,命令行工具(mongodump/mongorestore)适合结构化迁移,文件复制适合快速迁移且需保留原配置的场景。

0
看了该问题的人还看了