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

movePrimary

Nesta página

  • Compatibilidade
  • Considerações
  • Informações adicionais
movePrimary

Em umcluster fragmentado , movePrimary reatribui o fragmento primário que contém todas as coleções não fragmentadas no banco de banco de dados. movePrimary primeiro altera o fragmento primário nos metadados do cluster e, em seguida, migra todas as collections não fragmentadas para o shard especificado. Use o comando com o seguinte formulário:

db.adminCommand( { movePrimary: <databaseName>, to: <newPrimaryShard> } )

Por exemplo, o seguinte comando move o fragmento primário de test para shard0001:

db.adminCommand( { movePrimary : "test", to : "shard0001" } )

Quando o comando retorna, o local do fragmento primário do banco de dados mudou para o fragmento especificado. Para desativar totalmente um fragmento, use o comando removeShard .

movePrimary é um comando administrativo que está disponível somente para instâncias do mongos .

Aviso

Depois de iniciar o movePrimary, não execute nenhuma operação de leitura ou gravação em nenhuma coleção não fragmentada nesse banco de dados até que o comando seja concluído. As operações de leitura ou escrita emitidas para essas collections durante a migração podem resultar em comportamento inesperado, incluindo possível falha da operação de migração ou perda de dados.

Esse comando está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem

Importante

Este comando não é suportado em instâncias sem servidor. Para obter mais informações, consulte Comandos não suportados.

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

mongos usa "majority" preocupação de escrita para movePrimary.

movePrimary pode levar um tempo significativo para ser concluído, dependendo do tamanho do reconhecimento de data center e de fatores como integridade da rede ou recursos da máquina. As operações de leitura ou gravação emitidas no reconhecimento de data center durante a migração podem resultar em comportamento inesperado, incluindo possível falha da operação de migração ou perda de dados.

Considere agendar uma janela de manutenção durante a qual os aplicativos interrompam todas as leituras e gravações no cluster. A emissão movePrimary durante o tempo de inatividade planejado reduz o risco de encontrar um comportamento indefinido devido à intercalação de leituras ou gravações nas collections não fragmentadas no banco de dados.

movePrimary falhará se o fragmento de destino contiver um collection namespace conflitante. Por exemplo:

  1. Um administrador emite movePrimary para alterar o fragmento primário do reconhecimento de data center hr .

  2. Um usuário ou aplicação emite uma operação de gravação em uma collection não fragmentada em hr enquanto movePrimary está movendo essa collection. A operação de gravação cria a coleção no fragmento primário original.

  3. Um administrador emite posteriormente movePrimary para restaurar o fragmento primário original para o banco de dados hr .

  4. movePrimary falha devido ao namespace conflitante deixado para trás pela operação de gravação intercalada.

Como parte da operação movePrimary , o fragmento de destino deve reconstruir os índices nas coleções migradas depois de se tornar o fragmento primário. Isso pode exigir uma quantidade significativa de tempo, dependendo do número de índices por coleção e da quantidade de dados para indexar.

Consulte Construções de Índices em collection Preenchidas para obter mais informações sobre o processo de construção de índices.

Consulte Remover fragmentos de um cluster fragmentado existente para obter um procedimento completo.

Voltar

moveChunk