Use o Data Transmission Service (DTS) para migrar um sharded cluster MongoDB autogerenciado hospedado no Elastic Compute Service (ECS) para o ApsaraDB for MongoDB sem interrupção das operações. O DTS oferece suporte à migração completa de dados e à migração incremental de dados, que podem ser executadas juntas para manter as aplicações em funcionamento durante todo o processo.
Este tópico abrange a versão anterior do console do DTS. Para usar o novo console do DTS, consulte Migrar dados de um banco de dados MongoDB com arquitetura de sharded cluster para uma instância de sharded cluster do ApsaraDB for MongoDB .
Como funciona
O DTS migra um sharded cluster processando cada shard individualmente. Crie uma tarefa de migração de dados para cada shard.
A distribuição dos dados na instância de destino do ApsaraDB for MongoDB é baseada na chave de shard especificada. Para mais informações, consulte Configure sharding to maximize the performance of shards.

Tipos de migração
|
Tipo de migração |
O que é migrado |
|
Migração completa de dados |
Todos os dados existentes no banco de dados de origem: databases, collections e índices |
|
Migração incremental de dados |
Alterações realizadas após o início da migração completa: operações de criação e exclusão em databases, collections e índices; inserções, atualizações e exclusões em nível de documento |
Execute ambos os tipos de migração juntos para manter as aplicações em funcionamento durante o processo.
Caso execute apenas a migração completa de dados, interrompa as gravações no banco de dados de origem até que a tarefa seja concluída — do contrário, os dados migrados estarão incompletos.
Pré-requisitos
Antes de começar, verifique se você tem:
Um banco de dados MongoDB autogerenciado executando MongoDB 3.0 ou superior
Espaço de armazenamento suficiente em cada shard de destino — cada shard de destino deve ser maior do que o maior shard no banco de dados de origem (por exemplo, se o maior shard de origem tiver 500 GB, cada shard de destino deve superar 500 GB)
Contas de banco de dados com as permissões descritas em Permissões necessárias para contas de banco de dados
Permissões necessárias para contas de banco de dados
|
Fonte de dados |
Migração completa de dados |
Migração incremental de dados |
|
Banco de dados MongoDB autogerenciado no ECS |
Permissões de leitura no banco de dados de origem |
Permissões de leitura no banco de dados de origem, no banco de dados admin e no banco de dados local |
|
Instância de destino do ApsaraDB for MongoDB |
Permissões de leitura e gravação no banco de dados de destino |
Permissões de leitura e gravação no banco de dados de destino |
Para criar contas e conceder permissões:
Instâncias do ApsaraDB for MongoDB: Gerenciar permissões de usuários em bancos de dados MongoDB
Bancos de dados MongoDB autogerenciados: db.createUser()
Faturamento
| Tipo de migração | Taxa de configuração de tarefa | Taxa de tráfego de Internet |
|---|---|---|
| Migração completa de dados | Gratuita | Cobrada apenas quando os dados são migrados da Alibaba Cloud pela Internet. Consulte Data Transmission Service Pricing. |
| Migração incremental de dados | Cobrada. Consulte Data Transmission Service Pricing. |
Observações de uso
O DTS utiliza os recursos dos bancos de dados de origem e de destino durante a migração completa de dados, o que pode aumentar a carga nos servidores. Migre os dados durante períodos de baixo tráfego para reduzir o risco de degradação de desempenho.
Se os bancos de dados de origem e de destino executarem versões diferentes do MongoDB ou usarem mecanismos de armazenamento distintos, verifique a compatibilidade antes de prosseguir. Consulte MongoDB versions and storage engines.
Devido às gravações concorrentes, o banco de dados de destino ocupa de 5% a 10% mais espaço de armazenamento do que o tamanho dos dados de origem.
A instância de destino do ApsaraDB for MongoDB não deve conter documentos com o mesmo valor de chave primária
_idque os da origem. Se houver valores duplicados de_id, exclua os documentos conflitantes do destino antes de iniciar a migração — do contrário, poderá ocorrer perda de dados.Não use os bancos de dados admin ou local como origem ou destino.
O sharded cluster de origem não deve ter mais de 10 nós mongos.
Preparar o banco de dados de origem
Antes de criar as tarefas de migração, desative o balanceador no banco de dados de origem e exclua documentos órfãos. Desativar o balanceador impede que migrações de chunks interfiram na consistência dos dados durante a migração pelo DTS. Para instruções detalhadas, consulte Migrar um banco de dados MongoDB autogerenciado com arquitetura de sharded cluster para o ApsaraDB for MongoDB usando o DTS.
Migrar dados de cada shard
Crie uma tarefa de migração por shard. Repita as etapas a seguir para cada shard até que todos sejam migrados.
Acesse o console do DTS.
No painel de navegação à esquerda, clique em Data Migration.
Na parte superior da página Data Migration Tasks, selecione a região onde a instância de destino do ApsaraDB for MongoDB está implantada.
No canto superior direito, clique em Create Task.
-
Configure os bancos de dados de origem e de destino com os seguintes parâmetros.
Banco de dados de origem
Parâmetro Descrição Instance type Selecione Self-managed Database on ECS. Instance region Selecione a região onde a instância do ECS está implantada. ECS instance ID Insira o ID da instância do ECS que hospeda o shard atual. Na primeira tarefa, insira o ID da instância do ECS do primeiro shard. Em cada tarefa subsequente, insira o ID da instância do ECS do próximo shard. Database type Selecione MongoDB. Port number Insira a porta de serviço do shard atual. Database name Insira o nome do banco de dados de autenticação. Database account Insira a conta para conexão ao banco de dados de origem. Consulte Permissões necessárias para contas de banco de dados. Database password Insira a senha da conta de banco de dados. Banco de dados de destino
Parâmetro
Descrição
Instance type
Selecione MongoDB Instance.
Instance region
Selecione a região onde a instância de destino do ApsaraDB for MongoDB está implantada.
MongoDB instance ID
Selecione a instância de destino do ApsaraDB for MongoDB.
Database name
Insira o nome do banco de dados de autenticação.
Database account
Insira a conta para conexão ao banco de dados de destino. Consulte Permissões necessárias para contas de banco de dados.
Database password
Insira a senha da conta de banco de dados. Após preencher as informações do banco de dados de destino, clique em Test Connectivity and Proceed para validar. Passed será exibido se a conexão for válida. Caso Failed apareça, clique em Check ao lado da mensagem Failed para corrigir a configuração.
-
No canto inferior direito, clique em Set Whitelist and Next.
O DTS adiciona automaticamente seus blocos CIDR às listas de permissões de IP das instâncias de banco de dados da Alibaba Cloud e às regras de segurança das instâncias do ECS — nenhuma alteração manual é necessária. Se a fonte ou o destino dos dados for um banco de dados autogerenciado e os blocos CIDR públicos dos servidores do DTS forem adicionados à lista de permissões de IP desse banco de dados, poderão ocorrer riscos de segurança. Recomendamos reforçar a autenticação com contas e senhas, restringir as portas permitidas ou conectar-se ao banco de dados via Express Connect, VPN Gateway ou Smart Access Gateway. Após a conclusão da migração, remova os blocos CIDR do DTS das suas listas de permissões. Para mais informações, consulte Adicionar os blocos CIDR dos servidores do DTS às configurações de segurança de bancos de dados locais .
-
Selecione os tipos de migração e os objetos a migrar.
Parâmetro Descrição Migration type Selecione apenas Full Data Migration para uma migração única. Para manter o destino sincronizado enquanto as aplicações estão em execução, selecione tanto Full Data Migration quanto Incremental Data Migration. Source objects Na seção Source Objects, selecione os databases, collections ou funções a migrar e clique no ícone de seta para movê-los para a lista Selected Objects. NotaO DTS não consegue migrar dados dos bancos de dados admin ou local. A migração de dados do banco de dados config não é recomendada, pois trata-se de um banco de dados interno. Para renomear objetos no destino, utilize o recurso Mapeamento de nomes de objetos.
-
No canto inferior direito, clique em Next: Save Task Settings and Precheck. O DTS executa uma verificação prévia antes de iniciar a migração. Se algum item falhar, clique em View Details ao lado do item com falha, corrija o problema e clique em Precheck Again. Se um alerta for exibido, clique em Confirm Alert Details, em seguida em Ignore, depois em OK e, por fim, em Precheck Again.
ImportanteIgnorar um alerta da verificação prévia pode causar inconsistência nos dados. Prossiga somente se compreender os riscos envolvidos.
Clique em Next: Purchase Instance.
Na caixa de diálogo Purchase, defina o Instance Class e marque a caixa de seleção para concordar com os Data Transmission Service (Pay-As-You-Go) Service Terms.
Clique em Buy and Start para iniciar a tarefa de migração.
Repita as etapas 4 a 11 para cada shard restante.
Interromper as tarefas de migração
Após todas as tarefas de shard estarem em execução, interrompa-as de acordo com o tipo de migração utilizado.
Full data migration
Não interrompa manualmente uma tarefa de migração completa de dados — aguarde a conclusão automática. Interrompê-la antes do término resulta em dados incompletos no destino.
Incremental data migration
As tarefas de migração incremental não são encerradas automaticamente. Interrompa-as manualmente após o atraso cair a zero:
Acompanhe a barra de progresso de cada tarefa de migração de shard. Aguarde até que tanto Incremental Data Migration quanto The migration task is not delayed sejam exibidos.
Interrompa as gravações no banco de dados de origem por alguns minutos.
-
Quando o status da migração incremental exibir novamente The migration task is not delayed, interrompa manualmente as tarefas de migração de todos os shards. Encerre todas as tarefas de shard durante períodos de baixo tráfego ou imediatamente antes de redirecionar as cargas de trabalho para o destino.

Redirecionar as cargas de trabalho para o destino
Após encerrar todas as tarefas de migração, redirecione suas aplicações para a instância de destino do ApsaraDB for MongoDB.