Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Menu Docs
Página inicial do Docs
/ /

startShardDraining (comando de banco de dados)

startShardDraining

Inicia o processo de drenagem de partes de um fragmento para prepará-lo para a remoção de um cluster.

Quando o comando é executado, ele informa ao balanceador que você deseja drenar o fragmento fornecido. De forma assíncrona, o balanceador então começa a mover partes do fragmento para outros fragmentos no cluster. Quando o balanceador conclui este processo, o fragmento não contém dados e pode ser removido com segurança do cluster.

Observação

O balanceador deve estar habilitado para startShardDraining mover partes para fora do fragmento. Se o balanceador estiver desativado, nenhum bloco será migrado e shardDrainingStatus continuará relatando o trabalho restante no fragmento.

O comando retorna um erro se o fragmento não existir, caso contrário, ele retorna ok.

Para verificar o status de um fragmento de drenagem, use o comando shardDrainingStatus.

Para parar de drenar um fragmento, consulte o comando stopShardDraining.

Para remover um fragmento drenado, consulte o comando commitShardRemoval.

Novidades na versão 8.3.

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

  • 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

Observação

Este comando não é suportado no MongoDB Atlas. Consulte Modificar seu Atlas Cluster Sharded para adicionar ou remover shards do seu Atlas cluster.

O comando tem a seguinte sintaxe:

db.adminCommand( {
startShardDraining: <shardToDrain>
} )

Se você tiver authorization habilitado, deverá ter a função clusterManager ou qualquer função que inclua a ação removeShard .

Não é possível fazer backup do cluster durante a drenagem do fragmento.

Você pode ter mais de uma operação de drenagem de fragmentos em andamento ao mesmo tempo.

Cada banco de dados em um cluster fragmentado tem um fragmento primário. Se o fragmento que você deseja drenar também for o primário de um dos bancos de dados do cluster, você deverá mover manualmente os bancos de dados para um novo fragmento depois de migrar todos os dados do fragmento. Consulte o comando movePrimary e Remover fragmentos de um cluster fragmentado para obter mais informações.

As coleções não fragmentadas são armazenadas em fragmentos individuais. Se uma dessas coleções estiver no fragmento que você deseja remover, primeiro você deverá migrar a coleção para um fragmento diferente.

Para migrar uma collection não fragmentada, consulte o comando moveCollection.

Quando você drena um fragmento em um cluster com uma distribuição desigual de partes, o balanceador primeiro remove as partes do fragmento de drenagem e, em seguida, equilibra a distribuição desigual de partes restante.

Dica

mongos converte a write concern do comando startShardDraining para "majority".

A drenagem de um fragmento pode fazer com que um cursor de fluxo de alteração aberto feche e o cursor de fluxo de alteração fechado pode não ser totalmente retomável.

Se você executar startShardDraining enquanto o cluster estiver executando uma operação DDL (operação que modifica uma collection como reshardCollection), a drenagem de shards só será executada após a conclusão da operação DDL simultânea.

Para iniciar a drenagem de um fragmento, use o método db.adminCommand():

db.adminCommand( {
startShardDraining: "shard04"
} )

Voltar

dividir

Nesta página