在Linux上进行MongoDB数据迁移,常用方法有命令行工具迁移和文件复制迁移,以下是具体操作:
使用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
若需跨服务器迁移,使用scp或rsync复制备份文件到目标服务器:
# 复制整个备份目录(需目标服务器有对应路径)
scp -r /tmp/backup user@目标服务器IP:/tmp/
使用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
sudo systemctl stop mongod # 或 sudo service mongod stop
MongoDB数据默认存储在/var/lib/mongodb目录,将其复制到目标服务器或新路径:
# 同服务器复制(需停止服务)
sudo cp -r /var/lib/mongodb /new/data/path
# 跨服务器复制(使用scp)
scp -r /var/lib/mongodb user@目标服务器IP:/var/lib/mongodb
修改/etc/mongod.conf中的dbPath和logPath,指向新数据目录:
storage:
dbPath: /new/data/path/mongodb
systemLog:
path: /new/data/path/mongod.log
sudo systemctl start mongod
# 连接MongoDB验证数据
mongo --host <服务器IP> --port 27017
sudo)。--oplog参数(mongodump)实现增量备份。以上方法可根据实际需求选择,命令行工具(mongodump/mongorestore)适合结构化迁移,文件复制适合快速迁移且需保留原配置的场景。