Tutorial: migrar o MongoDB para o Azure Cosmos DB para a RU do MongoDB online usando o Serviço de Migração de Banco de Dados do Azure

APLICA-SE AO: MongoDB

Importante

Leia este guia inteiro antes de realizar as etapas de migração. Atualmente, o Serviço de Migração de Banco de Dados do Azure não dá suporte a migrações para uma conta do Azure Cosmos DB para MongoDB vCore.

Este guia de migração do MongoDB é parte da série sobre a migração do MongoDB. As etapas críticas de migração do MongoDB são a pré-migração, a migração e a pós-migração, conforme mostrado abaixo.

Diagram of migration steps.

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

Use o Serviço de Migração de Banco de Dados do Azure para fazer uma migração online (com tempo de inatividade mínimo) de bancos de dados de uma instância local ou de nuvem do MongoDB para o Azure Cosmos DB for 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 Serviço de Migração de Banco de Dados do Azure.
  • Crie um projeto de migração.
  • Especifique a origem.
  • Especifique o destino.
  • Mapeie para os bancos de dados de destino.
  • Executar a migração.
  • Monitorar a migração.
  • Verifique os dados no Azure Cosmos DB.
  • Conclua a migração quando você estiver pronto.

Neste tutorial, você migrará um conjunto de dados no MongoDB hospedado em uma máquina virtual do Azure para o Azure Cosmos DB for MongoDB com tempo de inatividade mínimo usando o Serviço de Migração de Banco de Dados do Azure. Se ainda não houver uma origem do MongoDB configurada, confira Instalar e configurar o MongoDB em uma VM do Windows no Azure.

Observação

Usar o Serviço de Migração de Banco de Dados do Azure para executar uma migração online exige a criação de uma instância com base no tipo de preço Premium.

Importante

Para obter uma experiência ideal de migração, 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 como o banco de dados de destino. Mover dados entre regiões ou áreas geográficas pode desacelerar o processo de migração.

Dica

No Serviço de Migração de Banco de Dados do Azure, você pode migrar seus bancos de dados offline ou enquanto estiverem online. Na migração offline, o tempo de inatividade do aplicativo começa quando a migração é iniciada. Para limitar o tempo de inatividade que leva para transferir para o novo ambiente após a migração, use uma migração online. É recomendável testar 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 ao Azure Cosmos DB for MongoDB. Para uma migração offline, confira Migrar o MongoDB para o Azure Cosmos DB for MongoDB offline usando o DMS.

Pré-requisitos

Para concluir este tutorial, você precisará:

  • Concluir as etapas de pré-migração, tais 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 for MongoDB e verifique se a SSR (repetição do lado do servidor) está habilitada.

    Observação

    No momento, não há suporte para o DMS se você está migrando para uma conta do Azure Cosmos DB for MongoDB provisionada com o modo sem servidor.

  • Criar 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 aos servidores de origem locais por meio do ExpressRoute ou da VPN.

    Observação

    Durante a configuração da rede virtual, se você usar o ExpressRoute com emparelhamento de rede com 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 do SQL, ponto de extremidade do Azure Cosmos DB e assim por diante)
    • Ponto de extremidade de armazenamento
    • Ponto de extremidade do barramento de serviço

    Essa configuração é necessária porque o Serviço de Migração de Banco de Dados do Azure não tem conectividade com a internet.

  • Verifique se as regras do NSG (grupo de segurança de rede) da rede virtual não bloqueiam 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, confira o artigo Filtrar o tráfego de rede com grupos de segurança de rede.

  • Abra o Firewall do Windows para permitir que o Serviço de Migração de Banco de Dados do Azure acesse o servidor de origem do MongoDB, que, por padrão, é a porta TCP 27017.

  • Ao usar um dispositivo de firewall na frente de seus bancos 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 os bancos de dados de origem para migração.

Configurar Repetições do Lado do Servidor do Azure Cosmos DB Server para uma migração eficiente

Os clientes que migram do MongoDB para o Azure Cosmos DB se beneficiam de funcionalidades de governança de recursos, que garantem a capacidade de utilizar completamente as RU/s de taxa de transferência provisionadas. O Azure Cosmos DB poderá restringir uma determinada solicitação do Serviço de Migração de Dados no decorrer da migração se essa solicitação exceder as RU/s provisionadas do contêiner; em seguida, essa solicitação precisará ser repetida. O Serviço de Migração de Dados é capaz de executar repetições. 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. Aprimorar o tempo de resposta para solicitações limitadas pode reduzir o tempo total necessário para a migração. O recurso Repetição do Lado do Servidor do Azure Cosmos DB permite que o serviço intercepte os códigos de erro de restrição e tente novamente com um tempo de ida e volta muito menor, aprimorando drasticamente os tempos de resposta da solicitação.

