Partilhar via


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.

Diagrama de etapas de migração.

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.

Nota

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 Migrar o MongoDB para o Azure Cosmos DB para MongoDB offline usando DMS.

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 o SSR (repetição do lado do servidor) está habilitado.

    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.

    Nota

    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.

  • Quando utilizar uma aplicação de firewall à frente da base de dados de origem, poderá ter de adicionar regras de firewall para permitir que o Azure Database Migration Service aceda à base 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 contêiner provisionado RU/s; 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

Captura de tela do recurso MongoDB Server-Side Retry.

E se estiver desativado, recomendamos que o ative como mostrado abaixo

Captura de tela do MongoDB Server-Side Retry enable.

Registar o fornecedor de recursos

Registe o fornecedor de recursos Microsoft.DataMigration antes de criar a primeira instância do Database Migration Service.

  1. Inicie sessão no portal do Azure. Pesquise e selecione Subscrições.

    Mostrar subscrições no portal

  2. 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.

    Mostrar fornecedores de recursos

  3. Procure migração e selecione Registrar para Microsoft.DataMigration.

    Registar o fornecedor de recursos

Criar uma instância

  1. No portal do Azure, selecione + Criar um recurso, procure o Azure Database Migration Service e selecione Azure Database Migration Service na lista pendente.

    Azure Marketplace

  2. No ecrã Azure Database Migration Service, selecione Criar.

    Criar instância do Azure Database Migration Service

  3. 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.

  4. Selecione o local no qual você deseja criar a instância do Serviço de Migração de Banco de Dados do Azure.

  5. 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.

  6. 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.

    Configurar as definições da instância do Azure Database Migration Service

  7. 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.

  1. No portal do Azure, selecione Todos os serviços, procure Azure Database Migration Service e selecione Azure Database Migration Services.

    Localize todas as instâncias do Serviço de Migração de Banco de Dados do Azure

  2. 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.

    Usar o painel Pesquisar no portal do Azure

  3. Selecione + Novo Projeto de Migração.

  4. 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].

    Criar projeto do Serviço de Migração de Banco de Dados

  5. 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

  1. 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

    É desencorajado usar um certificado auto-assinado 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.

    Especifique os detalhes da origem

  2. Selecione Guardar.

    Nota

    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

  1. 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.

    Especifique os detalhes do destino

  2. Selecione Guardar.

Mapear para as bases de dados de destino

  1. 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 (RUs). Saiba mais sobre os preços do Azure Cosmos DB.

    Mapear para as bases de dados de destino

  2. Selecione Guardar.

  3. 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.

    Nota

    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.

    Selecionar tabelas de coleções

  4. Selecione Guardar.

  5. No ecrã Resumo da migração, na caixa de texto Nome da atividade, indique um nome para a atividade de migração.

    Resumo da 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.

    Estado da atividade

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.

    Repetição do estado da atividade

Verificar dados no Azure Cosmos DB

  1. Faça alterações no banco de dados MongoDB de origem.

  2. Conecte-se ao Azure Cosmos DB para verificar se os dados são replicados do servidor MongoDB de origem.

    Captura de tela que mostra onde você pode verificar se os dados foram replicados.

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.

    Captura de tela que mostra a opção de menu Concluir.

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

Próximos passos

  • Consulte as diretrizes de migração para cenários adicionais no Guia de Migração de Banco de Dados da Microsoft.