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 com um conjunto de réplicas de servidor de configuração dedicado e, em seguida, converta-o em um com um fragmento de configuração incorporado.

Se o controle de acesso estiver habilitado, o comando transitionFromDedicatedConfigServer exigirá a ação de autorização transitionFromDedicatedConfigServer para 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 document de identidade de fragmentos, 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 método db.shutdownServer().

    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 mongod como um servidor de configuração.
    --replicaSetConfigShardMaintenanceMode
    Habilita o modo de manutenção do fragmento de configuração, que desabilita algumas verificações de inicialização e permite converter um servidor em um fragmento 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 rs.status() para identificar o novo nó primário. Se você tiver um conjunto de réplicas grande, use o método db.aggregate() 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ó primário e reconfigure-o para operar como um fragmento de configuração incorporado:

  1. Use o método rs.conf() para obter a configuração atual e armazená-la em uma 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 nó:

    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 método db.shutdownServer().

    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 roteador mongos:

mongos --config /etc/mongodb.conf
6

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

db.adminCommand( { transitionFromDedidcatedConfigServer: 1 } )
7

Atualize seu aplicativo para se conectar ao mongos roteador em vez dos membros do conjunto de réplicas.

Voltar

Fragmento de configuração

Nesta página