Este tópico descreve como usar o Data Transmission Service (DTS) para migrar um banco de dados MongoDB auto-gerenciado com arquitetura de cluster fragmentado para uma instância de cluster fragmentado do ApsaraDB for MongoDB. O DTS permite migrar os dados existentes e incrementais de bancos de dados on-premises para a Alibaba Cloud sem interrupções de serviço.
Para obter mais informações, consulte Visão geral das soluções de migração e sincronização de dados do MongoDB.
Pré-requisitos
Para informações sobre as versões suportadas pelo MongoDB auto-gerenciado e pelo ApsaraDB for MongoDB, consulte Visão geral das soluções de migração.
-
Verifique se cada shard na instância de cluster fragmentado de destino possui espaço de armazenamento suficiente.
NotaPor exemplo, se um banco de dados auto-gerenciado tiver três shards e o segundo shard utilizar a maior parte do espaço de armazenamento (500 GB), o espaço de armazenamento de cada shard na instância de cluster fragmentado de destino deverá ser superior a 500 GB.
Como funciona
O DTS migra um banco de dados MongoDB auto-gerenciado migrando cada shard individualmente. Crie uma tarefa de migração de dados para cada shard.
A distribuição dos dados na instância MongoDB de destino depende da chave de fragmentação configurada. Para obter mais informações, consulte Configurar a fragmentação de dados para maximizar o desempenho do shard.

Observações de uso
Durante a migração completa de dados, o DTS consome recursos dos bancos de dados de origem e de destino, o que pode aumentar a carga nos servidores. Caso seu banco de dados processe cargas de trabalho pesadas ou as especificações do servidor sejam insuficientes, o desempenho poderá ser afetado e, em alguns casos, o serviço pode ficar indisponível. Avalie o impacto da migração antes de iniciá-la e prefira executá-la em horários de baixa demanda.
Para detalhes sobre as versões e mecanismos de armazenamento suportados pelas instâncias MongoDB, consulte Versões e mecanismos de armazenamento. Confirme a compatibilidade antecipadamente ao migrar entre versões ou mecanismos diferentes.
Como o DTS grava dados no banco de dados de destino simultaneamente, o espaço de armazenamento utilizado será de 5% a 10% maior do que o ocupado no banco de dados de origem.
Garanta que o banco de dados de destino não contenha documentos com a mesma chave primária (_id) do banco de dados de origem para evitar perda de dados. Se existirem documentos com chaves primárias duplicadas, limpe os dados relacionados no destino sem afetar seus serviços. Por exemplo, exclua os documentos no banco de dados de destino que possuam valores de _id idênticos aos do banco de dados de origem.
Os bancos de dados admin e local não podem ser utilizados como origem ou destino.
A instância de cluster fragmentado MongoDB de origem não pode ter mais de 10 nós Mongos.
Faturamento
|
Tipo de migração |
Taxa de configuração da tarefa |
Custo de transferência de dados |
|
Migração completa de dados |
Gratuito. |
Há cobrança para migração de dados da Alibaba Cloud pela Internet. Para obter mais informações, consulte Preços do DTS. |
|
Migração incremental de dados |
Pago. Para obter mais informações, consulte Preços do DTS. |
Tipos de migração
-
Migração completa de dados: transfere todo o histórico de dados dos objetos selecionados do banco de dados de origem para o de destino.
NotaSuporta a migração de bancos de dados, coleções e índices.
-
Migração incremental de dados: replica as alterações ocorridas no banco de dados de origem para o de destino após a conclusão da migração completa.
NotaSincroniza operações de criação e exclusão em bancos de dados, coleções e índices.
Sincroniza operações de criação, exclusão e atualização em documentos.
Permissões necessárias para contas de banco de dados
|
Banco de dados |
Migração completa de dados |
Migração incremental de dados |
|
Banco de dados MongoDB auto-gerenciado |
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 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 saber como criar uma conta de banco de dados e conceder permissões, consulte os seguintes tópicos:
Para bancos de dados MongoDB auto-gerenciados, consulte a documentação de criação de usuários do MongoDB.
Para instâncias MongoDB da Alibaba Cloud, consulte Usar o DMS para gerenciar usuários de banco de dados MongoDB.
Preparações
-
Obrigatório: Desative o balanceador do banco de dados MongoDB auto-gerenciado durante a migração para evitar que a movimentação de chunks afete a consistência dos dados. Para obter mais informações, consulte Gerenciando o Balanceador do MongoDB.
AvisoCaso o balanceador não seja desativado, a migração de chunks comprometerá a consistência dos dados lidos pelo DTS.
-
Limpe os documentos órfãos gerados por falhas na migração de chunks no banco de dados MongoDB auto-gerenciado.
NotaA presença de documentos órfãos prejudica o desempenho da migração e pode causar conflitos de
_id, resultando em erros.-
Baixe o arquivo de script cleanupOrphaned.js.
wget "https://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/120562/cn_zh/1564451237979/cleanupOrphaned.js" -
Edite o arquivo de script cleanupOrphaned.js e substitua
testpelo nome do banco de dados onde deseja limpar os documentos órfãos.NotaRepita esta etapa e a etapa c para cada banco de dados existente.

