首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将隐藏的芒果节点提升到主节点?

如何将隐藏的芒果节点提升到主节点?
EN

Database Administration用户
提问于 2018-11-14 04:43:49
回答 2查看 1.6K关注 0票数 3

我们正在尝试为我们的mongodb复制集实现DR设置,目前DR中的三个节点被配置为作为隐藏节点运行。我们正在尝试测试到DR的故障转移,这将需要将隐藏节点分别提升到主节点和次要节点。实现这一目标的最佳途径是什么?

EN

回答 2

Database Administration用户

发布于 2018-11-14 05:12:53

我们正在尝试为我们的mongodb复制集实现DR设置,目前DR中的三个节点被配置为作为隐藏节点运行。

根据MongoDB文档,配置隐藏副本集成员隐藏成员是复制集的一部分,但不能成为主成员,客户端应用程序是不可见的。隐藏的成员可以在选举中投票。

隐藏节点最常见的用途是支持延迟成员。如果只需要防止成员成为主成员,请配置优先级为0的成员。

成员配置文档

若要将辅助成员配置为隐藏的,请将其members[n].priority值设置为0,并在其成员配置中将其members[n].hidden值设置为true:

代码语言:javascript
运行
复制
{
  "_id" : <num>
  "host" : <hostname:port>,
  "priority" : 0,
  "hidden" : true
}

配置过程

下面的示例隐藏当前位于成员数组中索引0的辅助成员。若要配置隐藏构件,请在连接到主节点的蒙戈外壳中使用以下操作序列,指定要通过成员数组中的数组索引配置成员:

代码语言:javascript
运行
复制
cfg = rs.conf()
cfg.members[0].priority = 0
cfg.members[0].hidden = true
rs.reconfig(cfg)

重新配置集合后,该辅助成员的优先级为0,因此它不能成为主成员,并且是隐藏的。集合中的其他成员不会在isMasterdb.isMaster()输出中公告隐藏成员。

我们正在尝试测试到DR的故障转移,这将需要将隐藏节点分别提升到主节点和次要节点。实现这一目标的最佳途径是什么?

备注警告:

  • rs.reconfig() shell方法可以强制当前primary to step down,这将导致选举。当主要步骤结束时,单神将关闭所有客户端连接。虽然这通常需要10-20秒,但尝试在计划的维护期间进行这些更改。
  • 避免重新配置包含不同MongoDB版本成员的副本集,因为MongoDB版本的验证规则可能有所不同。
票数 0
EN

Database Administration用户

发布于 2018-11-14 05:50:38

我能够通过使用下面的代码片段来实现它:

代码语言:javascript
运行
复制
import pymongo
client = pymongo.MongoClient() 
cfgDict = client.local.system.replset.find_one() 
for mem in cfgDict['members']: 
    if(mem.get('host') == "hidden-node-1:27017"): 
        mem['hidden'] = False 
        mem['priority'] = 20 #assign highest priority 
    elif(mem.get('host') == "hidden-node-2:27017"): 
        mem['hidden'] = False 
        mem['priority'] = 5 
    else:
       print("NO MATCH FOUND... NOTHING TO RECONFIGURE!")
try: 
    client.admin.command({'replSetReconfig': cfgDict}, force=True) 
except pymongo.errors.ConnectionFailure: 
    pass
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/222485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档