首页 > 数据库 >12.MongoDB系列之副本集管理

12.MongoDB系列之副本集管理

时间:2022-10-17 20:24:46浏览次数:64  
标签:12 rs MongoDB 同步 副本 复制 oplog config 节点

1. 控制成员状态
1.1 把主节点变为从节点
rs.stepDown()
1.2 阻止选举

如果需要对主节点维护,不想期间其他从节点选举为主节点,则可以

rs.freeze(10000)

维护完成后,只需要再次执行以下命令即可

rs.freeze(0)
2. 监控复制
2.1 获取状态
rs.status()
2.2 可视化复制图谱
> server1.adminCommand({replSetGetStatus:1})['syncingTo']
server0:27017

表示server0是server1的复制源。

MongoDB会根据ping的时间会选择同步源。MongoDB维护着心跳时间的滑动平均值,当其选择同步源的时候,它会查找离它最近并且数据比它新的成员。因此自动复制链不会出现复制循环的问题

自动复制链的缺点是:更多复制链意味着复制需要更长的时间,最差情况复制路径会变为一条线A->B->C,当然可以通过以下命令自定义同步源:

secondary.adminCommand({'replSetSyncFrom': 'server0:27017'})
2.3 复制循环

由2.2可知,自定义同步源可能出现复制循环的问题,所以需要rs.status()仔细检查

2.4 禁用复制链

链式复制是指一个从节点从另一个从节点(而不是主节点)进行同步,可以通过如下操作实现强制每个成员从主节点同步(如果主节点不可用,则会从从节点进行同步)

var config = rs.config()
config.settings = config.settings || {}
config.settings.chainingAllowed = false
re.reconfig(config)
2.5 计算延迟
// 给出了主节点oplog的简要信息,包括大小和操作的日期范围
rs.printReplicationInfo()
// 获取每个成员的syncedTo值及最后一条oplog写入每个从节点的时间
rs.printSalveReplicationInfo()
2.6 调整oplog大小
// 检查oplog的当前大小,已MB显示集合大小
> user local
> db.oplog.rs.stats(1024*1024).maxSize
// 更改oplog大小为16G
> db.adminCommand({replSetResizeOplog: 1, size: 16000})

一般情况下,不应减少oplog的大小,毕竟只是占用磁盘空间,并且可以防止复制末尾脱节问题。

欢迎关注公众号算法小生沈健的技术博客

标签:12,rs,MongoDB,同步,副本,复制,oplog,config,节点
From: https://www.cnblogs.com/shenjian-online/p/16800489.html

相关文章

  • 14.MongoDB系列之配置分片
    1.启动服务器1.1启动配置服务器配置服务器是集群的大脑,保存着关于每个服务器包含哪些数据的所有元数据,因此,必须首先创建配置服务器。由于资源限制,在同一机器上启动三......
  • 13.MongoDB系列之分片简介
    1.分片概念分片是指跨机器拆分数据的过程,有时也会用术语分区。MongoDB既可以手工分片,也支持自动分片2.理解集群组件分片的目标之一是由多个分片组成的集群对应用程序......
  • 17.MongoDB系列之了解应用程序动态
    1.查看当前操作mongos>db.currentOp(){"inprog":[{"shard":"study","type":"op......
  • 16.MongoDB系列之分片管理
    1.查看当前状态1.1查看配置信息mongos>useconfig//查看分片mongos>db.shards.find(){"_id":"study","host":"study/localhost:27018,localhost:27019,loc......
  • 15. MongoDB系列之选择片键
    1.片键类型1.1升序片键升序片键通常类似于date或ObjectId--随着时间稳步增长的字段。这种模式通常会使MongoDB更难保持块的平衡,因为所有的块都是由一个分片创建的。1......
  • Python爬虫之基于selenium实现12306模拟登录
    参考:https://blog.csdn.net/m0_54490473/article/details/122751814解决了个主要问题,滑块验证错误。文件由:vscode编写,浏览器驱动为EDGE.驱动下载地址:https://develop......
  • Educational Codeforces Round 112 D
    D.SayNotoPalindromes很牛逼我们手动模拟一下可以知道只有3个字母不构成回文串只有可能是这样的abcabc....acbacb.......6种情况所以直接暴力预处理即可#inclu......
  • 12_拷贝
    拷贝1.不可变类型和可变类型知识点:不可变类型:字符串,元组可变类型:列表,字典(它的value值),集合(除了可变类型都是不可变类型)2.浅拷贝和深拷贝知识点:......
  • 12-Go设计模式-观察模式
    观察模式样例代码/*观察者模式观察者模式是用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应作出反应。在观察者模式中,发生......
  • 《剑指offer》day12
    合并两个排序的链表题目描述思路双指针自己想的,就普通的双指针,结构化讨论对于第一个节点的确定,自己的思路没问题,提供一种其他思路,用一个伪头节点代码实现双指针......