Renomear um conjunto de réplicas autogerenciado
Nesta página
Para renomear um conjunto de réplicas, você deve desligar todos os membros do conjunto de réplicas e, em seguida, configurar o banco de dados local
de cada membro com o novo nome do conjunto de réplica.
Este procedimento requer tempo de inatividade.
Pré-requisitos
Certifique-se de que seu conjunto de réplicas não esteja fragmentado. O procedimento de renomeação é somente para conjuntos de réplicas não fragmentadas.
Antes de renomear um conjunto de réplicas, faça um backup completo do MongoDB deployment.
Quando a autenticação estiver ativada, certifique-se de que sua função de usuário tenha privilégios
find
,insert
eremove
na coleçãosystem.replset
no banco de dadoslocal
de cada membro.Dica
Você pode visualizar os privilégios de uma função emitindo o comando
rolesInfo
com os camposshowPrivileges
eshowBuiltinRoles
configurados comotrue
.
Procedimento
Encerre os membros do conjunto de réplicas.
Siga o procedimento em Parar um conjunto de réplicas para confirmar que os membros do conjunto de réplicas estão desligados.
Aviso
Esta etapa exige tempo de inatividade, pois todos os membros da réplica precisarão ser desligados.
Renomeie o conjunto de réplicas.
Execute as seguintes etapas para cada nó do conjunto de réplicas:
Inicie o membro do conjunto de réplicas em uma porta diferente sem a opção
--replSet
.Atualize o nome do conjunto de réplicas.
Se utilizar um arquivo de configuração, defina o
replication.replSetName
para o novo nome.Se estiver usando o comando
mongod
inicialização com a opção--replSet
, anote o novo nome do conjunto de réplicas para uso na etapa f.
Conecte ao membro do conjunto de réplicas.
Atualize o nome do conjunto de réplicas no banco de dados local com os seguintes comandos:
/* Set `newId` to the new replica set name */ var newId = '<new replica set name>' var doc = db.getSiblingDB("local").system.replset.findOne() var oldId = doc._id doc._id = newId db.getSiblingDB("local").system.replset.insertOne(doc) db.getSiblingDB("local").system.replset.deleteOne({_id: oldId}) Desligue o membro do conjunto de réplicas.
Observação
Ops Manager
Se você estiver usando o MongoDB Ops Manager, deverá interromper o gerenciamento do conjunto de réplicas pelo MongoDB Ops Manager antes de encerrar o membro do conjunto de réplicas. Para obter mais informações sobre esse procedimento, consulte Remover um processo do Ops Management
Inicie o membro do conjunto de réplicas em sua porta original.
Se estiver usando um arquivo de configuração, certifique-se de que
replication.replSetName
esteja definido com o novo nome do conjunto de réplicas.Se utilizar o comando de inicialização do
mongod
com a opção--replSet
, passe o novo nome do conjunto de réplicas para a opção--replSet
.