gpt4 book ai didi

mongos崩溃后无法重启问题的解决方法

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章mongos崩溃后无法重启问题的解决方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

前言 。

官方文档: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
2
3
4
5
6
7
8
9
use admin;
db.createRole({
  role: "query_keys" ,
  privileges : [
  { resource: { db: "admin" , collection: "system.keys" }, actions: [ "find" ] },
  ],
  roles: [ ]
});
db.grantRolesToUser( "ADMIN" , [ "query_keys" ])

config主节点重新选举后将产生新的过期时间,仍可通过上述脚本检查是否已刷新.

总结 。

到此这篇关于mongos崩溃后无法重启问题的解决方法的文章就介绍到这了,更多相关mongos崩溃后无法重启内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://mongoing.com/archives/77589 。

最后此篇关于mongos崩溃后无法重启问题的解决方法的文章就讲到这里了,如果你想了解更多关于mongos崩溃后无法重启问题的解决方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com