• 售前

  • 售后

热门帖子
入门百科

mongos瓦解后无法重启问题的办理方法

[复制链接]
却写杂布计 显示全部楼层 发表于 2021-8-14 15:22:27 |阅读模式 打印 上一主题 下一主题
前言

官方文档:https://docs.mongodb.com/manual/reference/program/mongos/#bin.mongos
mongos是MongoDB shard的缩写,它是一个为应用层提供查询哀求并决定数据在MongoDB分片中位置的路由服务。从应用层的角度来看,mongos的运动和一个MongoDB实例是没有区别的。
具体的设置参数,大概浏览一遍官方文档即可,必要用到的时候再去查就行了。
由于近期有差别用户先后碰到SERVER-52654,做一些说明:
影响版本


所有利用MongoDB 4.2.2+,并利用了分片的集群。
题目征象


从前次重启config节点,大概重新选举90或180天后,所有mongos会同时crash,而且无法重新启动。
题目缘故原由


该题目是由于config节点无法正常刷新签名密钥导致。正常情况下存在2个密钥,一个正在利用的,将在90天内逾期,一个即将利用的将在180天内逾期。SERVER-52654导致config无法正常刷新密钥,以是在现有密钥逾期后mongos将瓦解。
修复版本


该题目将在4.2.12修复。4.2.12目前已发布。
规避办法


在90天内将primary节点stepDown一次即可避免该题目发生。如果想知道签名密钥简直切逾期时间,可以连接到恣意config节点,并实行以下脚本:
  1. db.getSiblingDB("admin").system.keys.find().map(k => { return { _id: k._id, purpose: k.purpose, expiresAt: new Date(k.expiresAt.getTime()*1000) }})
复制代码
如果存在2个密钥(一个90天内逾期,一个180天内逾期),则临时不消操纵;如果只有1个密钥,则应该在90天内实行stepDown切换config主节点。
由于system.keys聚集必要特殊权限方可访问,如果碰到权限题目,大概必要以下脚本来创建须要的角色(将ADMIN更换为您利用的用户):
  1. use admin;
  2. db.createRole({
  3. role: "query_keys",
  4. privileges: [
  5. { resource: { db: "admin", collection: "system.keys"}, actions: [ "find" ] },
  6. ],
  7. roles: [ ]
  8. });
  9. db.grantRolesToUser("ADMIN", ["query_keys"])
复制代码
config主节点重新选举后将产生新的逾期时间,仍可通过上述脚本查抄是否已刷新。
总结

到此这篇关于mongos瓦解后无法重启题目的办理方法的文章就介绍到这了,更多相干mongos瓦解后无法重启内容请搜索脚本之家以前的文章或继续浏览下面的相干文章希望各人以后多多支持脚本之家!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作