Compartilhar via


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 é compatível com 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.

Diagrama das etapas de migração.

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

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, consulte Tutorial: Migrar o MongoDB para a Unidade de Solicitação do Azure Cosmos DB for MongoDB offline usando o Serviço de Migração de Banco de Dados do Azure.

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 opção Impedir erros de limitação de fluxo para operações do Azure Cosmos DB for MongoDB 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.

    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, casa essa solicitação exceda 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

Captura de tela do recurso Repetição do Lado do Servidor do MongoDB.

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

Captura de tela da opção habilitar Repetição do Lado do Servidor do MongoDB.

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.

    Captura de tela de Mostrar assinaturas do portal.

  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.

    Captura de tela de Mostrar provedores de recursos.

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

    Captura de tela de Registrar o Provedor de Recursos.

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.

    Captura de tela do Azure Marketplace.

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

    Captura de tela de uma instância do Serviço de Migração de Banco de Dados do Azure.

  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.

    Captura de tela de Criar uma instância do Serviço de Migração de Banco de Dados do Azure.

  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.

    Captura de tela de 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, 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.

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

    Captura de tela de Criar projeto do Serviço de migração de banco de dados.

  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.

    Captura de tela de Especificar detalhes da fonte.

  2. Selecione Salvar.

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

    Captura de tela de Especificar detalhes do destino.

  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 produtuvidade é medida em Unidades de Solicitação (RUs) no do Azure Cosmos DB. Saiba mais sobre o preço do Azure Cosmos DB.

    Captura de tela do Mapa para os bancos de dados de destino.

  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.

    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 tiver uma chave de partição, poderá usar _id como a chave de fragmentação para obter melhor produtividade.

    Captura de tela de Selecionar tabelas de coleções.

  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.

    Captura de tela do Resumo da Migração.

Execute a migração

Selecione Executar migração.

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

Captura de tela do Status da Atividade.

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.

Captura de tela do Status da Atividade em reprodução.

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.

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

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

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