Tutorial: Migrar o MongoDB para o Azure Cosmos DB para RU do MongoDB online usando o Serviço de Migração de Banco de Dados do Azure
APLICA-SE A: MongoDB
Importante
Leia este guia completo antes de executar as etapas de migração. Atualmente, o Serviço de Migração de Banco de Dados do Azure não oferece suporte a migrações para uma conta vCore do Azure Cosmos DB para MongoDB.
Este guia de migração do MongoDB faz parte da série sobre migração do MongoDB. As etapas críticas de migração do MongoDB são pré-migração, migração e pós-migração, conforme mostrado abaixo.
Visão geral da migração de dados online do MongoDB para o Azure Cosmos DB usando DMS
Você pode usar o Serviço de Migração de Banco de Dados do Azure para executar uma migração online (tempo de inatividade mínimo) de bancos de dados de uma instância local ou na nuvem do MongoDB para o Azure Cosmos DB para MongoDB.
Este tutorial demonstra as etapas associadas ao uso do Serviço de Migração de Banco de Dados do Azure para migrar dados do MongoDB para o Azure Cosmos DB:
- Crie uma instância do Azure Database Migration Service.
- Crie um projeto de migração.
- Especifique a fonte.
- Especifique o destino.
- Mapear às bases de dados de destino.
- Executar a migração.
- Monitorizar a migração.
- Verifique os dados no Azure Cosmos DB.
- Conclua a migração quando estiver pronto.
Neste tutorial, você migra um conjunto de dados no MongoDB hospedado em uma máquina virtual do Azure para o Azure Cosmos DB para MongoDB com tempo de inatividade mínimo por meio do Serviço de Migração de Banco de Dados do Azure. Se você ainda não tiver uma fonte do MongoDB configurada, consulte Instalar e configurar o MongoDB em uma VM do Windows no Azure.
Usar o Serviço de Migração de Banco de Dados do Azure para executar uma migração online requer a criação de uma instância com base na camada de preço Premium.
Importante
Para uma experiência de migração ideal, a Microsoft recomenda a criação de uma instância do Serviço de Migração de Banco de Dados do Azure na mesma região do Azure que o banco de dados de destino. A movimentação de dados entre regiões ou regiões geográficas pode tornar o processo de migração mais lento.
Gorjeta
No Serviço de Migração de Banco de Dados do Azure, você pode migrar seus bancos de dados offline ou enquanto eles estiverem online. Em uma migração offline , o tempo de inatividade do aplicativo começa quando a migração é iniciada. Para limitar o tempo de inatividade ao tempo necessário para o novo ambiente após a migração, use uma migração online . Recomendamos que você teste uma migração offline para determinar se o tempo de inatividade é aceitável. Se o tempo de inatividade esperado não for aceitável, faça uma migração online.
Este artigo descreve uma migração online do MongoDB para o Azure Cosmos DB para MongoDB. Para uma migração offline, consulte Tutorial: Migrar o MongoDB para o Azure Cosmos DB para o MongoDB RU offline usando o Serviço de Migração de Banco de Dados do Azure.
Pré-requisitos
Para concluir este tutorial, precisa de:
Conclua as etapas de pré-migração , como estimar a taxa de transferência, escolher uma chave de partição e a política de indexação.
Crie uma conta do Azure Cosmos DB para MongoDB e verifique se a opção Impedir erros de limitação de taxa para operações do Azure Cosmos DB para MongoDB está habilitada.
Nota
No momento, não há suporte para DMS se você estiver migrando para uma conta do Azure Cosmos DB para MongoDB provisionada com o modo sem servidor.
Crie uma Rede Virtual do Microsoft Azure para o Serviço de Migração de Banco de Dados do Azure usando o modelo de implantação do Azure Resource Manager, que fornece conectividade site a site para seus servidores de origem locais usando ExpressRoute ou VPN.
Durante a configuração da rede virtual, se você usar a Rota Expressa com emparelhamento de rede para a Microsoft, adicione os seguintes pontos de extremidade de serviço à sub-rede na qual o serviço será provisionado:
- Ponto final da base de dados de destino (por exemplo, ponto final do SQL, ponto final do Azure Cosmos DB, etc.)
- Ponto final de armazenamento
- Ponto final do Service Bus
Esta configuração é necessária porque o Azure Database Migration Service não tem conectividade à Internet.
Certifique-se de que as regras do NSG (Network Security Group) da rede virtual não bloqueiem as seguintes portas de comunicação: 53, 443, 445, 9354 e 10000-20000. Para obter mais detalhes sobre a filtragem de tráfego do NSG da rede virtual, veja o artigo Filtrar o tráfego de rede com grupos de segurança de rede.
Abrir a firewall do Windows para permitir ao Azure Database Migration Service aceder ao servidor de origem do MongoDB, que, por predefinição, é a porta TCP 27017.
Ao usar um dispositivo de firewall na frente do(s) seu(s) banco(s) de dados de origem, talvez seja necessário adicionar regras de firewall para permitir que o Serviço de Migração de Banco de Dados do Azure acesse o(s) banco(s) de dados de origem para migração.
Configurar as tentativas do lado do servidor do Azure Cosmos DB para uma migração eficiente
Os clientes que migram do MongoDB para o Azure Cosmos DB se beneficiam dos recursos de governança de recursos, que garantem a capacidade de utilizar totalmente seu RU/s provisionado de taxa de transferência. O Azure Cosmos DB pode limitar uma determinada solicitação do Serviço de Migração de Dados durante a migração se essa solicitação exceder o RU/s provisionado pelo contêiner; nesse caso, esse pedido tem de ser repetido. O Serviço de Migração de Dados é capaz de executar tentativas, no entanto, o tempo de ida e volta envolvido no salto de rede entre o Serviço de Migração de Dados e o Azure Cosmos DB afeta o tempo de resposta geral dessa solicitação. Melhorar o tempo de resposta para solicitações limitadas pode reduzir o tempo total necessário para a migração. O recurso de repetição do lado do servidor do Azure Cosmos DB permite que o serviço intercete códigos de erro de aceleração e tente novamente com um tempo de ida e volta muito menor, melhorando drasticamente os tempos de resposta da solicitação.
Você pode encontrar o recurso de Repetição do Lado do Servidor na folha Recursos do portal do Azure Cosmos DB
E se estiver desativado, recomendamos que o ative como mostrado abaixo
Registar o fornecedor de recursos
Registe o fornecedor de recursos Microsoft.DataMigration antes de criar a primeira instância do Database Migration Service.
Inicie sessão no portal do Azure. Pesquise e selecione Subscrições.
Selecione a assinatura na qual você deseja criar a instância do Serviço de Migração de Banco de Dados do Azure e selecione Provedores de recursos.
Procure migração e selecione Registrar para Microsoft.DataMigration.
Criar uma instância
No portal do Azure, selecione + Criar um recurso, procure Serviço de Migração de Banco de Dados do Azure e selecione Serviço de Migração de Banco de Dados do Azure na lista suspensa.
No ecrã Azure Database Migration Service, selecione Criar.
No ecrã Criar Serviço de Migração, especifique um nome para o serviço, a subscrição e um grupo de recursos novo ou já existente.
Selecione o local no qual você deseja criar a instância do Serviço de Migração de Banco de Dados do Azure.
Selecione uma rede virtual existente ou crie uma nova.
A rede virtual fornece ao Serviço de Migração de Banco de Dados do Azure acesso à instância MongoDB de origem e à conta de destino do Azure Cosmos DB.
Para obter mais informações sobre como criar uma rede virtual no portal do Azure, consulte o artigo Criar uma rede virtual usando o portal do Azure.
Selecione uma SKU no nível de preço Premium.
Nota
As migrações online são suportadas apenas quando se utiliza o escalão Premium. Para obter mais informações sobre os custos e os escalões de preços, veja a página de preços.
Selecione Criar para criar o serviço.
Criar um projeto de migração
Após a criação do serviço, localize-o no portal do Azure, abra-o e crie um projeto de migração novo.
No portal do Azure, selecione Todos os serviços, procure Azure Database Migration Service e selecione Azure Database Migration Services.
Na tela Serviços de Migração de Banco de Dados do Azure, procure o nome da instância do Serviço de Migração de Banco de Dados do Azure que você criou e selecione a instância.
Como alternativa, você pode descobrir a instância do serviço de Migração de Banco de Dados do Azure no painel de pesquisa no portal do Azure.
Selecione + Novo Projeto de Migração.
Na tela Novo projeto de migração, especifique um nome para o projeto, na caixa de texto Tipo de servidor de origem, selecione MongoDB, na caixa de texto Tipo de servidor de destino, selecione Azure Cosmos DB para MongoDB e, em seguida, para Escolher tipo de atividade, selecione Migração de dados online [visualização].
Selecione Salvar e, em seguida, selecione Criar e executar atividade para criar o projeto e executar a atividade de migração.
Especifique os detalhes da origem
Na tela Source details, especifique os detalhes da conexão para o servidor MongoDB de origem.
Importante
O Serviço de Migração de Banco de Dados do Azure não oferece suporte ao Azure Cosmos DB como origem.
Há três modos para se conectar a uma fonte:
Modo padrão, que aceita um nome de domínio totalmente qualificado ou um endereço IP, número de porta e credenciais de conexão.
Modo de cadeia de conexão, que aceita uma cadeia de conexão MongoDB conforme descrito no artigo Formato URI da cadeia de conexão.
Dados do armazenamento do Azure, que aceita uma URL SAS de contêiner de blob. Selecione Blob contém dumps BSON se o contêiner de blob tiver dumps BSON produzidos pela ferramenta bsondump do MongoDB e desmarque-o se o contêiner contiver arquivos JSON.
Se você selecionar essa opção, verifique se a cadeia de conexão da conta de armazenamento aparece no formato:
https://blobnameurl/container?SASKEY
Além disso, com base nas informações de despejo de tipo no Armazenamento do Azure, lembre-se dos seguintes detalhes.
Para dumps BSON, os dados dentro do contêiner blob devem estar no formato bsondump, de modo que os arquivos de dados sejam colocados em pastas nomeadas após os bancos de dados contendo no formato collection.bson. Os arquivos de metadados (se houver) devem ser nomeados usando o formato collection.metadata.json.
Para capturas JSON, os ficheiros no contentor de blobs têm de ser postos em pastas cujo nome é igual ao das bases de dados que contêm. Dentro de cada pasta de banco de dados, os arquivos de dados devem ser colocados em uma subpasta chamada "dados" e nomeados usando o formato collection.json. Os arquivos de metadados (se houver) devem ser colocados em uma subpasta chamada "metadados" e nomeados usando o mesmo formato, coleção.json. Os arquivos de metadados devem estar no mesmo formato produzido pela ferramenta bsondump do MongoDB.
Importante
É desaconselhável usar um certificado autoassinado no servidor MongoDB. No entanto, se for usado um, conecte-se ao servidor usando o modo de cadeia de conexão e verifique se a cadeia de conexão tem ""
&sslVerifyCertificate=false
Você pode usar o endereço IP para situações em que a resolução de nomes DNS não é possível.
Selecione Guardar.
O endereço do servidor de origem deve ser o endereço do primário se a origem for um conjunto de réplicas e o roteador se a origem for um cluster MongoDB fragmentado. Para um cluster MongoDB fragmentado, o Serviço de Migração de Banco de Dados do Azure deve ser capaz de se conectar aos fragmentos individuais no cluster, o que pode exigir a abertura do firewall em mais máquinas.
Especifique os detalhes do destino
Na tela Detalhes do destino de migração, especifique os detalhes da conexão para a conta do Azure Cosmos DB de destino, que é o Azure Cosmos DB pré-provisionado para a conta do MongoDB para a qual você está migrando seus dados do MongoDB.
Selecione Guardar.
Mapear para as bases de dados de destino
Na tela Mapear para bancos de dados de destino, mapeie o banco de dados de origem e de destino para migração.
Se o banco de dados de destino contiver o mesmo nome de banco de dados que o banco de dados de origem, o Serviço de Migração de Banco de Dados do Azure selecionará o banco de dados de destino por padrão.
Se a cadeia de caracteres Create aparecer ao lado do nome do banco de dados, isso indica que o Serviço de Migração de Banco de Dados do Azure não encontrou o banco de dados de destino e o serviço criará o banco de dados para você.
Neste ponto da migração, se você quiser compartilhar a taxa de transferência no banco de dados, especifique uma RU de taxa de transferência. No Azure Cosmos DB, você pode provisionar a taxa de transferência no nível do banco de dados ou individualmente para cada coleção. A taxa de transferência é medida em Unidades de Solicitação no Azure Cosmos DB (RUs). Saiba mais sobre os preços do Azure Cosmos DB.
Selecione Guardar.
Na tela Configuração de coleção, expanda a listagem de coleções e revise a lista de coleções que serão migradas.
O Serviço de Migração de Banco de Dados do Azure seleciona automaticamente todas as coleções existentes na instância do MongoDB de origem que não existem na conta de destino do Azure Cosmos DB. Se quiser remigrar coleções que já incluem dados, você precisa selecionar explicitamente as coleções nesta tela.
Você pode especificar o número de RUs que deseja que as coleções usem. Na maioria dos casos, um valor entre 500 (mínimo de 1000 para coleções fragmentadas) e 4000 deve ser suficiente. O Serviço de Migração de Banco de Dados do Azure sugere padrões inteligentes com base no tamanho da coleção.
Execute a migração e a coleta do banco de dados em paralelo usando várias instâncias do Serviço de Migração de Banco de Dados do Azure, se necessário, para acelerar a execução.
Você também pode especificar uma chave de fragmento para aproveitar o particionamento no Azure Cosmos DB para obter escalabilidade ideal. Certifique-se de revisar as práticas recomendadas para selecionar uma chave de fragmento/partição. Se você não tiver uma chave de partição, você sempre pode usá _id como a chave de estilhaço para uma melhor taxa de transferência.
Selecione Guardar.
No ecrã Resumo da migração, na caixa de texto Nome da atividade, indique um nome para a atividade de migração.
Execute a migração
Selecione Executar a migração.
A janela de atividade de migração é exibida e o Status da atividade é exibido.
Monitorize a migração
Na tela de atividade de migração, selecione Atualizar para atualizar a exibição até que o Status da migração seja exibido como Reprodução.
Nota
Você pode selecionar a Atividade para obter detalhes das métricas de migração no nível do banco de dados e da coleção.
Verificar dados no Azure Cosmos DB
Faça alterações no banco de dados MongoDB de origem.
Conecte-se ao Azure Cosmos DB para verificar se os dados são replicados do servidor MongoDB de origem.
Concluir a migração
Depois que todos os documentos da origem estiverem disponíveis no destino do Azure Cosmos DB, selecione Concluir no menu de contexto da atividade de migração para concluir a migração.
Esta ação terminará de reproduzir todas as alterações pendentes e concluirá a migração.
Otimização pós-migração
Depois de migrar os dados armazenados no banco de dados do MongoDB para o Azure Cosmos DB para MongoDB, você pode se conectar ao Azure Cosmos DB e gerenciar os dados. Você também pode executar outras etapas de otimização pós-migração, como otimizar a política de indexação, atualizar o nível de consistência padrão ou configurar a distribuição global para sua conta do Azure Cosmos DB. Para obter mais informações, consulte o artigo Otimização pós-migração.
Recursos adicionais
Tentando fazer o planejamento de capacidade para uma migração para o Azure Cosmos DB?
- Se tudo o que você sabe é o número de vCores e servidores em seu cluster de banco de dados existente, leia sobre como estimar unidades de solicitação usando vCores ou vCPUs
- Se você souber as taxas de solicitação típicas para sua carga de trabalho de banco de dados atual, leia sobre como estimar unidades de solicitação usando o planejador de capacidade do Azure Cosmos DB