-
Execute o comando abaixo para remover documentos órfãos de todas as coleções no banco de dados especificado dentro de um nó de shard.
NotaRepita este procedimento em cada nó de shard para garantir a limpeza completa.
mongo --host <Shardhost> --port <Primaryport> --authenticationDatabase <database> -u <username> -p <password> cleanupOrphaned.jsNota<Shardhost>: endereço IP do nó de shard.
<Primaryport>: porta de serviço do nó primário no shard.
<database>: nome do banco de dados de autenticação, ao qual a conta pertence.
<username>: conta utilizada para acessar o banco de dados.
<password>: senha de acesso ao banco de dados.
Exemplo:
Neste cenário, o banco de dados MongoDB auto-gerenciado possui três shards, exigindo a exclusão de documentos órfãos em cada um deles.
mongo --host 172.16.1.10 --port 27018 --authenticationDatabase admin -u dtstest -p 'Test123456' cleanupOrphaned.jsmongo --host 172.16.1.11 --port 27021 --authenticationDatabase admin -u dtstest -p 'Test123456' cleanupOrphaned.jsmongo --host 172.16.1.12 --port 27024 --authenticationDatabase admin -u dtstest -p 'Test123456' cleanupOrphaned.js
-
-
Crie o banco de dados e a coleção que requerem fragmentação na instância MongoDB de destino e configure o sharding conforme suas necessidades de negócio. Para mais detalhes, visualize Configurar fragmentação de dados para aproveitar totalmente o desempenho do Shard.
NotaConfigure o sharding antes de definir a tarefa de migração. Isso evita que todos os dados sejam direcionados a um único shard, o que poderia exceder a capacidade de armazenamento alocada.
Procedimento
Faça login no console do Data Transmission Service (DTS).
No painel de navegação à esquerda, clique em Data Migration.
Na parte superior da página Migration Tasks, selecione a região onde a instância MongoDB de destino está localizada.
No canto superior direito da página, clique em Create Migration Task.
-
Configure os bancos de dados de origem e de destino.

