Definição
Compromete a transição de um servidor de configuração incorporado para um servidor de configuração dedicado .
Para executar este comando, você deve fazer a transição para um servidor de configuração dedicado com o startTransitionToDedicatedConfigServer comando. Este comando diz ao balanceador para mover chunks do shard para outros shards no cluster. Você também deve mover manualmente os bancos de dados que usam o fragmento como fragmento primário e as coleções não fragmentadas armazenadas no fragmento antes de executar o commitTransitionToDedicatedConfigServer comando.
O comando retorna ok: 0 com um erro se a transição para o servidor de configuração dedicado não for concluída ou se ela contiver um banco de dados ou uma coleção não fragmentada. Se a transição ocorrer e todos os bancos de dados e collections não fragmentadas forem migrados para fora do fragmento, o comando retornará ok: 1.
Para iniciar a transição para um servidor de configuração dedicado, consulte o startTransitionToDedicatedConfigServer comando.
Para mostrar o status da transição de um servidor de configuração incorporado para um servidor de configuração dedicado, consulte o getTransitionToDedicatedConfigServerStatus comando.
Para interromper a transição em andamento de um servidor de configuração incorporado para um servidor de configuração stopTransitionToDedicatedConfigServer dedicado.
Novidades na versão 8.3.
Compatibilidade
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 cluster fragmentado do Atlas para drenar o servidor de configuração incorporado.
Sintaxe
O comando tem a seguinte sintaxe:
db.adminCommand( { commitTransitionToDedicatedConfigServer: 1 } )
Comportamento
Requisitos de acesso
Se você tiver authorization habilitado, deverá ter a função clusterManager ou qualquer função que inclua a ação removeShard .
Requisitos de migração de reconhecimento de data center
Cada banco de dados em um cluster fragmentado tem um fragmento primário. Se o fragmento de transição também for o principal de um dos bancos de dados do cluster, você deverá mover manualmente os bancos de dados do fragmento primário para um novo fragmento depois de migrar todos os dados do fragmento.
Se houver um banco de dados que usa o shard que você deseja usar como primary, o comando commitTransitionToDedicatedConfigServer retornará um erro.
Para obter movePrimary detalhes, consulte o comando e Remover fragmentos de um cluster compartilhado para obter mais informações.
Requisitos de migração de coleção
As coleções não fragmentadas são armazenadas em shards individuais. Se uma dessas collections estiver no shard em que você deseja fazer a transição do servidor de configuração incorporado para o dedicado, primeiro você deverá migrar a collection para um shard diferente.
Se houver uma coleção não fragmentada armazenada no fragmento que você deseja fazer a transição do servidor de configuração incorporado para o dedicado, o comando commitTransitionToDedicatedConfigServer retornará um erro.
Para migrar uma collection não fragmentada, consulte o moveCollection comando.
Exemplos
Para iniciar a drenagem de um shard, use o método db.adminCommand() startTransitionToDedicatedConfigServer para executar o comando:
db.adminCommand( { startTransitionToDedicatedConfigServer: "1" } )
Para verificar o status da operação de drenagem , use o getTransitionToDedicatedConfigServerStatus comando:
db.adminCommand( { getTransitionToDedicatedConfigServerStatus: "1" } )
{ "state" : "drainingComplete", "msg" : "draining completed successfully", "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1772142838, 176), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } }, "operationTime" : Timestamp(1772142838, 174) }
Se a saída mostrar qualquer banco de dados no dbsToMove campo, use o comando para movê-lo para um shard movePrimary diferente.
Se a saída mostrar quaisquer collections não fragmentadas no collectionsToMove campo, use o comando para movê-las para um shard moveCollection diferente.
Quando getTransitionToDedicatedConfigServerStatus { state:
"completed" }mostra, o balanceador terminou de mover chunks para fora do shard. Agora você pode remover o fragmento:
db.adminCommand( { commitTransitionToDedicatedConfigServer: "1" } )
{ "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1772142839, 19), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } }, "operationTime" : Timestamp(1772142839, 19) }