Converter um conjunto de réplicas em um cluster fragmentado com um servidor de configuração incorporado
A partir do MongoDB,8.0 você pode configurar um servidor de configuração de configuração para armazenar os dados do aplicação , além dos metadadoscluster fragmentado . Um servidor de configuração que armazena dados de aplicação é chamado de shard de configuração ou servidor de configuração incorporado.
Converter seu conjunto de réplicas em um cluster fragmentado com um servidor de configuração incorporado pode reduzir:
O número de nós necessários em seu sistema.
complexidade para manter clusters de um fragmento.
Sobre esta tarefa
Você não pode converter diretamente um conjunto de réplicas em um shard de configuração. Para converter um conjunto de réplicas em um servidor de configuração incorporado, você deve:
Converta seu conjunto de réplicas em um cluster fragmentado com um servidor de configuração dedicado.
Configure o servidor de configuração dedicado para ser executado como um shard de configuração usando o
transitionFromDedicatedConfigServercomando.O comando
transitionFromDedicatedConfigServeradiciona o servidor de configuração como um shard no cluster.
Reduza o número de fragmentos em seu cluster após adicionar o fragmento de configuração.
Controle de acesso
Se o controle de acesso estiver habilitado, o transitionFromDedicatedConfigServer comando exigirá a transitionFromDedicatedConfigServer ação de autorização para o cluster.
A função tem clusterManager a transitionFromDedicatedConfigServer ação de autorização e pode ser atribuída a um usuário.
Passos
O exemplo a seguir converte um conjunto de réplicas autogerenciado em um fragmento de configuração que contém dados de usuário pré-existentes do conjunto de réplicas.
Converta seu conjunto de réplicas em um cluster fragmentado com um servidor de configuração dedicado
Este tutorial pressupõe que você saiba como converter seu conjunto de réplicas cluster fragmentado. Para obter instruções completas, consulte Converter um conjunto de réplicas autogerenciadas em um cluster fragmentado.
Execute o transitionFromDedicatedConfigServer comando
Para configurar seu servidor de configuração dedicado para ser executado como um shard de configuração, execute o comando transitionFromDedicatedConfigServer do banco de banco de dados admin:
db.adminCommand( { transitionFromDedicatedConfigServer: 1 } )
Verifique se o servidor de configuração agora é um fragmento de configuração
Você pode confirmar que um cluster fragmentado usa um fragmento de configuração usando um dos seguintes métodos:
Execute o método
sh.isConfigShardEnabled()emmongosh. Se a saídash.isConfigShardEnabled()contiverenabled: true, o cluster utilizará um fragmento de configuração. Se a saída contiverenabled: false, o cluster não usará um fragmento de configuração.Execute o comando
listShardsno banco de dados doadminenquanto conectado a ummongose inspecione a saída de um documento onde o_idestá configurado para"config". Se a saídalistShardsnão contiver um documento em que_idesteja definido como"config", o cluster não usará um fragmento de configuração.
O exemplo a seguir executa o comando listShards e tenta localizar um documento em que _id está definido como "config".
db.adminCommand({ listShards: 1 })["shards"].find(element => element._id === "config")
Neste exemplo, o documento retornado tem _id definido como "config", o que confirma que esse cluster usa um shard de configuração.
{ _id: "config", host: "configRepl/localhost:27018", state: 1, topologyTime: Timestamp({ t: 1732218671, i: 13 }), replSetConfigVersion: Long('-1') }
Observação
Se o balanceador estiver em execução, ele migrará automaticamente os dados entre os fragmentos. Caso contrário, utilize os moveCollection comandos ou para distribuir manualmente seus dados.moveChunk
Reduza o número de fragmentos no seu cluster para um
Para reduzir o cluster a um único fragmento após adicionar o fragmento de configuração, mova todas as coleções não fragmentadas para o fragmento de configuração usando o moveCollection comando e remova o primeiro fragmento no cluster com o removeShard comando. Esta etapa reduz seu cluster a um único fragmento de configuração.
Para obter instruções completas sobre como remover fragmentos em seu cluster, consulte Remover fragmentos de um cluster fragmentado.