Mongo rs
概念
rs中存储了每一次对mongo数据库的CUD操作,对rs的大小进行resize.
主要有两种方法:
- 在未开启过rs的情况下,修改配置文件
- 已使用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的更多相关文章
- mongo 复制集命令
1.登录primary2.use admin >rs.add("new_node:port") 或 rs.add({"_id":4,"host& ...
- 用elasticsearch索引mongodb数据
参照网页:单机搭建elasticsearch和mongodb的river 三个步骤: 一,搭建单机replicSet二,安装mongodb-river插件三,创建meta,验证使用 第一步,搭建单机m ...
- mongodb副本集搭建
1.创建目录 mkdir -p /data/r1 /data/r2 /data/r3 2.启动: bin/mongod --config ../mongod.conf --replSet r1 b ...
- solr搜索引擎配置使用mongodb作为数据源
环境说明: 操作系统:由于是使用的docker直接拉取的镜像部署的,系统是LINUX环境 mongodb: 4.0.3 solr: 7.5.0 python: 3.5 配置mongodb 1.拉取mo ...
- Mongodb主从模式SECONDARY提升为PRIMARY
生产环境不建议仅使用PRIMARY-SECONDARY模式 当primary挂掉,并且无法恢复时,可以把secondary提升为主节点. 注意:此时从节点可能有部分数据未同步过来,部分数据可能丢失. ...
- mongodb之 复制集维护小结
原文地址:https://www.cnblogs.com/zhaowenzhong/p/5667312.html 一.新增副本集成员 1.登录primary 2.use admin >rs.ad ...
- 在Docker中安装和部署MongoDB集群
此文已由作者袁欢授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在Docker中安装mongodb 采用的mongodb镜像:https://registry.hub.doc ...
- kubernetes上安装MongoDB-3.6.5集群副本集方式
一.安装部署: 想直接一步创建集群的小伙伴直接按以下步骤安装(再往后是记录自己出过的错): 1.生成docker镜像: docker build -t 144.202.127.156/library/ ...
- MongoDB复制二:复制集的管理
1.修改oplog的大小 需要在每个机器上都配置.先在secondary上操作,最后在primary上操作. 1)以单机的方式重启复制集的实例 db.shutdownServer() 在新的端口中启 ...
随机推荐
- c语言:<tchar.h>
头文件“<tchar.h>”作用就是为了进行ASCII码和UNICODE(wide-character)码的头文件(该头文件由微软提供): 这样我们就可以使用TCHAR.H头文件中的定义的 ...
- selenium与页面交互
selenium提供了许多API方法与页面进行交互,如点击.键盘输入.打开关闭网页.输入文字等. 一.webdriver对浏览器提供了很多属性来对浏览器进行操作,常用的如图: get(url).qui ...
- Linux(17):Shell编程(4)
案例1:批量生成随机字 符 文件名案例 使用for 循环在 /neo 目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串 neo创建的结果名称示例 如下: [root ...
- 常用Java字段的正则校验
正则表达式: 单个字符的匹配规则如下: 多个字符的匹配规则如下: 复杂匹配规则主要有: 常用正则表达式校验规则: 一.校验数字的表达式 1.数字:^[0-9]*$ 2.n位的数字:^\d{n}$ 3. ...
- 三、redis学习(jedis连接池)
一.jedis连接池 二.jedis连接池+config配置文件 三.jedis连接池+config配置文件+util工具类 util类 public class JedisPoolUtils { / ...
- 如何去除List集合中的重复元素? a,b,c,a,c,b,d,,,,,,
package com.fs.test; import java.util.ArrayList; import java.util.List; public class Listdemo { publ ...
- ArcGis之popup列表字段自定义
ArcGis之popup列表字段自定义 featureLayer图层中可以使用popupTemplate属性添加弹窗. API:https://developers.arcgis.com/javasc ...
- 本人亲测-C#常用工具类
/* * HTTP接口工具类 */ public class HttpUitls { /* * get请求 */ public static string Get(string Url) { //Sy ...
- Vue之动态class写法总结
对象方法 最简单的绑定 :class="{ 'active': isActive }" 判断是否绑定一个active :class="{'active':isActive ...
- window.location.href 与 window.location.href 的区别