首页主机资讯mongodb数据迁移centos步骤

mongodb数据迁移centos步骤

时间2025-12-15 22:23:03发布访客分类主机资讯浏览348
导读:MongoDB 数据迁移到 CentOS 的标准步骤 一 方案选择与准备 迁移方式对比与适用场景 物理文件拷贝(停机迁移):拷贝 dbPath 数据目录,停机时间短、一致性高,适合同版本、同架构的 CentOS → CentOS 迁移...

MongoDB 数据迁移到 CentOS 的标准步骤


一 方案选择与准备

  • 迁移方式对比与适用场景
    • 物理文件拷贝(停机迁移):拷贝 dbPath 数据目录,停机时间短、一致性高,适合同版本、同架构的 CentOS → CentOS 迁移。
    • 逻辑备份恢复(mongodump/mongorestore):导出为 BSON,适合跨版本、跨平台、部分库/集合迁移,停机可控。
    • 集合级导出导入(mongoexport/mongoimport):导出为 JSON/CSV,可读性强,适合小数据量或结构迁移。
  • 版本与兼容性
    • 尽量保持源与目标 MongoDB 大版本一致(如 4.4 → 4.4、5.0 → 5.0),跨大版本建议用 mongodump/mongorestore
  • 账号与权限
    • 准备具备 备份/恢复 权限的账号,并在命令中指定 –authenticationDatabase=admin
  • 网络与防火墙
    • 开放 27017 端口(如 firewalld),确保源/目标主机可互通。
  • 目标端准备
    • 安装同版本 MongoDB,创建与源端一致的 dbPath、logPath 等目录结构,准备配置文件(如 /usr/local/mongodb/etc/mongodb.conf/etc/mongod.conf)。

二 方法一 物理文件拷贝迁移(停机、同版本推荐)

  • 源端操作
    1. 干净关闭 MongoDB
      • 推荐在 mongo shell 中执行:
        • use admin
        • db.shutdownServer()
    2. 打包并传输数据目录
      • 示例(若 data 为软链,请打包实际目录):
        • tar jcvf /home/python/mongodb/data.tar.bz2 /home/python/mongodb/data
        • scp /home/python/mongodb/data.tar.bz2 root@目标IP:/home/python/mongodb/
  • 目标端操作
    1. 解压并放置数据
      • tar -xvjf /home/python/mongodb/data.tar.bz2
      • 确认目录结构(如使用软链:ln -s /home/python/mongodb/data /usr/local/mongodb/data)
    2. 启动服务
      • 二进制方式:mongod --config /usr/local/mongodb/etc/mongodb.conf
      • 或 systemd:systemctl start mongod(确保服务文件 ExecStart 指向正确配置)
    3. 验证
      • 连接 mongo/mongosh:show dbs、检查集合与数据量。

三 方法二 逻辑备份恢复(mongodump/mongorestore,跨版本/跨平台通用)

  • 源端导出
    • 整库/多库:
      • mongodump --host 源主机 --port 端口 -u 用户名 -p 密码 --authenticationDatabase=admin --out /data/dump_20241215
    • 单库:
      • mongodump --host 源主机 --port 端口 -u 用户名 -p 密码 --authenticationDatabase=admin --db 目标库名 --out /data/dump_db
    • 单集合:
      • mongodump --host 源主机 --port 端口 -u 用户名 -p 密码 --authenticationDatabase=admin --db 库名 --collection 集合名 --out /data/dump_coll
  • 传输到目标 CentOS
    • scp -r /data/dump_20241215 root@目标IP:/data/
  • 目标端恢复
    • 整库/多库:
      • mongorestore --host 127.0.0.1 --port 27017 -u 用户名 -p 密码 --authenticationDatabase=admin --dir /data/dump_20241215
    • 单库:
      • mongorestore --host 127.0.0.1 --port 27017 -u 用户名 -p 密码 --authenticationDatabase=admin --db 目标库名 /data/dump_db/目标库名
    • 单集合:
      • mongorestore --host 127.0.0.1 --port 27017 -u 用户名 -p 密码 --authenticationDatabase=admin --db 库名 --collection 集合名 /data/dump_coll/集合名.bson
  • 常用参数
    • –gzip 压缩导出/导入(配合 --archive 可导出为单一归档)
    • –drop 恢复前删除同名集合(谨慎使用)
    • 认证机制如为 MONGODB-CR,需加 --authenticationMechanism=MONGODB-CR。

四 方法三 集合级导出导入(JSON/CSV,小数据量或结构迁移)

  • 导出
    • JSON:
      • mongoexport --host 源主机 --port 端口 -u 用户名 -p 密码 --authenticationDatabase=admin --db 库名 --collection 集合名 -o /data/coll.json
    • CSV(指定字段):
      • mongoexport --host 源主机 --port 端口 -u 用户名 -p 密码 --authenticationDatabase=admin --db 库名 --collection 集合名 --type=csv -f 字段1,字段2 -o /data/coll.csv
  • 导入
    • JSON:
      • mongoimport --host 127.0.0.1 --port 27017 -u 用户名 -p 密码 --authenticationDatabase=admin --db 库名 --collection 集合名 --file /data/coll.json
    • CSV(含表头行):
      • mongoimport --host 127.0.0.1 --port 27017 -u 用户名 -p 密码 --authenticationDatabase=admin --db 库名 --collection 集合名 --type=csv --headerline --file /data/coll.csv。

五 常见问题与验证

  • 认证与机制
    • 老用户(如 rwuser)可能需要加 –authenticationMechanism=MONGODB-CR;新用户使用 SCRAM-SHA-1 无需额外参数。
  • 禁止导入系统库
    • 云数据库等环境通常禁止导入 localadmin,避免元数据错乱与鉴权失败。
  • 防火墙与端口
    • 开放 27017/tcp:firewall-cmd --zone=public --add-port=27017/tcp --permanent & & firewall-cmd --reload
  • 路径与权限
    • 确认 dbPath、logPath 目录存在且 mongod 有读写权限;使用软链时确保链接目标可访问。
  • 版本与兼容性
    • 跨大版本优先用 mongodump/mongorestore;同版本物理拷贝更省时。
  • 验证清单
    • 连接 mongo/mongosh:show dbs、db.stats()、检查关键集合 count()、抽样查询数据一致性。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: mongodb数据迁移centos步骤
本文地址: https://pptw.com/jishu/772136.html
mongodb复制集配置centos centos下mongodb磁盘空间管理

游客 回复需填写必要信息