Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo ajuda você a planejar e executar uma migração do MongoDB para Azure DocumentDB. Ele aborda as ferramentas de migração disponíveis, as principais fases de uma migração e as práticas recomendadas para reduzir o risco e minimizar o tempo de inatividade.
Se você estiver migrando de um servidor MongoDB local, de uma VM hospedada na nuvem ou de um serviço gerenciado do MongoDB, as opções de migração, as diretrizes e as práticas recomendadas neste artigo se aplicam.
Fases principais de migração
Uma migração bem-sucedida segue essas fases distintas. Cada fase tem metas específicas e critérios de êxito.
1. Avaliar
Execute uma verificação automatizada do MongoDB de origem usando a extensão de migração Azure DocumentDB para identificar recursos, comandos, sintaxe de consulta e tipos de índice sem suporte. A avaliação também fornece uma visão geral das métricas de versão, licença, tipo de instância e banco de dados e coleção do MongoDB. Use essas descobertas para planejar alterações de esquema e identificar qualquer refatoração necessária antes da migração.
Dica
Recomendamos que você revise os recursos e a sintaxe do MongoDB Query Language (MQL) com suporte em detalhes e realize uma prova de conceito antes da migração real.
2. Preparar
Analisar o relatório de avaliação e medir o TPS de origem (transações por segundo). Realize migrações de teste em dados representativos para estabelecer a Camada de Computação pretendida, a Camada de Armazenamento e o número de fragmentos. Realize testes de desempenho para garantir que a configuração de destino atenda aos seus requisitos.
3. Refinar
Prepare coleções de destino com chaves de fragmentação e índices apropriados que correspondam aos seus padrões de consulta de produção. Se estiver usando vários fragmentos, decida como distribuir coleções entre fragmentos para balancear a carga e minimizar as operações entre fragmentos.
4. Migrar
Execute o trabalho de migração para mover dados no modo offline ou online:
- Migração offline: tira um instantâneo da origem no início e copia em massa para o destino. Dados adicionados, atualizados ou excluídos na origem após o instantâneo não são copiados. O tempo de inatividade necessário depende de quanto tempo a cópia em massa leva.
- Migração online: executa a mesma cópia em massa que offline, mas também monitora o fluxo de alterações durante todo o processo. As alterações feitas durante a migração são replicadas para o destino, portanto, o tempo de inatividade do aplicativo necessário é mínimo. Requer fluxo de alterações e um oplog suficientemente grande na origem.
Dica
Para migrações online, verifique se o fluxo de alterações está habilitado e o oplog é dimensionado adequadamente no MongoDB de origem para capturar todas as alterações durante a janela de migração.
Para ferramentas disponíveis, consulte ferramentas de migração.
5. Validar
Valide se todos os dados foram copiados, incluindo as atualizações mais recentes. Compare as contagens de documentos, execute a validação baseada em exemplo e verifique se índices e estruturas de dados correspondem às expectativas no destino. Use scripts automatizados para tornar a validação repetível e consistente.
6. Transição
Mova o tráfego de leitura para o destino e verifique se não há problemas funcionais ou de desempenho. Depois que a validação de leitura for bem-sucedida, mova o tráfego de gravação para o destino. Monitore de perto durante a janela de transição em busca de quaisquer anomalias.
Ferramentas de migração
As ferramentas discutidas neste artigo ajudam você a migrar suas cargas de trabalho do MongoDB das seguintes fontes:
- Máquina Virtual do MongoDB
- MongoDB Atlas
- AWS DocumentDB
Extensão de Migração do Azure DocumentDB
Crie e gerencie seus trabalhos de migração em Visual Studio Code com Azure Extensão de Migração do DocumentDB (Versão Prévia Pública) — uma solução projetada para simplicidade, security e zero tempo de inatividade.
Essa ferramenta fornece diretrizes passo a passo claras para ajudá-lo a migrar cargas de trabalho sem interrupções de serviço. É possível:
- Selecione bancos de dados e coleções específicos para migração
- Executar todas as etapas dentro da interface conhecida do VS Code
- Garantir conectividade segura durante todo o processo
- Aproveite o custo zero para usar a extensão
Com Azure Extensão de Migração do DocumentDB, você pode simplificar seu percurso de migração mantendo o controle e a segurança , tudo sem infraestrutura ou complexidade adicionais.
Utilitário de Aplicativo Web (Online)
Simplifique sua migração para Azure DocumentDB com MongoMigrationwebBasedUtility uma ferramenta projetada para eficiência, confiabilidade e facilidade de uso. O repositório oferece instruções detalhadas passo a passo para migrar suas cargas de trabalho. Essa ferramenta oferece uma experiência perfeita para migrações de dados online e offline. O processo é amigável, exigindo que apenas os detalhes de origem e de destino sejam fornecidos. Ele permite migrar sem esforço suas coleções do MongoDB, mantendo o controle, a segurança e a escalabilidade, desbloqueando todo o potencial de Azure DocumentDB.
Os principais recursos incluem:
- Dá suporte à implantação privada em sua rede virtual para segurança aprimorada
- Recursos de retomada automática se houver perda de conexão ou erros transitórios
- Interface amigável
- Acesso ao código-fonte do C# no GitHub
A ferramenta dá suporte a opções de implantação flexíveis e opera de forma independente sem dependências em outros recursos Azure. Além disso, ele oferece um desempenho escalável com planos de preços personalizáveis para o Aplicativo Web do Azure.
Ferramentas nativas do MongoDB (Offline)
Você também pode usar as ferramentas nativas do MongoDB, como mongodump/mongorestore, mongoexport/mongoimport para migrar conjuntos de dados offline (sem replicar alterações dinâmicas) para Azure oferta do DocumentDB.
| Scenario | Ferramenta nativa do MongoDB |
|---|---|
| Mover subconjunto de dados de banco de dados (baseado em JSON/CSV) | mongoexport/mongoimport |
| Mover banco de dados inteiro (baseado em BSON) | mongodump/mongorestore |
-
mongoexport/mongoimport é o melhor par de ferramentas de migração para migrar um subconjunto do seu banco de dados MongoDB.
- O mongoexport exporta os dados existentes para um arquivo JSON ou CSV legível. O mongoexport usa um argumento especificando o subconjunto dos dados existentes a serem exportados.
- mongoimport abre um arquivo JSON ou CSV e insere o conteúdo na instância do banco de dados de destino (Azure DocumentDB nesse caso.).
- JSON e CSV não são um formato compacto; você pode incorrer em encargos de rede excedentes à medida que mongoimport envia dados para Azure DocumentDB.
-
O mongodump/mongorestore é o melhor par de ferramentas de migração para migrar todo o banco de dados MongoDB. O formato BSON compacto torna o uso mais eficiente dos recursos de rede à medida que os dados são inseridos no Azure DocumentDB.
- O mongodump exporta os dados existentes como um arquivo BSON.
- mongorestore importa o seu arquivo de backup BSON no Azure DocumentDB.
Observação
As ferramentas nativas do MongoDB podem mover dados tão rápido quanto o hardware do host permite.
Práticas recomendadas de migração
Use essas práticas recomendadas para reduzir o risco, estimar a capacidade com mais precisão, melhorar a velocidade de migração e executar a substituição com segurança.
Reduzir falhas
Use senhas codificadas em URL em cadeias de conexão. Caracteres especiais, como
@,#e:podem interromper a análise quando eles não são codificados. A codificação de URL ajuda a evitar falhas de conexão durante as execuções de avaliação e migração.Execute uma avaliação de pré-migração antes da migração. A avaliação ajuda a identificar recursos sem suporte, lacunas de compatibilidade e potenciais bloqueadores antecipadamente. Resolva as descobertas antes da migração para reduzir o retrabalho durante a substituição.
Pratique a migração e a substituição antes da produção. Realize uma ou mais migrações de ensaio em um ambiente não-produtivo. A prática melhora a precisão do tempo, a preparação da equipe e a confiança durante a substituição de produção.
Dimensionar a infraestrutura com precisão
Execute uma migração de avaliação em um conjunto de dados pequeno, mas representativo. Utilize o teste para capturar a taxa de transferência realista, a latência e o consumo de recursos. Um exemplo representativo fornece estimativas melhores do que os dados de teste sintéticos.
Extrapolar os resultados da avaliação para estimar o Nível de Computação, o Nível de Armazenamento e o número de fragmentos. Use as métricas de avaliação observadas para projetar as necessidades de dimensionamento final com base no volume completo do conjunto de dados. Reveja a estimativa se a distribuição de dados de produção diferir da amostra.
Utilize uma quantidade, tamanho e estrutura de documentos representativos, com configurações semelhantes às de produção. Combine as configurações de indexação e fragmentação de produção durante o período de teste para evitar subestimar o custo ou a duração da migração. As configurações de não produção podem produzir resultados enganosos.
Estime o armazenamento de destino com base nos resultados de testes, em vez de assumir que os tamanhos de origem e destino são iguais. Os volumes de armazenamento de origem e de destino podem ser diferentes devido a diferenças nas definições de índice e no layout de dados. Use os resultados da avaliação para planejar o armazenamento com um buffer seguro.
Otimizar a velocidade de migração
Migre dentro da mesma região quando possível. Manter a origem e o destino na mesma região reduz a latência de rede e melhora o desempenho da transferência de dados. Ele também pode reduzir os custos de transferência de dados entre regiões.
Aumente a escala durante a migração e, em seguida, reduza-a após a transição. Por exemplo, você pode redimensionar temporariamente o cluster de destino para M200 para melhorar o desempenho da migração. Após a migração, reduza a escala para um nível apropriado dentro da faixa suportada para cargas de trabalho estáveis.
Escolha discos com IOPS mais alta para gravações mais rápidas. IOPS maiores podem melhorar significativamente o desempenho da migração de escrita intensiva. Como o tamanho do disco normalmente não pode ser reduzido mais tarde, selecione o tamanho do disco cuidadosamente durante o planejamento.
Planeje o corte cuidadosamente porque não há reversão
Planeje o tempo de inatividade durante uma janela de tráfego baixo. O tempo de inatividade necessário depende de quanto tempo as etapas de validação levam para se completarem após a migração. Uma janela de baixo tráfego reduz o impacto nos negócios.
Pare todas as gravações na origem pouco antes da substituição. Esta etapa impede a divergência de última hora entre a origem e o destino. Confirme se a atividade de gravação está totalmente pausada antes de concluir a transição.
Valide os dados migrados antes de prosseguir com as gravações. Compare as contagens de documentos e, em seguida, execute a comparação de documentos de amostra aleatória (por exemplo, verificações baseadas em hash). Use um script quando possível para tornar a validação repetível.
Atualize as cadeias de conexão dos aplicativos e teste no alvo. Execute a validação funcional e de desempenho em relação às leituras de destino e ao tráfego de teste antes de habilitar as gravações em produção. Confirme se os caminhos críticos se comportam conforme o esperado.
Mova o tráfego de gravação somente depois que a validação for bem-sucedida. A produção de deslocamento grava no destino somente após os resultados dos testes serem bem-sucedidos e consistentes. Use uma distribuição em etapas se a arquitetura do aplicativo der suporte a ela.
Coordenar entre as equipes para uma migração sem falhas
Garanta o apoio de todos os stakeholders: equipes de aplicativo, dados, infraestrutura, segurança, rede e gerenciamento. Alinhe as expectativas e as responsabilidades antecipadamente. A propriedade compartilhada reduz mal-entendidos e atrasos durante a execução.
Use planejamentos e execuções de testes para criar a confiança da equipe e refinar procedimentos. Não há atalhos para uma migração suave. Os testes práticos revelam problemas em um ambiente de menor risco e proporcionam prática às equipes.
Trate a transição como crítica e sensível ao tempo. A substituição requer coordenação precisa e comunicação clara. Designe os tomadores de decisão e estabeleça caminhos de escalonamento antes de começar.
Saiba quem executará cada etapa, quando ela deve acontecer e como minimizar o tempo de inatividade. Atribua responsabilidades, estabeleça linhas do tempo e alinhe-se em critérios de êxito. Documente o runbook de substituição e compartilhe-o com todos os participantes.
Coordene com todas as partes interessadas quando a transição exigir atualizações simultâneas em várias cargas de trabalho. Agende a migração durante uma janela de manutenção que funcione para todas as equipes. Evite noites ou períodos de sexta-feira perto de grandes eventos comerciais.
Não apresse ou ignore as etapas de diligência prévia — não há reversão. A validação completa e a execução cuidadosa evitam erros caros. Aceite que a substituição leva tempo, atalhos que priorizam a velocidade criam riscos.
Conteúdo relacionado
- Migre dados para Azure DocumentDB usando ferramentas nativas do MongoDB.
- Migre dados para Azure DocumentDB usando o MongoMigrationwebBasedUtility.