温馨提示×

Ubuntu MongoDB数据迁移步骤

小樊
66
2025-08-29 23:47:36
栏目: 云计算

Ubuntu环境下MongoDB数据迁移步骤

1. 准备工作

  • 安装迁移工具:Ubuntu系统可通过包管理器安装MongoDB官方数据库工具(包含mongodumpmongorestore等命令)。例如,使用.deb文件安装(适配Ubuntu 20.04及以上版本):
    sudo dpkg -i mongodb-database-tools-ubuntu2004-x86_64-<version>.deb  # 替换<version>为实际版本号
    
    安装完成后,通过mongodump --version验证工具是否可用。
  • 确认版本兼容性:确保源数据库与目标数据库的MongoDB版本兼容(如无特殊需求,建议版本一致)。
  • 备份源数据:迁移前务必备份源数据库,防止数据丢失。

2. 导出源数据库数据

  • 导出所有数据库:使用mongodump命令将源数据库所有数据导出到指定目录(如/home/ubuntu/mongodb_backup):
    mongodump --host <source_host> --port <source_port> --out /home/ubuntu/mongodb_backup
    
    若源数据库在本地,默认--host localhost--port 27017可省略。
  • 导出特定数据库/集合:若只需迁移部分数据,可通过--db(指定数据库)或--db+--collection(指定集合)参数缩小范围:
    mongodump --host <source_host> --port <source_port> --db mydb --out /home/ubuntu/mongodb_backup  # 导出mydb数据库
    mongodump --host <source_host> --port <source_port> --db mydb --collection users --out /home/ubuntu/mongodb_backup  # 导出mydb中的users集合
    

3. 传输备份数据到目标服务器

  • 使用scp(安全拷贝)或rsync等工具将备份目录传输到目标Ubuntu服务器。例如,通过scp传输到目标服务器的/tmp目录:
    scp -r /home/ubuntu/mongodb_backup <target_user>@<target_host>:/tmp
    

4. 导入数据到目标数据库

  • 导入所有数据库:使用mongorestore命令将备份数据恢复到目标数据库(默认恢复到同名数据库):
    mongorestore --host <target_host> --port <target_port> /tmp/mongodb_backup
    
  • 导入特定数据库/集合:若需恢复到指定数据库(如newdb)或集合(如newusers),可通过--db(目标数据库)或--db+--collection(目标集合)参数指定:
    mongorestore --host <target_host> --port <target_port> --db newdb /tmp/mongodb_backup/mydb  # 恢复mydb到newdb
    mongorestore --host <target_host> --port <target_port> --db newdb --collection newusers /tmp/mongodb_backup/mydb/users.bson  # 恢复users集合到newdb.newusers
    

    注:若目标数据库中已存在同名集合,mongorestore会默认覆盖(可通过--drop参数提前删除目标集合,避免冲突)。

5. 验证数据完整性

  • 连接到目标数据库,检查集合数量、文档数量及数据内容是否与源数据库一致:
    mongo --host <target_host> --port <target_port>
    > use newdb  # 切换到目标数据库
    > show collections  # 查看集合列表
    > db.newusers.countDocuments()  # 统计集合文档数量(替换为实际集合名)
    > db.newusers.find().limit(5).pretty()  # 查看前5条文档(替换为实际集合名)
    

6. 清理与收尾

  • 删除临时备份文件(如目标服务器上的/tmp/mongodb_backup),释放存储空间:
    rm -rf /tmp/mongodb_backup
    
  • 更新应用程序配置:若应用程序连接的数据库地址或名称发生变化,需修改配置文件(如app.conf)或环境变量,确保指向目标数据库。

0