MongoDB群集分片,没有主节点,只有一个辅助节点处于活动状态

问题描述 投票:0回答:1

我的MongoDB分片群集具有3个分片,每个分片在3个副本上运行。总结一下:

Config Server:
  shardcfg1.server.com:27018
  shardcfg2.server.com:27018
  shardcfg3.server.com:27018
Shard1:
  shard11.server.com:27000 (P)
  shard12.server.com:27000 (S)
  shard13.server.com:27000 (S)
Shard2:
  shard21.server.com:27000 (S)
  shard22.server.com:27000 (STARTUP)
  shard23.server.com:27000 (Unhealthy - invalidReplicaSetConfig: Our replica set configuration is invalid or does not include us)
Shard3:
  shard31.server.com:27000 (S)
  shard32.server.com:27000 (P)
  shard33.server.com:27000 (S)

如果您看到上面的状态,问题出在SHARD2

  • SHARD2中没有主要对象
  • 副本集配置如何将shard23.server.com标记为非成员

辅助shard21.server.com可用于获取转储,因此可能不会丢失数据。但是,对于如何再次稳定群集我一无所知。

我将如何从群集中完全删除SHARD2?或我应该如何再次使用相同的服务器重新初始化分片?

mongodb mongodb-replica-set mongodb-cluster mongodb-replica
1个回答
0
投票

我错过的一个小细节反过来成为解决方案的关键:集群由Mongo-MMS管理!

解决方案:

因此,我有一台辅助服务器,另一台服务器处于STARTUP模式,而第三台服务器却荒谬地宣布自己不属于副本集!整个群集由MMS管理。我确实关闭了所有三个服务器。现在,我只是简单地以独立模式启动了辅助数据库,以获取整个数据库的备份。

在此期间,我从群集中删除了该分片,由于该分片中没有主分片,因此排空卡住了。但是,发生了一件奇怪的事情,这些服务器上的自动化代理已被删除。备份完成后,我重新启动了辅助服务器mongod,该服务器上有数据。可悲的是,终端确实显示了SECONDARY,但是当我检查rs.status()时,它显示了三台服务器,我确实记得切断了其中一台恶意服务器。那就是让我震惊的MMS正在管理这些副本集的配置。

删除恶意服务器后,我迅速将Force标志配置为true。因此,现在我有两台服务器,一台位于辅助服务器,另一台处于启动模式。重新配置后几秒钟!瞧!中学将自己提升为小学。

经过漫长的战斗,但很高兴地说,不需要恢复备份或重新处理整个碎片!

© www.soinside.com 2019 - 2024. All rights reserved.