Categoria
Configuração
Descrição
N/A
Nome da Tarefa
O DTS gera automaticamente um nome para a tarefa. Especifique um nome descritivo para facilitar a identificação. Não é necessário que o nome seja único.
Banco de Dados de Origem
Tipo de Instância
Selecione o tipo de instância conforme o local de implantação do banco de dados de origem. Este tópico utiliza Self-managed Database With Public IP como exemplo.
NotaSe o seu banco de dados auto-gerenciado for de outro tipo de instância, preparações adicionais podem ser necessárias. Para mais informações, consulte Preparações para migração de dados.
Região da Instância
Ao definir o Tipo de Instância como Self-managed Database With Public IP, não é necessário configurar a Instance Region.
NotaSe o banco de dados auto-gerenciado possuir configurações de lista de permissões, clique em Get DTS IP Segment ao lado de Instance Region para obter os segmentos de IP dos servidores DTS. Em seguida, adicione esses segmentos à lista de permissões do seu banco de dados.
Tipo de Banco de Dados
Selecione MongoDB.
Nome do Host ou Endereço IP
Insira o nome de domínio ou endereço IP de um único nó de shard no banco de dados MongoDB auto-gerenciado. Neste exemplo, utilizamos um endereço IP público.
NotaO DTS migra todo o cluster fragmentado processando cada nó de shard sequencialmente. Insira o domínio ou IP do primeiro nó de shard. Ao criar a segunda tarefa de migração, informe os dados do segundo nó, e assim sucessivamente até concluir a migração de todos os nós.
Porta
Insira a porta de serviço do nó de shard correspondente.
NotaNeste exemplo, a porta de serviço de cada nó de shard deve estar acessível pela internet.
Nome do Banco de Dados
Insira o nome do banco de dados de autenticação. Trata-se do banco ao qual a conta de usuário pertence.
Conta do Banco de Dados
Insira a conta do banco de dados MongoDB auto-gerenciado. Para detalhes sobre as permissões exigidas, consulte Permissões da conta do banco de dados.
Senha do Banco de Dados
Insira a senha da conta do banco de dados.
NotaApós configurar as informações do banco de dados de origem, clique em Test Connection ao lado de Database Password para validar os dados. Se estiverem corretos, a mensagem Test Passed será exibida. Caso veja Test Failed, clique em Diagnose ao lado de Test Failed e ajuste as informações conforme as instruções.
Método de Conexão
Selecione Non-encrypted Connection.
NotaA opção SSL-encrypted Connection está disponível apenas para migrações de bancos de dados MongoDB Atlas.
Banco de Dados de Destino
Tipo de Instância
Selecione MongoDB Instance.
Região da Instância
Selecione a região onde a instância MongoDB de destino está localizada.
ID da Instância MongoDB
Selecione o ID da instância de cluster fragmentado de destino.
Nome do Banco de Dados
Insira o nome do banco de dados de autenticação. Este é o banco ao qual a conta pertence.
Conta do Banco de Dados
Insira a conta da instância MongoDB. Consulte Permissões da conta do banco de dados para verificar os privilégios necessários.
Senha do Banco de Dados
Insira a senha da conta do banco de dados.
NotaApós preencher os dados do banco de destino, clique em Test Connection ao lado de Database Password para validar as informações. A mensagem Test Passed indica sucesso. Se aparecer Test Failed, utilize a opção Diagnose ao lado de Test Failed para corrigir os dados conforme orientado.
-
Concluída a configuração, clique em Set Whitelist and Next no canto inferior direito da página.
Se a origem ou o destino for uma instância de banco de dados da Alibaba Cloud, como ApsaraDB RDS for MySQL ou ApsaraDB for MongoDB, o DTS adiciona automaticamente os endereços IP do serviço DTS da região correspondente à lista de permissões de IP da instância. Para bancos auto-gerenciados em instâncias ECS, o DTS inclui automaticamente esses IPs nas regras do grupo de segurança da instância ECS, mas você ainda precisa garantir que o banco permita o acesso a partir dela. Em clusters distribuídos por múltiplas instâncias ECS, adicione manualmente os IPs do DTS às regras de segurança das demais instâncias. Para bancos auto-gerenciados em IDCs ou outras nuvens, adicione manualmente os IPs do serviço DTS da região para liberar o acesso. Consulte Blocos CIDR de endereços IP dos servidores DTS para obter a lista de IPs.
AvisoAdicionar blocos CIDR públicos dos servidores DTS, seja automática ou manualmente, pode introduzir riscos de segurança. Ao utilizar este produto, você reconhece e aceita esses riscos potenciais. É sua responsabilidade implementar medidas básicas de segurança, incluindo, mas não se limitando a: uso de senhas fortes, restrição de portas abertas, autenticação para chamadas de API internas, revisão regular e limitação de segmentos de rede desnecessários, ou conexão via redes privadas como Express Connect, VPN Gateway ou Smart Access Gateway.
-
Defina os tipos e objetos de migração.

