我是靠谱客的博主 冷酷大米,最近开发中收集的这篇文章主要介绍Mongodb主从模式SECONDARY提升为PRIMARY,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

生产环境不建议仅使用PRIMARY-SECONDARY模式

当primary挂掉,并且无法恢复时,可以把secondary提升为主节点。

注意:此时从节点可能有部分数据未同步过来,部分数据可能丢失。

1、在secondary节点删除挂掉的primary节点

使用rs.conf查看当前配置

c = rs.conf()

输出内容:

{
"_id" : "rd_repl",
"version" : 133334,
"protocolVersion" : NumberLong(1),
"members" : [
{
"_id" : 1,
"host" : "10.0.0.1:2717",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 3,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 2,
"host" : "10.0.0.2:2717",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 4,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
}
],
"settings" : {
"chainingAllowed" : true,
"heartbeatIntervalMillis" : 2000,
"heartbeatTimeoutSecs" : 10,
"electionTimeoutMillis" : 10000,
"catchUpTimeoutMillis" : -1,
"catchUpTakeoverDelayMillis" : 30000,
"getLastErrorModes" : {
},
"getLastErrorDefaults" : {
"w" : 1,
"wtimeout" : 0
},
"replicaSetId" : ObjectId("5ba492935fb60fd88fcab516")
}
}

比如要删除members第一个节点:

{
"_id" : 1,
"host" : "10.0.0.1:2717",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 3,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
}

执行mongodb的命令:

c = rs.conf()
c.members.splice(0,1)
# splice的第一个参数表示要删除的数组元素的下标

2、重新配置mongo

rs.reconfig(c, {"force":true})
# c就是上面修改后的配置,加force参数是因为secondary默认没有执行此命令的权限

转载于:https://www.cnblogs.com/rabbix/p/9687929.html

最后

以上就是冷酷大米为你收集整理的Mongodb主从模式SECONDARY提升为PRIMARY的全部内容,希望文章能够帮你解决Mongodb主从模式SECONDARY提升为PRIMARY所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部