Remover membros de um conjunto de réplicas autogerenciadas
Para remover um membro de um conjunto de réplicas, use um dos procedimentos a seguir.
Remover um Membro Usando rs.remove()
Encerre a instância
mongod
do nó que você deseja remover. Para desligar a instância, faça a conexão usandomongosh
e use o métododb.shutdownServer()
.Conecte ao primário atual do conjunto de réplicas. Para determinar a primária atual, utilize
db.hello()
enquanto estiver conectado a qualquer membro do conjunto de réplicas.Use
rs.remove()
em qualquer um dos seguintes formulários para remover o membro:rs.remove("mongod3.example.net:27017") rs.remove("mongod3.example.net") O MongoDB pode desconectar o shell brevemente se o conjunto de réplicas precisar eleger uma nova primária. Nesses casos, o shell se reconecta automaticamente. O shell pode exibir um erro
DBClientCursor::init call() failed
mesmo que o comando seja bem-sucedido.
Remover um Membro Usando rs.reconfig()
Você pode remover um membro reconfigurando o conjunto de réplicas usando um documento de configuração de réplica em que esse membro é removido da matriz members
.
rs.reconfig()
permite adicionar ou remover não mais do que 1
nóvoting
por vez. Para remover vários nós votantes do conjunto de réplicas, execute uma série de operações rs.reconfig()
para remover um nó por vez. Consulte a seção A reconfiguração pode adicionar ou remover no máximo um nó votante por vez para obter mais informações.
Procedimento
Encerre a instância
mongod
do nó que deseja remover. Para encerrar a instância, conecte-se usando omongosh
e use o métododb.shutdownServer()
.Conecte ao primário atual do conjunto de réplicas. Para determinar a primária atual, utilize
db.hello()
enquanto estiver conectado a qualquer membro do conjunto de réplicas.Emitir o método
rs.conf()
para visualizar o documento de configuração atual e determinar a posição na matrizmembers
do membro a remover:Exemplo
mongod_C.example.net
está na posição2
do seguinte arquivo de configuração:{ "_id" : "rs", "version" : 7, "members" : [ { "_id" : 0, "host" : "mongod_A.example.net:27017" }, { "_id" : 1, "host" : "mongod_B.example.net:27017" }, { "_id" : 2, "host" : "mongod_C.example.net:27017" } ] } Atribuir o documento de configuração atual à variável
cfg
:cfg = rs.conf() Modifique o objeto
cfg
para remover o membro.Exemplo
Para remover
mongod_C.example.net:27017
use a seguinte operação em JavaScript:cfg.members.splice(2,1) Substitua o documento de configuração do conjunto de réplica pela nova configuração, emitindo o seguinte:
rs.reconfig(cfg) Para confirmar a nova configuração, emita
rs.conf()
.Para o exemplo acima, a saída seria:
{ "_id" : "rs", "version" : 8, "members" : [ { "_id" : 0, "host" : "mongod_A.example.net:27017" }, { "_id" : 1, "host" : "mongod_B.example.net:27017" } ] }