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

Modificar o conjunto de réplicas PSA com segurança

Nesta página

  • Visão geral
  • Procedimento

Ao reconfigurar conjuntos de réplicas de primary-secundária-árbitro (PSA) ou alterar para uma arquitetura PSA, você precisa ter um cuidado especial nos seguintes casos:

  • Você deseja reconfigurar um secundário em um conjunto de réplicas de três membros existente com uma arquitetura PSA para se tornar um nó votante portador de dados com uma prioridade diferente de zero.

  • Você deseja adicionar um novo nó portador de dados de votação com uma prioridade diferente de zero para um conjunto de réplicas de dois membros existente que contém um primário e um árbitro.

Aviso

Se a secundária que você está adicionando estiver atrasada e o conjunto de réplicas resultante for uma configuração PSA, a primeira alteração de configuração alterará o número de nós que precisam confirmar uma alteração com "majority". Nesse caso, seu ponto de confirmação ficará atrasado até que o secundário seja recuperado.

Este documento descreve o procedimento para reconfigurar seu conjunto de réplicas nesses casos específicos sem usar o método auxiliar designado rs.reconfigForPSASet().

Se você estiver realizando uma das operações anteriores, será necessário reconfigurar seu conjunto de réplicas em duas etapas:

  1. Reconfigure o conjunto de réplicas para adicionar ou modificar um secundário com { votes: 1, priority: 0 }.

  2. Depois que o secundário adicionado ou modificado tiver alcançado todas as gravações confirmadas, reconfigure o secundário para ter uma prioridade diferente de zero { votes: 1, priority: <num> }.

A abordagem de duas etapas evita a possibilidade de reverter as gravações confirmadas no caso de um failover para o novo secundário antes que o novo secundário tenha todas as gravações confirmadas do primário anterior.

Para executar o método rs.reconfigForPSASet() , você deve se conectar à primária do conjunto de réplicas.

1

Para evitar a reversão de gravações não confirmadas ao adicionar ou alterar um nó votante portador de dados, é necessário que você adicione o nó com { priority: 0 } primeiro.

No mongosh, modifique a configuração do conjunto de réplica. Para reconfigurar um conjunto de réplica existente, primeiro recupere a configuração atual com rs.conf(), modifique o documento de configuração conforme necessário e, em seguida, passe o documento modificado para rs.reconfig():

cfg = rs.conf();
cfg["members"] = [
{
// existing member or members
},
{
"_id" : <num>, // The array position of the new member in the
// ``members`` array.
"host" : <host>,
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 0,
"tags" : { <tags> },
"secondaryDelaySecs" : <num>,
"votes" : 1
},
{
// existing member or members
}
]
rs.reconfig(cfg);
2

Quando o secundário for recuperado, defina o primário para o número desejado. Antes que essa reconfiguração seja bem-sucedida, o secundário deve replicar todas as gravações que foram confirmadas quando tinha zero votos. Isto é verificado automaticamente quando você emite o comando rs.reconfig() .

cfg = rs.conf();
cfg["members"] = [
{
// existing member or members
},
{
"_id" : <num>, // The array position of the new member in the
// ``members`` array.
"host" : <host>,
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : <num>,
"tags" : { <tags> },
"secondaryDelaySecs" : <num>,
"votes" : 1
},
{
// existing member or members
}
]
rs.reconfig(cfg);

Voltar

Renomear um conjunto de réplicas

Próximo

Mitigue problemas de desempenho com o conjunto de réplicas PSA