mongo复制集脑裂问题如何处理

mongo replication 脑裂问题如何处理:

**一、问题描述:**一套mongo replication有4个节点。1个仲裁节点。在停止实例(或实例毁坏)的时候,导致所有节点都变为SECONDARY节点。不管如何重启节点。或者停止到最后一个节点。此时mongo节点都是SECONDARY。

二、出现的现象:

1、如果此时所有节点都重新起来,mongo恢复正常。

2、如果有一个节点起不来。例如只有4个节点起来,mongo复制集的PRIMARY节点则在所有节点之间不稳定的轮流为主。(此时很难去执行rs.remove或rs.add命令)

3、如果4个数据节点有2-3个起不来。此时所有节点都保持为SECONDARY。

三、难点:那么如何恢复呢?

问题:抓不住PRIMARY节点,即所有节点都为SECONDARY节点。这时候无法执行rs.remove或rs.add命令rs.add, rs.addArb()。但是mongo的操作要求在主节点上执行。

可以通过rs.reconfig(config,{force:ture}) 强制在从节点删除或者增加节点。

四、解决方法:

注意:脑裂过程中设置优先级没用。

1、删除节点至剩下1个或者3个节点,保持3个节点存活(此时mongo能正常选举出PRIMARY 。 ):

config=rs.conf()

config.members=[config.members[0],config.members[2],config.members[3]]

rs.reconfig(config,{force:true})

(注意:"_id" : 4 并不是对应下标。members 对应的是数组的下标。从0开始。)

2、如果是删除至于剩下2个数据节点。切2个数据节点都是启动状态,此时PRIMARY已然会在2个节点之间飘浮。但2个节点还算可控,可以通过 rs.addArb("192.168.1.92:29121") 方式在主节点加入仲裁节点。

3、强制加入仲裁节点:

config=rs.conf()

config.members=[config.members[0],config.members[1]....(把所有需要加入的节点列出), {_id:5,host:"127.0.0.1:27023",priority:5,arbiterOnly:"true"}]

rs.reconfig(config,{force:true})

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

tidb集群某个节点报错之:node_exporter

今天启动集群tidb时出现一个错误,是某个tikv节点报错:node\_exporter9100.service failed一个节点的问题会导致整个集群启动失败。去此节点下的日志文件中查找,发现没有什么报错原因。无奈此时只能去系统日志中查看发生了什么问题果然发现了问题Jan1615:35:05ip1723126133

tidb损坏tikv节点怎么恢复集群

tikv节点宕机(机器再起不来),或者数据节点被rmrf 掉了怎么办正常情况下tikv节点down掉了。此时不要去执行store delete store\_id。数据一般可以正常访问,但是如果永久损坏的tikv节点。我们总想要把它移除。如何移除呢? (移除kv节点过程中,如果kv节点健康在线,可以实现动态移除。如果kv节点不可用,可能导致访

RAC环境单实例启动数据库收到ORA

     在RAC环境中,如果你在没有启动节点的集群服务的情况下单实例启动数据库,将收到类似如下的报错:\oracle@rhel1u01\$sqlSQL\Plus:Release10.2.0.5.0ProductiononTueApr215:00:272013Copyright(

mongo复制集脑裂问题如何处理 - HelloWorld