Partilhar via


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.

Diagrama de etapas de migração.

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.

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

Captura de tela que mostra onde encontrar o recurso Repetição do lado do servidor.

Se o recurso estiver desativado, selecione Ativar.

Captura de ecrã que mostra como ativar a Repetição do Lado do Servidor.

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.

    Captura de ecrã de Mostrar subscrições do 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.

    Captura de ecrã de Mostrar fornecedores de recursos.

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

    Captura de ecrã de Registar fornecedor de recursos.

Criar uma instância

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

    Captura de ecrã a mostrar o Azure Marketplace.

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

    Captura de ecrã que mostra como criar uma instância do Serviço de Migração de Base de Dados do Azure.

  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.

    Captura de tela que mostra as definições de configuração para a instância do Serviço de Migração de Banco de Dados do Azure.

  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.

    Captura de tela que mostra como localizar 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.

  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.

    Captura de tela que mostra as opções do projeto.

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

    Captura de tela que mostra a especificação de detalhes da fonte.

  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.

    Captura de tela que mostra a especificação dos 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 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.

    Captura de tela que mostra o mapeamento para bancos 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, 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.

    Captura de tela que mostra a seleção de 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.

    Captura de tela que mostra o resumo da nigration.

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.

Captura de tela que mostra o status 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 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.

Captura de tela que mostra o status da atividade concluída.

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.

Captura de tela que mostra onde verificar sua conta do Azure Cosmos DB para verificar se todas as coleções foram migradas com êxito.

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

Tentando fazer o planejamento de capacidade para uma migração para o Azure Cosmos DB?