
Eu tenho um cluster mongoDB com 4 conjuntos de réplicas diferentes. Ultimamente 2 máquinas travaram de forma irrecuperável, os dados foram totalmente perdidos. Infelizmente, 1 conjunto de réplicas foi instalado nesses 2 hosts.
O problema que estou enfrentando é que a configuração ainda indica que alguns dados estão nesses hosts do conjunto de réplicas e quando o aplicativo cliente tenta ler as coleções que possuem pedaços nessas máquinas, ele retorna este erro:
Não foi possível encontrar o host correspondente à preferência de leitura {mode: "primary"} para o conjunto replicaSetShardServer4
O que faz sentido, já que esses 2 servidores desapareceram.
Então, eu queria encontrar uma maneira de remover esses servidores da configuração, mas todos os procedimentos que procuro mencionar para conectar-se ao nó primário do conjunto de réplicas e remover fragmentos que não posso fazer desde então, novamente, esses hosts desapareceram.
Responder1
Altere o arquivo de configuração e as linhas de comentários
replication:
replSetName: ...
Reinicie o serviço Mongo. Conecte-se ao nó e elimine o local
banco de dados.
db.getSiblingDB('local').dropDatabase()
Com isso, você reverte o ReplicaSet de volta para um MongoDB independente. Depois disso você configura o ReplicaSet novamente, veja:Converter um mongod autônomo em um conjunto de réplicas
Dê uma olhada tambémRestaurar um conjunto de réplicas de backups do MongoDB, o procedimento é o mesmo necessário no seu caso - exceto a primeira etapa, "Obter arquivos de backup do banco de dados MongoDB" - esta etapa não é necessária, é claro.