Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste tutorial, utiliza a Extensão de Migração do Azure DocumentDB no Visual Studio Code para criar e gerir trabalhos de migração de uma instância local ou cloud do MongoDB para o Azure DocumentDB. Esta extensão oferece uma interface amigável para desenvolvedores para realizar migrações sem interrupções de serviço. A extensão elimina a necessidade de infraestrutura adicional e oferece conectividade segura, utilização sem custos e controlo granular sobre quais bases de dados e coleções migrar.
O foco deste artigo está na utilização do fluxo de trabalho integrado da extensão para simplificar os passos de migração diretamente no Visual Studio Code. Esta abordagem é ideal para cenários onde pretende uma experiência simplificada, gerida, com complexidade mínima e máxima fiabilidade.
Pré-requisitos
Uma subscrição do Azure
- Se não tiver uma subscrição Azure, crie uma conta gratuita
Um cluster existente do Azure DocumentDB
- Se não tiver um cluster, crie um novo cluster
- Instale a extensão de migração Azure DocumentDB na sua máquina. Isto instala automaticamente o seu pré-requisito, a extensão DocumentDB para Visual Studio Code.
Antes de iniciar a migração, prepare a sua conta do Azure DocumentDB e a sua instância MongoDB existente para a migração.
Instância MongoDB (fonte)
- Complete a avaliação pré-migração para determinar se existem incompatibilidades e avisos entre a sua instância de origem e a conta de destino.
- Adicione um utilizador com permissões
readAnyDatabaseeclusterMonitor, a menos que já exista um. Usas esta credencial ao criar empregos de migração na extensão.
Azure DocumentDB (alvo)
- Recolha as credenciais da conta Azure DocumentDB account.
- Assegure que o utilizador tem
createCollection,dropCollection,createIndex,insert, elistCollectionspermissões.
Permissões obrigatórias mínimas
Use os seguintes papéis mínimos para criar e executar trabalhos de migração.
| Papel mínimo | Scope | Aplica-se ao modo de conectividade | Purpose |
|---|---|---|---|
| Reader | Subscription | Público e privado | Lista subscrições e grupos de recursos. Obrigatório para cada trabalho de migração. |
| Azure Database Migration Service Colaborador | Grupo de recursos | Público e privado | Crie o Azure Database Migration Service (DMS). Não precisas de criar um novo DMS para cada migração. Um DMS por região é suficiente. |
| Contributor | Subscription | Público e privado | Registe o DMS na subscrição. Esta é uma atividade única e pode ser delegada a outro utilizador. |
| Administrador de Acesso de Usuário | Rede virtual | Somente privado | Atribuir o papel de Network Contributor ao principal do objeto DMS. Esta é uma atividade única por rede virtual e pode ser delegada a outro utilizador. |
| Contributor | Azure DocumentDB | Público e privado | Ativar o trabalho de migração. |
Para detalhes do registo do fornecedor de recursos, consulte Registar o fornecedor de recursos Microsoft.DataMigration na sua subscrição.
Importante
A autenticação do Microsoft Entra ID não é atualmente suportada em empregos de migração. Por favor, utilize autenticação nativa do DocumentDB.
Executar a migração
Para orientações de planeamento sobre dimensionamento, velocidade e corte de migração, consulte as melhores práticas de migração.
Ligar à fonte
- Abra a extensão DocumentDB para o VS Code.
- Adiciona o servidor MongoDB que queres migrar para a lista de Ligações da Base de Dados de Documentos .
- Selecionar Adicionar Nova Ligação.
- Na barra de navegação, selecione Cadeia de Conexão.
- Insere a sua cadeia de ligação:
mongodb://<YOUR_USERNAME>:<YOUR_PASSWORD>@localhost:10260/?tls=true&tlsAllowInvalidCertificates=true&authMechanism=SCRAM-SHA-256 - A partir das Ligações do DocumentDB, selecione a ligação e expanda-a para ligar.
Invocar a Extensão de Migração
Podes invocar a Extensão de Migração a partir das Ligações do DocumentDB.
Clique com o botão direito numa ligação expandida (conectada).
Selecione Migração de Dados no menu contextual.
Na paleta de comandos, selecione Migration to Azure DocumentDB.
Depois seleciona Migrar para Azure DocumentDB.
Um Assistente de Migração guia-o durante o processo.
Criar um emprego de migração
Um trabalho de migração é usado para migrar um grupo de coleções da origem para o Azure DocumentDB de destino. O assistente de configuração de criação de trabalho de migração tem seis etapas.
Passo 1: Criar trabalho
Neste passo, fornece os detalhes básicos do trabalho.
Nome do Trabalho: Forneça um nome fácil de usar para identificar o trabalho de migração.
Modo de Migração: Selecione o modo de migração mais apropriado para o seu caso de uso.
- A migração online copia os dados de coleção, assegurando que as atualizações também são replicadas durante o processo. Este método é vantajoso com o mínimo de tempo de inatividade, permitindo operações contínuas para a continuidade dos negócios. Use essa opção quando as operações contínuas forem cruciais e reduzir o tempo de inatividade for uma prioridade.
- A migração offline capta um instantâneo da base de dados no início, oferecendo uma abordagem mais simples e previsível. Ele funciona bem quando o uso de uma cópia estática do banco de dados é aceitável, e atualizações em tempo real não são essenciais.
Importante
Para garantir migrações online bem-sucedidas do MongoDB, o ChangeStream deve ser habilitado no servidor MongoDB de origem. Sem o ChangeStream, quaisquer modificações feitas aos dados após a migração inicial não são capturadas. Portanto, use o modo de migração online somente se o ChangeStream estiver habilitado no servidor MongoDB de origem.
Conectividade: Dependendo do mandato de segurança da sua organização e da configuração da rede, escolha entre Público e Privado.
- Use Public quando os servidores de origem e destino são acessíveis pela internet através de IPs públicos. Permite suporte a serviços que requerem acessibilidade externa.
- Use Privado quando os servidores de origem ou destino forem acessíveis exclusivamente através de IPs privados dentro de uma rede virtual. Reforça a segurança ao eliminar a exposição à internet pública.
Selecione Seguinte para continuar.
Passo 2: Selecionar o alvo
Neste passo, seleciona uma conta existente no Azure DocumentDB e fornece a sua cadeia de ligação.
Selecione a subscrição, o grupo de recursos e a conta do Azure DocumentDB nos menus suspensos.
Forneça a cadeia de conexão para a conta do Azure DocumentDB.
Certifique-se de que o IP listado no ecrã é permitido no firewall do Azure DocumentDB.
Selecione Seguinte para continuar.
Passo 3: Selecionar Database Migration Service (DMS)
Azure Database Migration Service é um serviço que migra dados para e de Azure plataformas de dados, utilizando infraestrutura cloud para transferência de dados, em vez de depender de recursos locais. Escolha uma instância de Azure Database Migration Service existente no menu suspenso ou selecione Criar DMS para criar um novo serviço de migração.
Importante
Certifique-se de que o fornecedor de recursos Microsoft.DataMigration está registado na sua subscrição. Só precisas de o fazer uma vez por subscrição.
Selecione Seguinte para continuar.
Passo 4: Configurar a conectividade
Este ecrã depende do modo de conectividade que escolheste no Passo 1.
Conectividade pública
Na conectividade pública, o trabalho de migração conecta-se à sua fonte e destino através da internet pública. Para permitir a comunicação, é necessário atualizar os firewalls de origem e alvo. Para permitir a comunicação a partir dos servidores DMS, adicione os endereços IP listados no ecrã aos firewalls de origem e alvo. Para mais informações sobre o modelo de rede, consulte Conectividade pública. Para orientações sobre configuração de firewalls, consulte configure Azure cluster DocumentDB firewall.
Conectividade privada
Na conectividade privada, o trabalho de migração corre dentro da sua rede virtual. Para comunicar de forma segura com as suas redes virtuais, utilizamos emparelhamento de redes virtuais. Para mais informações sobre o modelo de rede, consulte Conectividade privada.
A ferramenta permite o peering com duas redes virtuais, uma para a origem e outra para o destino. Consoante a configuração da sua rede, selecione a assinatura, os grupos de recursos e as redes virtuais nos menus suspensos.
Na secção de Configuração do DMS , selecione um intervalo CIDR que não entre em conflito com as suas redes virtuais.
Execute o(s) script(s) PowerShell fornecido(s) no ecrã para permitir a integração da rede virtual.
Selecione Seguinte para continuar.
Passo 5: Coleções selecionadas
Neste passo, seleciona as coleções a serem incluídas no trabalho de migração. Selecione da lista de coleções utilizando as opções de pesquisa disponíveis. Coleções que já existem no destino são automaticamente marcadas como Sim na coluna Existe no Alvo .
Sugestão
Certifica-te de selecionar todas as coleções que queres incluir, pois a lista de coleções não pode ser adicionada depois de criada a tarefa de migração.
Selecione Seguinte para continuar.
Passo 6: Confirmar e começar
Revise os detalhes da vaga de migração antes de selecionar Iniciar Migração. Se os detalhes precisarem de ser atualizados, use o botão Editar Detalhes .
Depois de o trabalho de migração ser criado com sucesso, é automaticamente redirecionado para a página Ver Empregos Existentes
Sugestão
As tarefas de migração de dados são executadas em Azure Database Migration Service. Portanto, não é obrigado a estar ligado aos ambientes de origem e destino durante a migração dos dados. O estado é atualizado no painel de controlo em intervalos frequentes.
Monitorizar empregos de migração existentes
Utilize a aba Ver Tarefas Existentes para monitorizar o estado de migração dos trabalhos inicializados. Os empregos são listados com base no DMS selecionado. Usa o botão de Alterar DMS para alterar a tua seleção.
O estado é atualizado automaticamente em intervalos frequentes. Os trabalhos offline são automaticamente concluídos assim que os snapshots selecionados da coleção são copiados para o destino. No entanto, as migrações online precisam de ser efetuadas manualmente.
Para ver o estado da coleção, selecione uma linha da tabela.
Monitorizar migrações online
As migrações online, ao contrário das migrações offline, não são concluídas automaticamente. Em vez disso, eles são executados continuamente até serem finalizados manualmente ao selecionar Conclusão.
Para concluir a migração online, siga estas etapas na ordem dada:
O botão Cutover é ativado assim que a carga inicial de dados de todas as coleções está concluída. Nesta fase, o trabalho encontra-se na fase de replicação, a copiar continuamente atualizações da instância de origem para a instância de destino para que esteja atualizada com as modificações mais recentes.
Quando estiver pronto para executar a transferência de migração, interrompa todas as transações de entrada para as coleções de origem que estão sendo migradas.
A Replication Gap mostra o intervalo de tempo entre a última atualização e a hora atual.
Monitorize as alterações de replicação na tabela e espere até que a métrica Replication Changes Played se estabilize. Uma métrica estável de Replication Changes Played indica que todas as atualizações da fonte são copiadas com sucesso para o destino.
Selecione Cutover quando a diferença de replicação for mínima para todas as coleções e a métrica Replication Changes Played estiver estável.
Valide manualmente se a contagem de linhas é a mesma entre as coleções de origem e de destino.
Observação
Realizar a operação de corte sem validar que a origem e o destino estão sincronizados pode resultar em perda de dados.
Cenários de migração
A Extensão de Migração do Azure DocumentDB suporta vários ambientes de origem, incluindo instâncias MongoDB a correr no Azure, datacenters on-premises e outros fornecedores de cloud. A extensão oferece opções de conectividade flexíveis para acomodar diferentes configurações de rede e requisitos de segurança.
Ambientes de origem suportados
A tabela seguinte resume as fontes de migração suportadas:
| Ambiente de origem | Description |
|---|---|
| Dentro do Azure | Instâncias MongoDB a correr em Máquinas Virtuais do Azure ou outros serviços alojados no Azure |
| Nas instalações | Servidores MongoDB a correr no seu centro de dados local ou infraestrutura privada |
| Outros fornecedores de cloud | Instâncias MongoDB alojadas noutras plataformas cloud |
Conectividade pública
No modo de conectividade pública, o Azure Database Migration Service (DMS) liga-se aos servidores de origem e destino através da internet pública. O DMS fornece endereços IP estáticos que adiciona às listas de permissão do firewall tanto no servidor de origem como no de destino. O DMS utiliza uma rede pública virtual partilhada para todas as migrações dentro de uma determinada região. Embora esta rede virtual seja partilhada entre os clientes, cada trabalho de migração é executado num nó de trabalho privado isolado para garantir o isolamento ao nível do trabalho.
Use a conectividade pública quando:
- Os seus servidores de origem e destino são acessíveis através de endereços IP públicos.
- As políticas de segurança da sua organização permitem ligações através da internet pública.
- Precisas de uma configuração mais simples, sem configuração de rede virtual.
Para permitir a conectividade pública:
No assistente de migração, selecione Público como modo de conectividade.
Tome nota dos endereços IP estáticos exibidos no assistente.
Adicione estes endereços IP à lista de permissões de firewall no seu servidor MongoDB de origem.
Adicione estes endereços IP ao firewall Azure DocumentDB.
Conectividade privada
No modo de conectividade privada, o DMS provisiona uma rede virtual privada dedicada para cada trabalho de migração e estabelece uma ligação com as suas redes virtuais de origem e destino. Isto significa que cada tarefa recebe tanto nós de computação isolados como uma rede isolada, garantindo que não haja tráfego entre tarefas e que não existam caminhos de rede partilhados entre clientes.
A extensão suporta até duas redes virtuais:
- Rede virtual de origem: A rede virtual onde o seu servidor MongoDB de origem é acessível.
- Rede virtual Target: A rede virtual onde o seu cluster Azure DocumentDB está acessível.
Use a conectividade privada quando:
- Os servidores de origem ou destino não são acessíveis pela internet pública.
- A sua organização exige que todo o tráfego flua através de redes privadas.
- É preciso evitar exposição pública na internet.
De outros fornecedores de cloud ou on-premises
Use as suas ferramentas de VPN preferidas para configurar a conectividade de rede entre o Azure e o seu ambiente de origem noutra cloud ou on-premises.
A partir de um endpoint privado no Azure
Configure endpoints privados para as redes virtuais de destino e de origem.
Para permitir a conectividade privada:
No assistente de migração, selecione Privado como modo de conectividade.
Selecione a subscrição, o grupo de recursos e a rede virtual do seu ambiente de origem.
Selecione a subscrição, grupo de recursos e rede virtual para o ambiente de destino.
Na secção de Configuração do DMS , selecione um intervalo CIDR que não conflite com as suas redes virtuais existentes.
Execute os scripts PowerShell fornecidos no assistente para habilitar a integração e o peering de redes virtuais.
Importante
Ao usar acesso privado, uma única rede virtual pode suportar apenas um trabalho de migração ativo de cada vez. Para executar múltiplos trabalhos simultâneos, use diferentes redes virtuais para cada trabalho.
Registe o fornecedor de recursos Microsoft.DataMigration na sua subscrição
Para garantir que o provedor de recursos Microsoft.DataMigration está registado na sua subscrição, pode seguir estes passos:
Azure portal
Vá ao portal do Azure e navegue até à sua subscrição.
No menu esquerdo, selecione Fornecedores de Recursos em Definições.
Procura por Microsoft. DataMigration na caixa de pesquisa no topo.
Se não estiver registado, selecione-o e selecione o botão Registar .
CLI do Azure
Abra o Azure Cloud Shell ou o seu terminal local.
Execute o seguinte comando para registar o fornecedor de recursos:
az provider register --namespace Microsoft.DataMigration
PowerShell
Abra o Azure Cloud Shell ou o seu PowerShell local.
Execute o seguinte comando para registar o fornecedor de recursos:
Register-AzResourceProvider -ProviderNamespace "Microsoft.DataMigration"
FAQ
Porque é que os views estão ausentes no ecrã de seleção de coleção quando o Azure DocumentDB suporta views?
O Azure DocumentDB suporta a criação de novas vistas. No entanto, a extensão de migração não oferece suporte para migrar vistas existentes.
Depois de terminada a migração, pode sempre recriar as vistas.
Que coleções e bases de dados são ignoradas ao migrar do MongoDB para o Azure DocumentDB?
As seguintes bases de dados e coleções são consideradas internas para o MongoDB:
| Categoria | Description |
|---|---|
| Bases de dados | administrador, local, configuração do sistema |
| Coleções | Qualquer coleção com prefixo system. |
Os trabalhos de migração correm localmente na minha máquina?
O assistente de migração no VS Code requer conectividade de rede da sua máquina local tanto para o ambiente de origem como para o de destino. Esta conectividade é usada para enumerar bases de dados e coleções e para submeter o trabalho de migração. Depois de submetido o trabalho, podes fechar o VS Code ou desligar dos ambientes de origem e de destino.
A migração de dados é executada inteiramente pelo Azure Database Migration Service (DMS), um serviço Azure alojado que gere todo o movimento de dados. O DMS não depende da tua máquina local ou do VS Code para execução de tarefas, por isso a conectividade local não é necessária após a submissão do trabalho.
Posso renomear bases de dados e coleções durante a migração?
A extensão não suporta a renomeação de bases de dados e coleções durante a migração.
Como devo configurar os firewalls do meu servidor de origem para evitar problemas de conectividade?
A configuração de rede necessária depende do modo de conectividade selecionado:
- Modo público: Deve permitir que os endereços IP exibidos no assistente tanto no firewall de origem como no de destino permitam a comunicação.
- Modo privado: Deve ativar a integração da rede virtual para que os servidores DMS possam comunicar de forma segura com os endpoints de origem e destino dentro da rede virtual.
Consulte também conectividade do VS Code
Quantas bases de dados e coleções posso migrar numa única migração?
Pode incluir um número ilimitado de coleções numa única migração.
Quantos empregos de migração posso gerir simultaneamente?
Podes executar múltiplos trabalhos de migração ao usar acesso público. No entanto, ao usar acesso privado, uma única rede virtual pode suportar apenas um trabalho ativo de cada vez. Para executar múltiplos trabalhos com acesso privado, é necessário usar uma rede virtual diferente para cada trabalho.
Que tipo de registos gera a extensão?
A extensão regista erros, avisos e outros registos de diagnóstico no diretório de registos predefinido:
-
Windows -
C:\Users\<username>\.dmamongo\logs\ -
Linux -
~/.dmamongo/logs -
macOS -
/Users/<username>/.dmamongo/logs