Você pode encontrar a funcionalidade Repetição do Lado do Servidor na folha Recursos do portal do Azure Cosmos DB

Screenshot of MongoDB Server-Side Retry feature.

Se ele estiver Desabilitado, recomendamos habilitá-lo, conforme mostrado abaixo

Screenshot of MongoDB Server-Side Retry enable.

Registre o provedor de recursos

Registre o provedor de recursos Microsoft.DataMigration antes de criar sua primeira instância do Serviço de Migração de Banco de Dados.

  1. Entre no portal do Azure. Pesquise e selecione Assinaturas.

    Show portal subscriptions

  2. Selecione a assinatura na qual deseja criar a instância do Serviço de Migração de Banco de Dados do Azure e, em seguida, selecione Provedores de recursos.

    Show resource providers

  3. Pesquise por migração, depois selecione Registrar para Microsoft.DataMigration.

    Register resource provider

Escolher uma instância

  1. No portal do Azure, selecione + Criar um recurso, pesquise Serviço de Migração de Banco de Dados do Azure e, em seguida, selecione Serviço de Migração de Banco de Dados do Azure na lista suspensa.

    Azure Marketplace

  2. Na tela Serviço de Migração de Banco de Dados do Azure, selecione Criar.

    Create Azure Database Migration Service instance

  3. Na tela Criar Serviço de Migração, especifique um nome para o serviço, a assinatura e um grupo de recurso novo ou existente.

  4. Selecione a localização na qual deseja criar a instância do Serviço de Migração de Banco de Dados do Azure.

  5. Escolha uma rede virtual existente ou crie uma.

    A rede virtual fornece ao Serviço de Migração de Banco de Dados do Azure o acesso à instância de origem do MongoDB e à conta de destino do Azure Cosmos DB.

    Para obter mais informações sobre como criar uma rede virtual no portal do Azure, confira o artigo Criar uma rede virtual usando o portal do Azure.

  6. Selecione um SKU do tipo de preço Premium.

    Observação

    Há suporte para migrações online somente ao usar a camada Premium. Para obter mais informações sobre os custos e camadas de preços, consulte a página de preços.

    Configure Azure Database Migration Service instance settings

  7. Selecione Criar para criar a conta.

Criar um projeto de migração

Depois que o serviço é criado, localize-o no portal do Azure, abra-o e, em seguida, crie um projeto de migração.

  1. Faça logon no portal do Azure, selecione + criar um recurso, procure o serviço de migração de banco de dados do Azure e, em seguida, selecione serviço de migração de banco de dados do Azure na lista suspensa.

    Locate all instances of Azure Database Migration Service

  2. Na tela Serviços de Migração de Banco de Dados do Azure, pesquise o nome da instância do Serviço de Migração de Banco de Dados do Azure que você criou e, em seguida, 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 do portal do Azure.

    Use the Search pane in the Azure portal

  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 for MongoDB. Em Escolher tipo de atividade, selecione Migração de dados online [versão prévia].

    Create Database Migration Service project

  5. Selecione Salvar e, em seguida, Criar e executar atividade para criar o projeto e executar a atividade de migração.