Parâmetro Descrição Tipo de migração - Para migrações offline, selecione apenas Full Data Migration.
- Para migrações sem tempo de inatividade, marque tanto Full Data Migration quanto Incremental Data Migration.
Nota Caso não selecione Incremental Data Migration, evite gravar novos dados no banco MongoDB auto-gerenciado durante o processo para garantir a consistência entre origem e destino.Objetos de migração - Na lista Available, selecione os objetos desejados e clique no ícone
para movê-los para a lista Selected Objects. Nota Os bancos de dadosadmin,localeconfignão podem ser migrados. - É possível selecionar bancos de dados, coleções ou funções como objetos de migração.
- Por padrão, os nomes dos objetos são mantidos após a migração. Para renomeá-los, utilize o recurso de Mapeamento de nomes de objetos.
Renomear objetos Permite renomear objetos no destino através do recurso Mapeamento de nomes de objetos. Duração de nova tentativa para conexões instáveis Padrão: 12 horas (personalizável). Se o DTS restabelecer a conexão dentro desse período, a tarefa será retomada automaticamente; caso contrário, ela falhará. Nota A tarefa DTS gera custos durante as tentativas de reconexão. Defina a duração conforme sua necessidade e libere a instância DTS quando não for mais necessária para evitar gastos desnecessários. -
Finalizadas as configurações, clique em Pre-check and Start no canto inferior direito da página.
NotaO DTS executa uma verificação prévia antes de iniciar a tarefa. O início só ocorre após a aprovação nessa verificação.
-
Em caso de falha na verificação prévia, clique no ícone
ao lado do item reprovado para visualizar os detalhes.Corrija os problemas indicados nos detalhes e execute a verificação novamente.
Para avisos que não exigem correção obrigatória, selecione Ignore ou Ignore and Rerun Precheck para prosseguir com a verificação.
Após a aprovação na verificação prévia, clique em Next.
Na página Confirm Purchase Configuration, escolha uma Link Specification e marque a caixa de seleção Data Transmission Service (Pay-as-you-go) Terms of Service.
Clique em Purchase and Start para iniciar a tarefa de migração.
Repita as etapas de 1 a 11 para criar tarefas de migração para os nós de shard restantes.
-
Conclua a tarefa de migração.
-
Migração completa de dados
Evite interromper manualmente a tarefa durante a migração completa de dados, pois isso pode resultar em dados incompletos na instância ApsaraDB for MongoDB de destino. Aguarde até que a tarefa de migração completa pare automaticamente.
-
Migração incremental de dados
A tarefa de migração incremental não para sozinha; é necessário interrompê-la manualmente.
NotaEscolha um momento adequado para parar a tarefa manualmente, preferencialmente em horários de baixa demanda ou quando estiver pronto para alternar suas operações para a instância MongoDB de destino.
Aguarde até que o progresso das tarefas de migração de todos os nós de shard mude para Incremental Migration e o status indique No Latency. Nesse momento, pare de gravar dados no banco de origem por alguns minutos. O status de Incremental Migration poderá apresentar latência temporariamente.
Espere até que o status de Incremental Migration de todas as tarefas retorne para No Latency. Em seguida, interrompa as tarefas manualmente.

-
Direcione suas operações para a instância ApsaraDB for MongoDB de destino.