MongoDB 4.2 数据迁移与备份指南

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

从文件系统创建冷备份

注意,创建冷备份时需要停止数据库服务器运行,可以尝试停止一个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()
    
上一篇:Mongodb的ReplicaSet实验


下一篇:Mongo读写分离