在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
)适合结构化迁移,文件复制适合快速迁移且需保留原配置的场景。