一 简介:来试试更改副本集的oplog问题
二 背景: oplog的作用类似于mysql的binlog,传递增量操作到从节点

三 oplog介绍
   1 oplog在local库:
      1 master/slave 架构下
         local.oplog.$main;
      2 replica sets 架构下:
        local.oplog.rs
      3 sharding 架构下,
        mongos下不能查看oplog,可到每一片去看。
   2 oplog属性

capped collection 当写满后会进行覆盖写入

   3 oplog大小
    1 在默认情况下,oplog分配的是5%的空闲磁盘空间

四 问题: 当主库的操作量积累超过oplog时,就会覆盖oplog,这时候从节点无法获取之前的oplog就会发生全量传输,是不行的
五 常见场景:
       1 并发量非常高的DML操作,导致oplog被很快应用覆盖,从库无法追上
       2 新加入从节点全量同步的时间远远高于oplog被使用的时间,从库无法追上
六 常用命令:
       db.printReplicationInfo()查看oplog大小和使用情况
         oplog first event time: 最早切换时间
         oplog end event time: 最新时间
七 方法1:
    一 先更改从节点的oplog
        1 配置文件去掉shard相关参数 重启应用,以单机模式运行
        2 创建新的oplog应用
           # 存储oplog数据
          use local
          db.temp.save( db.oplog.rs.find( { }, { ts: 1, h: 1 } ).sort( {$natural : -1} ).limit(1).next() )
          db.temp.find()
          #删除旧的oplog
          db.oplog.rs.drop()
         #创建新的Oplog
        db.runCommand( { create: "oplog.rs", capped: true, size: (2 * 1024 * 1024 * 1024) } ) 这里2代为2G
        # 插入前面保存的旧的oplog的时间点的记录
       db.oplog.rs.save( db.temp.findOne() )
       db.oplog.find()
     3 将从节点从新加入主节点
  二 调整集群成员,将从变成主,主变成从
      1)PRIMARY> config=rs.conf()
      2)PRIMARY>config.members[3].priority = 3
      3)PRIMARY> rs.reconfig(config)
 三 继续调整从节点的oplog 
 四 调整完成

八 方法2

1 停止mongo进程并 删除所有数据目录

2 启动文件添加

oplogSize = N  单位M

3 启动进程进行全量同步

4 查看可发现oplog已经改变

mongodb 系列 ~ mongo的副本集(2)的更多相关文章

  1. mongodb 系列 ~ mongo的副本集(3)

    一 简介:今天咱们来聊聊mongodb复制的具体一些案例 二 副本集 1 当mongodb采用全量复制时,如何观察全量复制的进度 对比文件本身和primary大小 2 mongodb全量复制的过程 旧 ...

  2. 8.MongoDB系列之创建副本集(一)

    1. 复制简介 在MongoDB中,创建副本集后就可以使用复制功能了,副本集是一组服务器,其中一个是用于处理写操作的主节点,还有多个用于保存主节点的数据副本的从节点,如果主节点崩溃了,则从节点会从中选 ...

  3. MongoDB系列之三(副本集配置)

    今天我测试了一下MongoDB的副本集的配置. 首先从概念上说一下MongoDB副本集和主从复制的区别.其实副本集(Replica Set)是主从复制的高级形式.高级在哪里呢?主动复制实现了数据备份+ ...

  4. 11.MongoDB系列之连接副本集

    1. Python连接副本集 from pymongo import MongoClient from bson.codec_options import CodecOptions from retr ...

  5. 9.MongoDB系列之创建副本集(二)

    1. 如何设计副本集 大多数:选取主节点时需要由大多数决定,主节点只有在得到大多数支持时才能继续作为主节点,写操作被复制到大多数成员时就是安全的写操作.这里的大多数定义为"副本集中一半以上的 ...

  6. MongoDB 带访问控制的副本集部署

    当你需要用到一个MongoDB 副本集集群,用于开发测试时, 可以通过下面的步骤简单完成. 版本及环境 MongoDB4.4  Centos6.5  一. 下载安装 MongoDB Server 及 ...

  7. MongoDB 删除,添加副本集,并修改副本集IP等信息

    MongoDB 删除,添加副本集,并修改副本集IP等信息 添加副本,在登录到主节点下输入 rs.add("ip:port"); 删除副本 rs.remove("ip:po ...

  8. MongoDB副本集配置系列三:副本集的认证方式

    1:副本集配置参考这篇博客: http://www.cnblogs.com/xiaoit/p/4478951.html 2:副本集的认证 假设有两台机器已经配置好了副本集(副本集罪一般最少3台机器,这 ...

  9. MongoDB副本集配置系列五:副本集的在线迁移

    MongoDB副本集的在线迁移 查看当前集群的状态: { "setName" : "gechongrepl", "setVersion" : ...

随机推荐

  1. Java实现二叉树的前序、中序、后序、层序遍历(递归方法)

      在数据结构中,二叉树是树中我们见得最多的,二叉查找树可以加速我们查找的效率,那么输出一个二叉树也变得尤为重要了.   二叉树的遍历方法分为四种,分别为前序遍历.中序遍历.后序.层序遍历.下图即为一 ...

  2. echarts柱状图 渐变色

    效果图:  var xAxisData = []; var data = []; for (var i = 9; i < 16; i++) { xAxisData.push('5月' + i + ...

  3. php+mysql简单的添加和删除小案例

    1.分析 index.php是呈现列表,通过点击列表页上的添加和删除按钮,对列表页上面的进行操作 index.php TODO:要将数据库里面的内容呈现到页面中 (1)连接数据库 (2)查询数据 (3 ...

  4. window下域名解析系统DNS诊断命令nslookup详解

    Ping指令我们很熟悉了,它是一个检查网络状况的命令,在输入的参数是域名的情况下会通过DNS进行查询,但只能查询A记录和CNAME(别名)记录,还会返回域名是否存在,其他的信息都是没有的.如果你需要对 ...

  5. C++ vector的运用

    C++ vector 用法(#include <vector>) 标准库Vector类型 使用需要的头文件: #include <vector> Vector:Vector 是 ...

  6. day09-(servlet)

    回顾: xml: 可扩展的标签语言 标签可以自定义 作用:配置文件 xml组成: 声明 首行顶格写 元素 <xxx></xxx> <xx/> 属性 <xxx ...

  7. 从LIst集合中安全的删除元素

    package cn.rocker.list; import java.util.ArrayList; import java.util.Iterator; import java.util.List ...

  8. MyBatis-DynamicSQL 动态SQL

    MyBatis 的动态 SQL 使用 OGNL 表达式 http://commons.apache.org/proper/commons-ognl/language-guide.html 在 XML ...

  9. 设计模式---接口隔离模式之中介者模式(Mediator)

    一:概念 在Mediator模式中,类之间的交互行为被统一放在Mediator的对象中,对象通过Mediator对象同其他对象交互.Mediator对象起到控制器的作用 二:动机 在软件构建的过程中, ...

  10. css 动画【转】

    css 动画 http://www.w3school.com.cn/css3/css3_animation.asp