MongoDB数据在Linux环境下的迁移流程及注意事项
systemctl status mongod确认状态为active (running))。mongodump工具(推荐)或直接复制数据文件(/var/lib/mongodb目录),防止迁移过程中数据丢失。readWrite角色),若开启认证需提前获取账号密码。mongodump命令,将指定数据库导出为BSON格式文件(默认保存到--out目录):mongodump --host <源服务器IP> --port 27017 --db <数据库名> --out /path/to/backup
示例:导出mydb数据库到/home/user/mongodb_backup目录。scp(安全复制)将备份目录传输到目标服务器:scp -r /path/to/backup <目标服务器用户>@<目标服务器IP>:/path/to/destination
示例:将备份传输到目标服务器的/opt/mongodb_restore目录。mongorestore命令,将备份文件导入到目标数据库(若目标数据库已存在,可添加--drop参数先删除原有数据):mongorestore --host <目标服务器IP> --port 27017 --db <数据库名> /path/to/destination/<数据库名>
示例:恢复mydb数据库到目标服务器的mongod实例。mongoexport命令,将指定集合导出为JSON或CSV格式文件(--csv表示CSV格式,-f指定字段):mongoexport --host <源服务器IP> --port 27017 --db <数据库名> --collection <集合名> --out /path/to/export.json
示例:导出mydb数据库的users集合到/home/user/users.json文件。scp将导出文件传输到目标服务器(方法同上)。mongoimport命令,将文件数据导入到目标集合(--upsert表示若存在则更新,--drop表示先删除原有集合):mongoimport --host <目标服务器IP> --port 27017 --db <数据库名> --collection <集合名> --file /path/to/export.json
示例:导入users.json文件到目标服务器的mydb数据库。sudo systemctl stop mongod
/var/lib/mongodb)复制到目标服务器的相同路径(需提前创建目录并赋予权限):sudo rsync -avz /var/lib/mongodb/ <目标服务器用户>@<目标服务器IP>:/var/lib/mongodb/
sudo systemctl start mongod
mongo shell连接到目标数据库,执行查询语句(如db.<集合名>.find().count())对比源数据库与目标数据库的记录数。db.<集合名>.getIndexes())、配置(如storage.dbPath、systemLog.path)与源数据库一致。mongodb://<目标服务器IP>:27017/<数据库名>),测试应用是否能正常读写目标数据库。mongodump+mongorestore的增量同步减少停机时间)。/var/log/mongodb/mongod.log),排查是否有错误或警告信息。