0
点赞
收藏
分享

微信扫一扫

Mongodb5.x版本无法添加仲裁节点的问题

玉新行者 2022-06-28 阅读 100

问题现象

在Mongodb 5.x的版本中,如果要添加仲裁节点的话可能会遇到执行rs.addArb("host:ip")命令的时候卡主而导致无法添加仲裁节点的问题。先看现象

当前环境为:

DB01

Primary

192.168.202.203:27017

DB02

seconary

192.168.202.203:27018

现在需要将架构变成一个PSA的架构,添加一个DB03作为仲裁节点。在准备好DB03实例之后执行:

  rs0:PRIMARY> rs.addArb("vm002:27019")
<-----卡主
许久之后报错
errmsg” : “Reconfig attempted to install a config that would change the implicit default write concern. Use the setDefaultRWConcern command to set a cluster-wide write concern and try the reconfig again.”

解决方式

在遇到上述问题的时候,可以通过如下方式解决

db.adminCommand({
"setDefaultRWConcern" : 1,
"defaultWriteConcern" : {
"w" : "majority"
}
})

给mongodb配置一个默认writeConcern就可以解决,但是我们都知道一般情况下majority本来就是majority的默认关注,为什么非要这样做?

为什么这样

先看一下官方文档中对于默认写关注是怎样定义的:

Mongodb5.x版本无法添加仲裁节点的问题_mongodb

在官方文档中可以发现,默认的写关注并一定是majority(文档中还特别点名了具有arbiters的情况),而是会受到arbiter个数的影响。在添加了仲裁节点之后可能会导致默认写关注的改变,所以需要手工配置一下setDefaultRWConcern的内容。

在Mongodb的论坛中也提到了这一点

Mongodb5.x版本无法添加仲裁节点的问题_mongodb_02




举报

相关推荐

0 条评论