Sincronizar um conjunto de réplicas com um cluster fragmentado
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.
Antes de começar
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 .
Passos
Conecte o conjunto de réplicas e o cluster fragmentado
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.
Iniciar sincronização
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:
Solicitar
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 }, ] } } ] } } '
Resposta
{"success":true}
Próximos passos
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
.
Limitações
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çãosharding.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 omongosync
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.