MongoDB数据迁移至CentOS操作指南
目标服务器环境配置
确保目标CentOS服务器已安装与源服务器版本兼容的MongoDB(推荐使用官方YUM仓库安装,避免版本冲突)。安装完成后,启动MongoDB服务并设置开机自启:
sudo systemctl start mongod
sudo systemctl enable mongod
若启用身份验证,需提前创建管理员账户(如admin)并授权,确保有权限操作数据库。
网络与权限检查
27017,可通过firewall-cmd命令配置);mongodump、mongorestore工具权限(默认安装MongoDB后自带);mongodump+mongorestore(逻辑备份,适用于大多数场景)1. 备份源数据库
在源服务器上执行mongodump命令,将指定数据库(如mydb)备份到本地目录(如/backup):
mongodump --host 源服务器IP --port 27017 --db mydb --out /backup
若源数据库启用了身份验证,需添加-u(用户名)、-p(密码)参数:
mongodump -u admin -p your_password --authenticationDatabase admin --host 源服务器IP --port 27017 --db mydb --out /backup
2. 传输备份文件至目标服务器
使用scp命令将备份目录复制到目标服务器(如目标服务器IP为192.168.1.100,目标目录为/target):
scp -r /backup 用户名@192.168.1.100:/target
3. 恢复数据至目标服务器
在目标服务器上执行mongorestore命令,将备份数据导入到目标数据库(如mydb_target):
mongorestore --host 127.0.0.1 --port 27017 --db mydb_target /target/mydb
若目标数据库已存在且需清空旧数据,可添加--drop参数(谨慎使用,会删除目标数据库原有数据):
mongorestore --host 127.0.0.1 --port 27017 --db mydb_target --drop /target/mydb
4. 验证数据完整性
连接到目标MongoDB实例,检查数据是否迁移成功:
mongo -u admin -p your_password --authenticationDatabase admin
use mydb_target
show collections # 查看集合列表
db.collection_name.find().limit(10) # 查询集合中的数据(替换为实际集合名)
rsync同步数据文件(物理备份,适用于大数据量场景)1. 停止源MongoDB服务
为确保数据一致性,停止源服务器上的MongoDB服务:
sudo systemctl stop mongod
2. 同步数据目录
MongoDB默认数据目录为/var/lib/mongodb(可通过/etc/mongod.conf中的storage.dbPath确认)。使用rsync命令将源数据目录同步到目标服务器(目标目录需与源目录一致,如/var/lib/mongodb):
rsync -avz --delete 源服务器IP:/var/lib/mongodb/ 目标服务器IP:/var/lib/mongodb/
--delete参数会删除目标目录中源目录不存在的文件,确保数据完全一致。
3. 启动目标MongoDB服务
在目标服务器上启动MongoDB服务:
sudo systemctl start mongod
检查服务状态,确保启动成功:
sudo systemctl status mongod
4. 验证数据
同方法1的步骤4,通过MongoDB Shell验证数据完整性。
更新客户端连接信息
修改所有客户端应用程序的连接字符串,指向目标服务器的IP地址和端口(默认27017)。例如:
mongodb://192.168.1.100:27017/mydb_target
清理临时文件
删除源服务器上的备份文件(如/backup)和目标服务器上的临时传输文件,释放磁盘空间。
监控性能
迁移完成后,监控目标服务器的CPU、内存、磁盘IO等指标,确保MongoDB运行稳定。
db.collection_name.lock()),防止数据修改导致不一致;/var/log/mongodb/mongod.log)定位问题。