Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

Remover membros de um conjunto de réplicas autogerenciadas

Nesta página

  • Remover um Membro Usando rs.remove()
  • Remover um Membro Usando rs.reconfig()

Para remover um membro de um conjunto de réplicas, use um dos procedimentos a seguir.

  1. Encerre a instância mongod do nó que você deseja remover. Para desligar a instância, faça a conexão usando mongosh e use o método db.shutdownServer().

  2. 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.

  3. 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.

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 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.

  1. Encerre a instância mongod do nó que deseja remover. Para encerrar a instância, conecte-se usando o mongosh e use o método db.shutdownServer().

  2. 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.

  3. Emitir o método rs.conf() para visualizar o documento de configuração atual e determinar a posição na matriz members do membro a remover:

    Exemplo

    mongod_C.example.net está na posição 2 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"
    }
    ]
    }
  4. Atribuir o documento de configuração atual à variável cfg:

    cfg = rs.conf()
  5. 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)
  6. Substitua o documento de configuração do conjunto de réplica pela nova configuração, emitindo o seguinte:

    rs.reconfig(cfg)
  7. 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"
    }
    ]
    }

Voltar

Adicionar um arbiter