【问题标题】:MongoS sharding metadata manager failed asking for instance is manually resetMongoS 分片元数据管理器失败,要求手动重置实例
【发布时间】:2016-08-27 05:50:40
【问题描述】:

我的 MongoS 服务器没有盯着他们在日志中发送此错误。

SHARDING [Balancer] 在进行平衡时发现异常:服务器的 分片元数据管理器初始化失败,将保留在 此状态直到实例被手动重置 :: 由 :: 引起 HostNotFound:无法解析主机 confserv_1.xyz.com 的 DNS

2016-05-02T17:57:06.612+0530 I SHARDING [Balancer] about to log metadata event into actionlog: { _id: "DB2255-2016-05-02T17:57:06.611+0530-5727479aa1051c5fb04fcc49", server: "mongoS1", clientAddr: "", time: new Date(1462192026611), what: "balancer.round", ns: "", details: { executionTimeMillis: 35, errorOccured: true, errmsg: "Server's sharding metadata manager failed to initialize and will remain in this state until the instance is manually reset :: caused by :: HostNotFoun..." } }  

当我使用主机名连接配置服务器时,它工作正常。
我尝试重新启动 MongoS 服务器,但它没有启动。

我检查了Mongo代码,发现
https://github.com/mongodb/mongo/blob/master/src/mongo/db/s/sharding_state.cpp中提到的这个错误

/ TODO: remove after v3.4.
// This is for backwards compatibility with old style initialization through metadata
// commands/setShardVersion. As well as all assignments to _initializationStatus and
// _setInitializationState_inlock in this method.
if (_getInitializationState() == InitializationState::kInitializing) {
    auto waitStatus = _waitForInitialization_inlock(deadline, lk);
    if (!waitStatus.isOK()) {
        return waitStatus;
    }
}

if (_getInitializationState() == InitializationState::kError) {
    return {ErrorCodes::ManualInterventionRequired,
            str::stream() << "Server's sharding metadata manager failed to initialize and will "
                             "remain in this state until the instance is manually reset"
                          << causedBy(_initializationStatus)};
}  

但它没有提到任何需要手动干预的内容。 当前 Mongo 版本是 3.2.6

【问题讨论】:

  • “无法解析 DNS”听起来像是一个管理问题。解决方案包括pingtraceroutenmap 之类的,看起来很OT。
  • 尝试从 mongos 实例连接到配置服务器。可能是配置服务器端口未打开。
  • 我检查过有一次连接丢失了,之后又恢复了,但 MongoS 没有恢复。我们重新启动了 MongoS 服务器并停止重新启动平衡器,但没有任何效果。
  • 正如我之前提到的,我尝试从 MongoS 连接配置服务器并且它正在工作,但它一直要求手动重启。

标签: mongodb sharding


【解决方案1】:

我在尝试加强安全配置时遇到了这个问题。与您的情况一样,我能够从所有 mongos 实例连接到配置服务器。

在我的案例中,我还测试了一个副本集成员位于不同数据中心的案例,我只是在降低了一些初选后才遇到问题。

最后我注意到,并非错误消息所假装的那样,问题发生在一个数据中心的某些主节点上,这些主节点无法路由回配置服务器。修复路由问题(最终是/etc/hosts)后,mongo端不再出现问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    相关资源
    最近更新 更多