概念

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. 03:linux文件操作四剑客

    1.1 find查找命令 1.find命令说明 1. Linux find命令用来在指定目录下查找文件. 2. 任何位于参数之前的字符串都将被视为欲查找的目录名. 3. 如果使用该命令时,不设置任何参 ...

  2. Django 模版语法与使用

    目录 Django 模版语法与使用 django模板语言介绍 (摘自官方文档) 链接 什么是模板? 模板语句的 注释 变量 {{ 变量 }} 点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值 ...

  3. Jconsole与Jmx 分析JVM状况(上) 转

    出处:Jconsole与Jmx 分析JVM状况(上) JVM 平台提供 Mbeans 说明 在 Java 2 平台 5.0 以上版本,有一组 API 可以让 Java 应用程序和允许的工具监视和管理  ...

  4. leetcode hard

    # Title Solution Acceptance Difficulty Frequency     4 Median of Two Sorted Arrays       27.2% Hard ...

  5. 在CentOS 7系统下升级 Jenkins版本

    使用yum方式安装的war文件路径:/usr/lib/jenkins/jenkins.war 查看war包所在的目录 find / -name jenkins.war 停止Jenkins 服务 sys ...

  6. hdu 6399 City Development

    vjudge 读进来可能会有相同的\(n_i\),不过在相同的\(n_i\)中只有最后一个是有用的,所以其他的要缩起来,缩完后这些\(n\)的数量不会超过19个 可以发现一个城市的答案为所有城市初始权 ...

  7. 部署Dashboard,监控应用

    部署web UI(dashboard)用于监控node资源 参见文档:https://blog.csdn.net/networken/article/details/85607593 官网:https ...

  8. 02 前端之css

    ---恢复内容开始--- 1.css的几种引入方式: 1.行内样式 (行内式是在标记的style属性中设定的css样式.不推荐大规模使用) <p style="color: red&q ...

  9. LLVM4.0与3.5编译phase对比

    说是LLVM4.0和3.5的对比,其实是Clang的4和3.5的对比.在调试Clang编译源码的过程中,发现-S选项在4.0和3.5中的处理不一样,后来使用命令验证了这个事情 jourluohua@j ...

  10. 让虚拟机中的MySQL可以被主机访问

    1.VirtualBox对Ubuntu系统进行设置,“网络”选择“桥接网卡” 2.安装MYSQL服务器 sudo su;   apt-get intall mysql-server 3.赋予远程访问的 ...