Tutorial: Migrar o MongoDB para o Azure Cosmos DB para MongoDB RU offline 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. Use a extensão do Azure Cosmos DB para MongoDB no Azure Data Studio para migrar seus workfloads do MongoDB offline para o Azure Cosmos DB para MongoDB vCore.

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.

Diagram of migration steps.

Visão geral da migração de dados offline do MongoDB para o Azure Cosmos DB usando DMS

Use o Serviço de Migração de Banco de Dados do Azure para executar uma migração offline e única de bancos de dados de uma instância local ou na nuvem do MongoDB para o Azure Cosmos DB para MongoDB.

Neste tutorial, irá aprender a:

  • Crie uma instância do Azure Database Migration Service.
  • Crie um projeto de migração usando o Serviço de Migração de Banco de Dados do Azure.
  • Executar a migração.
  • Monitorizar a migração.

Neste tutorial, você migra um conjunto de dados no MongoDB hospedado em uma máquina virtual do Azure. Usando o Serviço de Migração de Banco de Dados do Azure, você migra o conjunto de dados para o Azure Cosmos DB para MongoDB. Se você ainda não tiver uma fonte do MongoDB configurada, consulte Instalar e configurar o MongoDB em uma VM do Windows no Azure.

Pré-requisitos

Para concluir este tutorial, precisa de:

  • Conclua as etapas de pré-migração , como estimar a taxa de transferência e escolher uma chave de partição.

  • Crie uma conta para o Azure Cosmos DB para MongoDB.

    Nota

    No momento, o DMS não é suportado 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 Gerenciador de Recursos do Azure. Esse modelo de implantação fornece conectividade site a site para seus servidores de origem locais usando a Rota Expressa do Azure ou VPN. Para obter mais informações sobre como criar uma rede virtual, consulte a documentação da Rede Virtual do Azure, especialmente os artigos de "início rápido" com detalhes passo a passo.

    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 de extremidade do banco de dados de destino (por exemplo, ponto de extremidade SQL ou ponto de extremidade do Azure Cosmos DB)
    • 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 (grupo de segurança de rede) para a rede virtual não bloqueiem as seguintes portas de comunicação: 53, 443, 445, 9354 e 10000-20000. Para obter mais informações, veja 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.

  • Se estiver a 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 o recurso de repetição do lado do servidor

Você pode se beneficiar dos recursos de governança de recursos se migrar do MongoDB para o Azure Cosmos DB. Com esses recursos, você pode fazer pleno uso de suas unidades de solicitação provisionadas (RU/s) de taxa de transferência. O Azure Cosmos DB pode limitar uma solicitação específica do Serviço de Migração de Banco de Dados durante a migração, se essa solicitação exceder o RU/s provisionado em contêiner. Em seguida, esse pedido precisa ser repetido.

O Serviço de Migração de Banco de Dados é capaz de executar tentativas. É importante entender que o tempo de ida e volta envolvido no salto de rede entre o Serviço de Migração de Banco 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 Server Side Retry 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.

Para usar a Repetição do Lado do Servidor, no portal do Azure Cosmos DB, selecione Repetição do Lado do Servidor de Recursos>.

Screenshot that shows where to find the Server Side Retry feature.

Se o recurso estiver desativado, selecione Ativar.

Screenshot that shows how to enable Server Side Retry.

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.

    Show portal subscriptions

  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.

    Show resource providers

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

    Register resource provider

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.

    Screenshot that shows Azure Marketplace.

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

    Screenshot that shows how to create an instance of Azure Database Migration Service.

  3. Em Criar Serviço de Migração, especifique um nome para o serviço, a assinatura e um grupo de recursos novo ou 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 Criar uma rede virtual usando o portal do Azure.

  6. Selecione um escalão de preço.

    Para obter mais informações sobre os custos e os escalões de preços, veja a página de preços.

    Screenshot that shows configuration settings for the instance of Azure Database Migration Service.

  7. Selecione Criar para criar o serviço.

Criar um projeto de migração

Depois de criar o serviço, localize-o no portal do Azure e abra-o. Em seguida, crie um novo projeto de migração.

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

    Screenshot that shows how to locate all instances of Azure Database Migration Service.

  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.

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

  4. Em Novo projeto de migração, especifique um nome para o projeto e, 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 NoSQL e, em seguida, para Escolher tipo de atividade, selecione Migração de dados offline.

    Screenshot that shows project options.

  5. 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 em 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. Não selecione essa opçã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 seguinte formato:

      https://blobnameurl/container?SASKEY
      

      Você pode encontrar essa cadeia de conexão SAS de contêiner de blob no Gerenciador de Armazenamento do Azure. A criação da SAS para o contêiner em questão fornece a URL no formato solicitado.

      Além disso, com base nas informações de despejo de tipo no Armazenamento do Azure, lembre-se do seguinte:

      • Para dumps BSON, os dados dentro do contêiner de blob devem estar no formato bsondump. Coloque os arquivos de dados em pastas com o nome dos bancos de dados que contêm no formato collection.bson. Nomeie todos os arquivos de metadados 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 data e nomeados usando o formato collection.json. Coloque todos os arquivos de metadados em uma subpasta chamada metadados e nomeada usando o mesmo formato, collection.json. Os arquivos de metadados devem estar no mesmo formato produzido pela ferramenta bsondump do MongoDB.

    Importante

    Não recomendamos que você use um certificado autoassinado no servidor MongoDB. Se você precisar usar um, conecte-se ao servidor usando o modo de cadeia de conexão e verifique se a cadeia de conexão tem aspas ("").

    &sslVerifyCertificate=false
    

    Você também pode usar o endereço IP para situações em que a resolução de nomes DNS não é possível.

    Screenshot that shows specifying source details.

  2. Selecione Guardar.

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. Essa conta é a conta pré-provisionada do Azure Cosmos DB para MongoDB para a qual você está migrando seus dados do MongoDB.

    Screenshot that shows specifying target details.

  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 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, você pode provisionar a 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. Saiba mais sobre os preços do Azure Cosmos DB.

    Screenshot that shows mapping to target databases.

  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, selecione explicitamente as coleções neste painel.

    Você pode especificar o número de RUs que deseja que as coleções usem. 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. Se necessário, você pode usar várias instâncias do Serviço de Migração de Banco de Dados do Azure 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. Analise as práticas recomendadas para selecionar uma chave de fragmento/partição.

    Screenshot that shows selecting collections tables.

  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.

    Screenshot that shows the nigration summary.

Execute a migração

Selecione Executar a migração. A janela de atividade de migração é exibida e o status da atividade é Não iniciado.

Screenshot that shows the activity status.

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 apareça como Concluído.

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.

Screnshot that shows the activity status completed.

Verificar dados no Azure Cosmos DB

Após a conclusão da migração, você pode verificar sua conta do Azure Cosmos DB para verificar se todas as coleções foram migradas com êxito.

Screenshot that shows where to check your Azure Cosmos DB account to verify that all the collections were migrated successfully.

Otimização pós-migração

Depois de migrar os dados armazenados no banco de dados 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. Isso pode incluir a otimização da política de indexação, a atualização do nível de consistência padrão ou a configuração da distribuição global para sua conta do Azure Cosmos DB. Para obter mais informações, consulte Otimização pós-migração.

Recursos adicionais

Próximos passos

Revise as diretrizes de migração para cenários adicionais no Guia de Migração do Banco de Dados do Azure.