zoukankan      html  css  js  c++  java
  • MongoDB 副本集用一致性快照方法添加从节点

    副本集信息:

    192.168.1.1 PRIMARY
    192.168.1.2 SECONDARY
    192.168.1.3 SECONDARY
    
    192.168.1.4 SECONDARY(新增)

    一、步骤:

    1.主或从节点上进行一致性快照备份
    2.从节点上进行一致性快照恢复,仅仅对数据部分进行恢复,暂时不要对oplog进行恢复
    3.初始化oplog.rs集合,并恢复oplog记录
    4.初始化local数据库的其他两个集合db.replset.election,db.system.replset
    5.修改数据库配置并重启数据库(这一步操作前实例不开启认证模式、复制集的配置)
    6.用rs.add("HOST_NAME:PORT")命令将从节点添加进集群
    7.用rs.status()观察同步状态并校验数据的完整和一致性

    二、备份:

    主节点或者其他两个从节点上备份数据:

    mongodump -uadmin -padmin --host 192.168.1.1 --authenticationDatabase=admin --port=27017 --oplog -o /data/mongo/backup

    将备份传输到192.168.1.4进行恢复:

    scp -r /data/mongo/backup mongo@192.168.1.4/data/mongo

    三、第三个从节点以单实例方式启动:

    备注:需要注释掉以下副本集参数
    # auth = true
    
    #replSet = repl_mongo
    
    #keyFile = /data/mongo/27017/replSet.key
    
    启动:
    mongod -f /data/mongo/27017/conf/mongodb.conf
    
    在192.168.1.4上进行一致性快照恢复:
    mongorestore --oplogReplay --port=27017 /data/mongo/backup

    四、创建oplog.rs集合并初始化大小:

    >use local
    
    >db.createCollection("oplog.rs",{"capped":true,"size":100000000})

    五、查询主节点replset.election集合的数据并将这些数据存储到192.168.1.4节点

    在PRIMARY上的操作:若没权限,添加权限:db.grantRolesToUser( "admin", [{ role: "read", db: "local"}])
    > use local
    
    > db.replset.election.find()
    { "_id" : ObjectId("60ab1a31c16378e2712acaf4"), "term" : NumberLong(1), "candidateIndex" : NumberLong(0) }

    在SECONDARY上保存PRIMARY上replset.election集合的数据内容:

    > use local
    
    > db.replset.election.save({ "_id" : ObjectId("60ab1a31c16378e2712acaf4"), "term" : NumberLong(1), "candidateIndex" : NumberLong(0) })

    六、关闭第三个从节点,以副本集方式启动mongodb:

    修改第三个从节点配置,注释去掉:
    
    auth = true
    
    replSet = repl_mongo
    
    keyFile = /data/mongo/27017/replSet.key
    
    以副本集方式启动mongodb:
    mongod -f  /data/mongo/27017/conf/mongodb.conf

    七、在PRIMARY上添加SECONDARY节点:若权限不够:db.grantRolesToUser ( "admin", [ { role: "__system", db: "admin" } ] )

    > rs.add("192.168.1.4:27017")
  • 相关阅读:
    WIN8 下 Hyper-V和Vmware Workstation
    小技巧总结
    工具软件
    php开发入门
    docker的用法总结
    [工具] 同步本地文件夹与VPS中的文件夹
    读书笔记之《The Art of Readable Code》Part 3
    读书笔记之《The Art of Readable Code》Part 2
    正则表达式小试牛刀
    读书笔记之《The Art of Readable Code》part 1
  • 原文地址:https://www.cnblogs.com/hankyoon/p/14814995.html
Copyright © 2011-2022 走看看