MongoDB 4.2 数据迁移与备份指南

本文详细介绍了如何使用mongodump和mongorestore在MongoDB 4.2中进行不停机的数据迁移与备份。通过创建Archive模式的冷备文件,结合系统快照或rsync命令,实现高效的数据备份。在恢复过程中,需注意删除local数据库以重建副本集,并通过拷贝数据目录或initialsync方式将数据同步到secondary节点。
摘要由CSDN通过智能技术生成

MongoDB 4.2 数据迁移与备份指南

来源于MongoDB Manual 4.2

https://docs.mongodb.com/v4.2/tutorial/restore-replica-set-from-backup/

原文:Restore a Replica Set from MongoDB Backups

使用Mongodump Archive模式不停机创建冷备文件

关于mongodump

创建Archive
mongodump -h <host> -u <user> -p <password> --archive=<file_name>

使用--gzip选项可以启用压缩,但是会降低导出速度

从Archive 中恢复
mongorestore -h <host> -u <user> -p <password> --archive=<file_name>

从文件系统创建冷备份

注意,创建冷备份时需要停止数据库服务器运行,可以尝试停止一个secondary节点或者hidden节点

  • 可以使用系统快照的方式直接创建数据库目录磁盘快照

  • 可以使用rsync命令将数据库目录同步到远程备份服务器

  • 可以使用压缩工具将数据库目录压缩归档

从冷备份恢复单节点数据库

  1. 释放冷备份归档文件,取得数据库目录

  2. 单机模式启动数据库

    mongod --dbpath /data/db
    
  3. 删除local数据库

    mongo
    use local
    db.dropDatabase()
    

    然后停止该mongd实例

删除local数据库是为了重建副本集,否则数据库启动时会处于Other状态,无法进行数据操作

创建新的副本集

  1. 创建新的副本集

    mongod --dbpath /data/db --replSet <replName>
    mongo
    rs.initiate({
      _id: <replNmae>,
      members: [{_id:0, host: <host:port>}]
    })
    
  2. 将数据同步到secondary节点

    有两种同步方式:

    • 通过手动拷贝的方式将数据拷贝到secondary节点,也可以使用rsync工具
    • 通过数据库自己的initial sync方式自动的分发数据到secondary节点

    如果数据库较大的话,还是使用拷贝数据库目录的方式进行同步比较快

  3. 加入新的secondary节点

    ## 启动新的secondary节点
    mongod --dbpath /data/db --replSet <replName>
    ## 在primary节点执行操作
    mongo
    rs.add("<host:port>")
    
  4. 检查副本集状态

    ## 在primary节点执行操作
    mongo 
    rs.status()
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值