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,inserteremovena coleçãosystem.replsetno banco de dadoslocalde cada membro.Dica
Você pode visualizar os privilégios de uma função emitindo o comando
rolesInfocom os camposshowPrivilegeseshowBuiltinRolesconfigurados 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.replSetNamepara o novo nome.Se estiver usando o comando
mongodinicializaçã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.replSetNameesteja definido com o novo nome do conjunto de réplicas.Se utilizar o comando de inicialização do
mongodcom a opção--replSet, passe o novo nome do conjunto de réplicas para a opção--replSet.