mongosync e instruções sobre como atualizar sua versão do mongosync.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 para a arquitetura de cluster para formatar suas connection strings e conectar à instância do mongos em seu 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.
mongosyncpermite aos usuários renomear coleções que a opçãosharding.shardingEntriesinclui 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
mongosyncinicie ou depois que a migração for concluída e omongosyncfor 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.