Migrações A->B->C
Importante
Programa beta de Cluster-to-Cluster Sync
Este recurso está disponível apenas em mongosync
beta. Para saber mais, consulteo programa Cluster-to-Cluster Sync beta .
A partir de mongosync
beta 1.8, você pode realizar migrações A->B->C. As migrações A->B->C permitem que você execute duas migrações consecutivas, em que o cluster de destino da primeira migração atua como o cluster de origem para a segunda migração.
Sintaxe
Para realizar uma migração A->B->C, execute os seguintes comandos ao iniciar o mongosync:
./bin/mongosync \ --cluster0 <cluster-A-connection-string> \ --cluster1 <cluster-B-connection-string> \ --migrationName <string> ./bin/mongosync \ --cluster0 <cluster-B-connection-string> \ --cluster1 <cluster-C-connection-string> \ --migrationName <string>
Para iniciar a operação de sincronização entre os clusters de origem e destino, consulte Sincronizar dados entre clusters.
Comportamento
A primeira migração (A->B) deve concluir o commit antes que a segunda migração (B->C) comece a ser confirmada.
Aviso
Se a segunda migração começar a ser confirmada antes da conclusão da primeira migração, você poderá sofrer perda de dados.
Antes de usar qualquer recurso beta experimental mongosync
, revise o Aviso de Isenção de responsabilidade do programaCluster-to-Cluster Sync beta .
Para obter um melhor desempenho, certifique-se de que a primeira migração (A->B) atinja change event application
antes do início da segunda migração (B->C). Para ver se uma migração atingiu change event application
, marque o campo info
no documento de resposta progress
.
Tamanho do Cluster B
As gravações do cluster A e as leituras do cluster C podem resultar em cargas pesadas para o cluster B. Certifique-se de que o cluster B tenha tamanho suficiente e possa lidar com cargas simultâneas de leitura e escrita.
Nome da migração
A string migrationName
pode conter até 44 caracteres alfanuméricos e sublinhados. migrationName
é anexado à string "mongosync_internal_"
para definir o nome do banco de dados de dados de metadados de migração.
Por exemplo, se você definir migrationName
como "cluster_27000_to_cluster_35000_sync"
, o nome do banco de dados de metadados mongosync
resultante será "mongosync_internal_cluster_27000_to_cluster_35000_sync"
.
Verificação
Migrações A->B->C não é compatível com o Verificador Incorporado. O comando /start retorna um erro se você ativar o verificador e as migrações A->B->C.
Para obter mais informações, consulte Verificar a fonte de dados.
Exemplo
O exemplo a seguir executa duas migrações consecutivas que:
Conecte um cluster de origem em execução na porta
27000
com um cluster de destino em execução na porta27001
.Use o cluster de destino em execução na porta
27001
como cluster de origem para a segunda migração.Conecte o cluster de origem na porta
27001
com um cluster de destino em execução na porta27002
.
O comando também define --migrationName
para descrever as operações e armazenar os metadados de migração para cada sincronização.
./bin/mongosync \ --cluster0 "mongodb://localhost:27000" \ --cluster1 "mongodb://localhost:27001" \ --migrationName "cluster_27000_to_cluster_27001_sync" ./bin/mongosync \ --cluster0 "mongodb://localhost:27001" \ --cluster1 "mongodb://localhost:27002" \ --migrationName "cluster_27001_to_cluster_27002_sync"