Menu Docs
Página inicial do Docs
/
Sincronização de Cluster-to-Cluster do MongoDB
/

Sincronizar um conjunto de réplicas com um cluster fragmentado

Nesta página

  • Antes de começar
  • Passos
  • Próximos passos
  • Limitações
  • Saiba mais

Esta página descreve o procedimento para sincronizar dados de um conjunto de réplicas em um cluster fragmentado usando mongosync.

Observação

mongosync não suporta sincronização de um cluster fragmentado para um conjunto de réplicas.

  • Defina seu conjunto de réplicas de origem e cluster fragmentado de destino .

  • Defina um usuário administrativo que tenha permissões em ambos os clusters.

  • Baixar e instalar mongosync.

Para saber mais, consulte as instruções de configuração do mongosync .

1

mongosync deve criar uma conexão inicial entre o conjunto de réplicas de origem e o cluster fragmentado de destino antes de começar a sincronizar dados.

Para conectar cluster0 a cluster1 com mongosync, digite o seguinte comando:

mongosync \
--cluster0 "<cluster0_connection_string>" \
--cluster1 "<cluster1_connection_string>"

Siga as instruções de conexão da arquitetura de cluster para formatar as connection strings e conectar-se à instância mongos no cluster.

2

Chame o endpoint inicial para iniciar a sincronização de dados.

Para sincronizar de um conjunto de réplicas para um cluster fragmentado, defina a opção sharding para o comando start para fragmentar coleções no cluster de destino. Para obter mais informações, consulte Parâmetros de fragmentação.

Utilize o parâmetro sharding.shardingEntries para especificar as coleções para fragmentar. As coleções que você não lista nesta array replicam como não fragmentadas. Para obter mais informações, consulte Conjuntos de réplicas de shard e Escolher uma chave de shard.

O exemplo a seguir inicia uma sincronização a partir de um conjunto de réplicas com um cluster fragmentado:

curl localhost:27182/api/v1/start -XPOST \
--data '
{
"source": "cluster0",
"destination": "cluster1",
"sharding": {
"createSupportingIndexes": true,
"shardingEntries": [
{
"database": "accounts",
"collection": "us_east",
"shardCollection": {
"key": [
{ "location": 1 },
{ "region": 1 },
]
}
}
]
}
} '
{"success":true}

Você pode finalizar uma migração e transferir o volume de trabalho do seu aplicação do cluster de origem para o de destino usando o processo de cutoverdo mongosync .

  • Você não pode usar o endpoint inverso entre um conjunto de réplicas e um cluster fragmentado.

  • mongosync permite aos usuários renomear coleções que a opção sharding.shardingEntries inclui durante a sincronização com algumas limitações. Para obter detalhes, consulte Renomeando durante a sincronização.

  • Se você usar a opção sharding.createSupportingIndexes , os índices serão criados automaticamente no cluster de destino durante a sincronização. Você não poderá criar esses índices posteriormente no cluster de origem.

  • Se você quiser criar um índice para suportar chaves de shard manualmente, deverá criar o índice antes que o mongosync inicie ou depois que a migração for concluída e o mongosync for interrompido.

  • Se o conjunto de réplicas de origem tiver árbitros, o conjunto de réplicas de origem deverá ter mais de 2 nós não árbitros e você deverá sincronizar a partir de um nó não árbitro.

Para obter mais detalhes, consulte Limitações.

Voltar

Topologias de cluster