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
/ /
/ / /

Converter conjunto de réplicas em um fragmento 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 fragmento de configuração incorporado pode reduzir:

  • O número de nós necessários em seu sistema.

  • complexidade para manter clusters de um fragmento.

A partir do MongoDB 8.3, você pode converter um conjunto de réplicas diretamente em um cluster fragmentado com um fragmento de configuração incorporado.

As versões anteriores exigem que você primeiro converta o conjunto de réplicas em um cluster fragmentado com um conjunto de réplicas de servidor de configuração dedicado e, em seguida, converta-o em um com um shard de configuração incorporado.

Se o controle de acesso estiver habilitado, o comandotransitionFromDedicatedConfigServerexigirá a ação de autorizaçãotransitionFromDedicatedConfigServerpara o cluster.

A função tem clusterManager a transitionFromDedicatedConfigServer ação de autorização e pode ser atribuída a um usuário.

A partir do MongoDB 8.3, os conjuntos de réplicas que eram clusters anteriormente fragmentados não podem ser convertidos novamente em conjuntos de réplicas.

A conversão de um cluster fragmentado em um conjunto de réplicas preserva os metadados de fragmentação de sua implantação anterior, incluindo um documento de identidade de shards , que impede que ele se torne novamente um cluster fragmentado. Se você tentar uma conversão autogerenciada de volta para um cluster fragmentado, o MongoDB retornará um erro.

Para converter esses conjuntos de réplicas em clusters fragmentados, entre em contato com o Suporte técnico.

O exemplo a seguir converte um conjunto de réplicas autogerenciado em um fragmento de configuração que contém dados de usuário preexistentes do conjunto de réplicas.

1

Execute uma reinicialização contínua no conjunto de réplicas. Inicie cada nó como um servidor de configuração no modo de manutenção :

  1. Pare cada nó, começando com os secundários. Para desligar um servidor, utilize o db.shutdownServer() método.

    db.shutdownServer()
  2. Reinicie o nó como um fragmento de configuração no modo de manutenção.

    mongod --config /etc/mongodb.conf --configsvr \
    --replicaSetConfigShardMaintenanceMode \
    --configsvr
    Inicia a instância do como um servidor de mongod configuração.
    --replicaSetConfigShardMaintenanceMode
    Habilita o modo de manutenção do shard de configuração , que desabilita algumas verificações de inicialização e permite converter um servidor em um shard de configuração incorporado.
  3. Aguarde até que o nó volte a fazer parte do conjunto de réplicas antes de reiniciar o próximo.

2

Utilize o método para identificar o novo nó primário. Se rs.status() db.aggregate() você tiver um conjunto de réplicas grande, use o método para restringir a pesquisa.

db.aggregate( [
{ $documents: rs.status().members },
{ $match: { stateStr: "PRIMARY" } },
{ $project: { _id: 1, name: 1 }
] )
[ { _id: 3, name: "192.0.2.3:27017" } ]
3

Conecte-se ao nó primary e reconfigure-o para operar como um shard de configuração incorporado:

  1. Use o método para obter a configuração atual e armazená-la em uma rs.conf() variável:

    var conf = rs.conf()
  2. Defina o campo configsvr :

    conf.configsvr = true
  3. Incremente o campo version :

    conf.version += 1
  4. Reconfigure o nó:

    rs.reconfig(conf)
  5. Aguarde os secundários replicarem a alteração. Você pode verificar o status executando um pipeline de agregação nos documentos do membro:

    db.aggregate( [
    { $documents: rs.status().members },
    { $group: {
    _id: null,
    allConfigSvr: {
    $min: { $eq: ["$configsvr", true] }
    }
    } }
    ] )
    { _id: null, allConfigSvr: true }

    Quando allConfigSvr mostra true, isso indica que a reconfiguração se propagou para todos os nós no cluster.

4

Execute uma atualização contínua para reiniciar o conjunto de réplicas como um servidor de configuração:

  1. Pare cada nó, começando com os secundários. Para desligar um servidor, utilize o db.shutdownServer() método.

    db.shutdownServer()
  2. Reinicie o nó como um servidor de configuração, não mais no modo de manutenção :

    mongod --config /etc/mongodb.conf --configsvr
5

Inicie o mongos roteador:

mongos --config /etc/mongodb.conf
6

Conecte ao mongos e execute o comando para adicionar o shard de configuração ao transitionFromDedicatedConfigServer cluster.

db.adminCommand( { transitionFromDedidcatedConfigServer: 1 } )
7

Atualize seu aplicação para se conectar ao roteador em vez dos membros do conjunto de mongos réplicas.

Voltar

Fragmento de configuração

Nesta página