在CentOS上迁移MongoDB数据可以通过以下步骤完成:
首先,确保MongoDB服务已经停止,以避免数据不一致。
sudo systemctl stop mongod
使用mongodump
工具备份MongoDB数据。假设你的MongoDB实例运行在默认端口27017,并且数据目录是/var/lib/mongo
。
mongodump --out /path/to/backup
将备份文件从源服务器传输到目标服务器。可以使用scp
命令进行传输。
scp -r /path/to/backup user@target_server:/path/to/destination
在目标服务器上,使用mongorestore
工具恢复数据。
mongorestore /path/to/destination
在目标服务器上启动MongoDB服务。
sudo systemctl start mongod
连接到MongoDB并验证数据是否正确恢复。
mongo
use your_database_name
db.your_collection_name.find()
--drop
选项来覆盖现有数据。--gzip
选项来压缩备份文件,以减少传输时间。以下是一个简单的脚本示例,用于自动化上述步骤:
#!/bin/bash
# 源服务器信息
SOURCE_SERVER="source_server_ip"
SOURCE_USER="source_user"
SOURCE_PATH="/path/to/backup"
# 目标服务器信息
TARGET_SERVER="target_server_ip"
TARGET_USER="target_user"
TARGET_PATH="/path/to/destination"
# 停止MongoDB服务
ssh $SOURCE_SERVER "sudo systemctl stop mongod"
# 备份数据
ssh $SOURCE_SERVER "mongodump --out $SOURCE_PATH"
# 传输备份文件
scp -r $SOURCE_PATH $TARGET_USER@$TARGET_SERVER:$TARGET_PATH
# 在目标服务器上恢复数据
ssh $TARGET_SERVER "mongorestore $TARGET_PATH"
# 启动MongoDB服务
ssh $TARGET_SERVER "sudo systemctl start mongod"
# 验证数据
ssh $TARGET_SERVER "mongo -u your_username -p your_password --authenticationDatabase admin"
请根据实际情况修改脚本中的变量和命令。