Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

movePrimary (comando de banco de dados)

movePrimary

In a sharded cluster, movePrimary reassigns the primary shard which holds all un-sharded collections in the database. movePrimary first changes the primary shard in the cluster metadata, and then migrates all un-sharded collections to the specified shard. Use the command with the following form:

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 is an administrative command that is only available for mongos instances.

Aviso

After starting movePrimary, do not perform any read or write operations against any unsharded collection in that database until the command completes. Read or write operations issued against those collections during the migration can result in unexpected behavior, including potential failure of the migration operation or loss of data.

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
  • 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 uses "majority" write concern for movePrimary.

movePrimary may require a significant time to complete depending on the size of the database and factors such as network health or machine resources. During migration, attempts to write or perform any DDL operations to the unsharded collections on the database being moved fail with the error: "movePrimary is in progress".

Consider scheduling a maintenance window during which applications stop all reads and writes to the cluster. Issuing movePrimary during planned downtime mitigates the risk of encountering undefined behavior due to interleaving reads or writes to the unsharded collections in the database.

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.