Especifique as configurações de origem

  1. Na tela Detalhes da origem, especifique os detalhes da conexão do servidor de origem do MongoDB.

    Importante

    O Serviço de Migração de Banco de Dados do Azure não dá suporte ao Azure Cosmos DB como origem.

    Há três modos para se conectar a uma origem:

    • O modo padrão, que aceita um nome de domínio totalmente qualificado ou um endereço IP, o número da porta e as credenciais de conexão.

    • O modo de cadeia de conexão, que aceita uma cadeia de conexão do MongoDB, conforme descrito no artigo Formato de URI de cadeia de conexão.

    • Dados do armazenamento do Azure, que aceita um URL de SAS de contêiner de blob. Selecione O blob contém despejos BSON se o contêiner de blob tiver despejos BSON produzidos pela ferramenta bsondump do MongoDB e anule a seleçã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 é exibida no formato:

      https://blobnameurl/container?SASKEY
      

      Além disso, com base nas informações de despejo de tipo no Armazenamento do Azure, tenha os detalhes a seguir em mente.

      • Para despejos BSON, os dados dentro do contêiner de blobs devem estar no formato bsondump, tal que os arquivo de dados sejam inseridos em pastas nomeadas de acordo com os bancos de dados que as contêm no formato collection.bson. Arquivos de metadados (se houver) devem ser nomeados usando o formato coleção.metadata.json.

      • Para despejos JSON, os arquivos no contêiner de blobs devem ser inseridos em pastas nomeadas de acordo com os bancos de dados que as contêm. Dentro de cada pasta de banco de dados, os arquivos de dados devem ser inseridos em uma subpasta chamada “dados” e nomeados usando o formato collection.json. Arquivos de metadados (se houver) devem ser inseridos em uma subpasta chamada “metadados” e nomeada usando o mesmo formato, collection.json. Os arquivos de metadados devem estar no mesmo formato que o produzido pela ferramenta bsondump MongoDB.

    Importante

    Não é recomendado usar um certificado autoassinado no servidor do MongoDB. No entanto, se um certificado for usado, 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 nome DNS não é possível.

    Specify source details

  2. Selecione Salvar.

    Observação

    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 do roteador se a origem for um cluster fragmentado do MongoDB. Para um cluster fragmentado do MongoDB, 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 computadores.

Detalhes do destino favorito

  1. Na tela de Detalhes de destino da migração, especifique os detalhes de conexão da conta do Azure Cosmos DB de destino, que é a conta do MongoDB do Azure Cosmos DB pré-provisionada para a qual os dados do MongoDB serão migrados.

    Specify target details

  2. Selecione Salvar.

Mapear para bancos de dados de destino

  1. No são mapeados para os bancos de dados de destino tela, a origem e o banco de dados de destino para migração do mapa.

    Se o banco de dados de destino contiver o mesmo nome de banco de dados do 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 Criar for exibida ao lado do nome do banco de dados, isso indicará 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ê.

    Nesse momento da migração, caso deseje a taxa de transferência de compartilhamento 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 RUs (Unidades de Solicitação). Saiba mais sobre o preço do Azure Cosmos DB.

    Map to target databases

  2. Selecione Salvar.

  3. Na tela Configuração de coleção, expanda e analise a lista de coleções a ser migrada.

    O Serviço de Migração de Banco de Dados do Azure seleciona automaticamente todas as coleções na instância de origem do MongoDB que não estão presentes na conta de destino do Azure Cosmos DB. Se quiser migrar novamente as coleções que já contêm dados, você precisará selecionar as coleções nesta tela de forma explícita.

    É possível especificar o número de RUs a serem usados nas coleções. Na maioria dos casos, um valor entre 500 (no mínimo 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.

    Observação

    Execute a migração de banco de dados e a coleção 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.

    Também é possível especificar uma chave fragmentada para aproveitar o particionamento no Azure Cosmos DB e obter a escalabilidade ideal. Não se esqueça de analisar as melhores práticas para selecionar uma chave fragmentada/de partição. Se você não tem uma chave de partição, pode usar _id como a chave de fragmentação para obter melhor taxa de transferência.

    Select collections tables

  4. Selecione Salvar.

  5. Na tela Resumo de migração, na caixa de texto Nome da atividade, especifique um nome para a atividade de migração.

    Migration summary

Execute a migração

  • Selecione Executar migração.

    A janela de atividade de migração aparece e o Status da atividade é exibido.

    Activity status

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

    Observação

    É possível selecionar a Atividade para saber detalhes sobre as métricas de migração no nível do banco de dados e da coleção.

    Activity status replaying

Verificar os dados no Azure Cosmos DB

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

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

    Screenshot that shows where you can verify that the data was replicated.

Concluir a migração

  • Depois que todos os documentos da origem estiverem disponíveis no Azure Cosmos DB de destino, selecione Concluir no menu de contexto da atividade de migração para concluir a migração.

    Esta ação finalizará a reprodução de todas as alterações pendentes e concluirá a migração.

    Screenshot that shows the Finish menu option.

Otimização após a migração

Depois de migrar os dados armazenados no banco de dados do MongoDB para o Azure Cosmos DB for 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, confira o artigo Otimização pós-migração.

Recursos adicionais

Próximas etapas