zoukankan      html  css  js  c++  java
  • MongoDB学习笔记——Master/Slave主从复制

    Master/Slave主从复制

    主从复制MongoDB中比较常用的一种方式,如果要实现主从复制至少应该有两个MongoDB实例,一个作为主节点负责客户端请求,另一个作为从节点负责从主节点映射数据,提供数据备份,客户端读取等,推荐一主多从模式

    MongoDB主从复制的实现方式:

    • 主节点的操作会被记录为oplog,存储在系统数据库local的集合oplog.$main中,这个集合中的每个文档都代表主节点的一个操作(不包括查询)
    • 从节点定期从主服务器获取oplog数据,并在本机进行执行
    • oplog使用的是固定集合,随着操作的逐渐增加,新的文档会逐渐覆盖旧的文档

    MongoDB使用注意点或缺点:

    • 每个从节点必须知晓其对应的主节点地址
    • 只允许主节点进行数据更新操作
    • 主节点宕机服务不可用
    • 3.2版本以后已经移除

    Mongodb主从复制配置项详解:

    • master:默认为false,当设置为true,则配置当前实例作为主节点。
    • slave:默认为false,当设置为true,则配置当前实例作为从节点。
    • source:默认为空,用于从节点,指定从节点的复制来源(主节点的IP+端口),格式为:<host><:port>
    • only:默认为空,用于从节点,主动复制默认复制主节点上所有的数据库,通过设置此项指定需要复制的数据库名称
    • slavedelay:设置从库同步主库的延迟时间,用于从设置,默认为0,单位秒。
    • autoresync:默认为false,用于从设置。是否自动重新同步。设置为true,如果落后主超过10秒,会强制从自动重新同步。如果oplogSize太小,此设置可能有问题。如果OPLOG大小不足以存储主的变化状态和从的状态变化之间的差异,这种情况下强制重新同步是不必要的。当设置autoresync选项设置为false10分钟内从不会进行大于1次的自动重新同步。

    主从配置实例(一主一从)

    主节点 master.conf

    dbpath=D:mongodbzhucongmasterdata

    logpath=D:mongodbzhucongmasterlogsmongodb.log

    port=27017

    bind_ip=127.0.0.1

    master=true

    从节点配置

    dbpath=D:mongodbzhucongslavedata

    logpath=D:mongodbzhucongslavelogsmongodb.log

    port=27018

    bind_ip=127.0.0.1

    master=true

    slave=true

    source=127.0.0.1:27017

    分别启动两个MongoDB实例

    mongod --config D:mongodbzhucongmastermaster.conf

    mongod --config D:mongodbzhucongslaveslave.conf

    使用 Robomongo 客户端分别连接上两个MongoDB实例

    在主库上创建数据库 masterslavetest 并创建一些测试数据

    use masterslavetest

    for (i = 5000; i < 100000; i++) {

    db.users.insert({

    "i": i,

    "userName": "user" + i,

    "age": Math.floor(Math.random() * 120),

    "created": new Date(),

    total: Math.floor(Math.random() * 100) * i

    })

    }

    在两个实例上分别执行 以下命令 可以看到在两个数据库上的数据保持一致,这时在主数据库上执行CRUD等操作时,从库数据依然与主库一致

    db.users.find({})

    两条指令

    db.printReplicationInfo(): //查看主节点的信息

    db.printSlaveReplicationInfo(): //查看从节点的信息

  • 相关阅读:
    第十一周课堂测试 -- 四则运算
    软件工程第十一周学习进度
    软件工程课堂测试2
    软件工程概论_课堂测试
    11.16 动手动脑
    动手动脑
    网络模型分析
    Actor模型原理
    linux下启动oracle
    Linux 环境下Oracle11g安装图文详细教程
  • 原文地址:https://www.cnblogs.com/AlvinLee/p/6092560.html
Copyright © 2011-2022 走看看