概念

rs中存储了每一次对mongo数据库的CUD操作,对rs的大小进行resize.

主要有两种方法:

  1. 在未开启过rs的情况下,修改配置文件
  2. 已使用rs一段时间后,发现rs太大,重新进行大小配置

启动

默认启动

mongod --port 27010 --dbpath /data/mongodb

配置文件启动

mongod --port 27010 --config /etc/mongodb_xng.conf
# 配置文件中配置了dbPath和日志等信息

rs启动

mongod --port 27010 --config /etc/mongodb_xng.conf --replSet rs

修改配置文件

vim /etc/mongodbXXX.conf
oplogSize = 500 # 以M为单位

修改opLog大小

修改的过程主要分为三步:

  • 以单机模式重启mongod
  • 启动之后,重新创建oplog,并保留最后一个记录作为种子
  • 以复制集方式重启mongod

详细过程是:

step1:以单机模式重启mongod

对于Primary成员,首先调用stepDown函数,强制Primary成员转变为Secondary成员

rs.stepDown() # 如果没有Secondary,可以忽略此步骤

对于secondary成员,调用shutdownServer()函数,关闭mongod

use admin
db.shutdownServer()

启动mongod实例,不要使用replset参数

mongod --port 27010 --config /etc/mongodb_xng.conf

step2:创建新的oplog

有备无患,备份oplog文件

mongodump --db local --collection 'oplog.rs' --port 27010  # 会把数据导出到当前目录下的dump文件夹下,需要注意存储资源

将oplog中最后一条有效记录保存到temp 集合中,作为新oplog的seed

use local

db.temp.save( db.oplog.rs.find( { }, { ts: 1, h: 1 } ).sort( {$natural : -1} ).limit(1).next() )

db.oplog.rs.drop()

重建新的oplog集合,并将temp集合中一条记录保存到oplog中,size的单位是Byte

db.runCommand( { create: "oplog.rs", capped: true, size: (2 * 1024 * 1024 * 1024) } )
db.oplog.rs.save( db.temp.findOne() )

step3:以复制集模式启动 mongod,replset参数必须制定正确的Replica Set的名字

db.shutdownServer()
mongod --port 27010 --config /etc/mongodb_xng.conf --replSet rs

Mongo rs的更多相关文章

  1. mongo 复制集命令

    1.登录primary2.use admin >rs.add("new_node:port") 或 rs.add({"_id":4,"host& ...

  2. 用elasticsearch索引mongodb数据

    参照网页:单机搭建elasticsearch和mongodb的river 三个步骤: 一,搭建单机replicSet二,安装mongodb-river插件三,创建meta,验证使用 第一步,搭建单机m ...

  3. mongodb副本集搭建

    1.创建目录 mkdir -p /data/r1  /data/r2  /data/r3 2.启动: bin/mongod --config ../mongod.conf --replSet r1 b ...

  4. solr搜索引擎配置使用mongodb作为数据源

    环境说明: 操作系统:由于是使用的docker直接拉取的镜像部署的,系统是LINUX环境 mongodb: 4.0.3 solr: 7.5.0 python: 3.5 配置mongodb 1.拉取mo ...

  5. Mongodb主从模式SECONDARY提升为PRIMARY

    生产环境不建议仅使用PRIMARY-SECONDARY模式 当primary挂掉,并且无法恢复时,可以把secondary提升为主节点. 注意:此时从节点可能有部分数据未同步过来,部分数据可能丢失. ...

  6. mongodb之 复制集维护小结

    原文地址:https://www.cnblogs.com/zhaowenzhong/p/5667312.html 一.新增副本集成员 1.登录primary 2.use admin >rs.ad ...

  7. 在Docker中安装和部署MongoDB集群

    此文已由作者袁欢授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在Docker中安装mongodb 采用的mongodb镜像:https://registry.hub.doc ...

  8. kubernetes上安装MongoDB-3.6.5集群副本集方式

    一.安装部署: 想直接一步创建集群的小伙伴直接按以下步骤安装(再往后是记录自己出过的错): 1.生成docker镜像: docker build -t 144.202.127.156/library/ ...

  9. MongoDB复制二:复制集的管理

    1.修改oplog的大小  需要在每个机器上都配置.先在secondary上操作,最后在primary上操作. 1)以单机的方式重启复制集的实例 db.shutdownServer() 在新的端口中启 ...

随机推荐

  1. java检测是不是移动端访问

    request可以用别的代替 private static boolean isMobile(){ HttpServletRequest request = ThreadContextHolder.g ...

  2. golang(6): 接口 & 反射

    接口详解 // 举例:sort包中的 Sort 函数,如下: func Sort(data Interface) Sort sorts data. It makes one call to data. ...

  3. debezium关于cdc的使用(下)

    博文原址:debezium关于cdc的使用(下) 简介 debezium在debezium关于cdc的使用(上)中有做介绍.具体可以跳到上文查看.本篇主要讲述使用kafka connector方式来同 ...

  4. css折叠表格

    1.html <div class="custom-fold-table"> <table cellpadding="0" cellspaci ...

  5. 浏览器行为:Form表单提交

    1.form表单常用属性 1 2 3 4 action:url 地址,服务器接收表单数据的地址 method:提交服务器的http方法,一般为post和get name:最好好吃name属性的唯一性 ...

  6. vue中,svg图标添加click事件,部分浏览器不生效

    vue项目中,使用svg图标,但是发现,为svg图标绑定click事件时,部分浏览器会出现,点击没有反应的情况,代码如下: <icon name="icon_add" @cl ...

  7. 使用Mybatis Generator自动生成代码

    MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代码生成器.它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码.它将内省数据库 ...

  8. shell脚本中的一些特殊符号

    在shell中常用的特殊符号罗列如下:  # ;   ;; . , / \\ 'string'| !   $   ${}   $? $$   $*  \"string\"* **  ...

  9. python、mysql三-3:完整性约束

    一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY ...

  10. strings、strconv:让你高效的处理字符串

    strings包 strings.HasPrefix(s, prefix string) bool 判断字符串s是否以prefix开头.类似于python中的startswith. package m ...