Tutorial: Migrar o MongoDB offline para a API do Azure Cosmos DB para MongoDBTutorial: Migrate MongoDB to Azure Cosmos DB API for MongoDB offline

Use o Serviço de Migração de Banco de Dados do Azure para fazer uma migração offline (única) de bancos de dados de uma instância local ou de nuvem do MongoDB para a API do Azure Cosmos DB para MongoDB.Use Azure Database Migration Service to perform an offline, one-time migration of databases from an on-premises or cloud instance of MongoDB to the Azure Cosmos DB API for MongoDB.

Neste tutorial, você aprenderá como:In this tutorial, you learn how to:

  • Crie uma instância do Serviço de Migração de Banco de Dados do Azure.Create an instance of Azure Database Migration Service.
  • Criar um projeto de migração usando o Serviço de Migração de Banco de Dados do Azure.Create a migration project by using Azure Database Migration Service.
  • Executar a migração.Run the migration.
  • Monitorar a migração.Monitor the migration.

Neste tutorial, você migrará um conjunto de dados no MongoDB que é hospedado em uma máquina virtual do Azure.In this tutorial, you migrate a dataset in MongoDB that is hosted in an Azure virtual machine. Usando o Serviço de Migração de Banco de Dados do Azure, você migrará o conjunto de dados para a API do Azure Cosmos DB para MongoDB.By using Azure Database Migration Service, you migrate the dataset to the Azure Cosmos DB API for MongoDB. Se ainda não houver uma origem do MongoDB configurada, confira Instalar e configurar o MongoDB em uma VM do Windows no Azure.If you don't have a MongoDB source set up already, see Install and configure MongoDB on a Windows VM in Azure.

Pré-requisitosPrerequisites

Para concluir este tutorial, você precisará:To complete this tutorial, you need to:

  • Concluir as etapas de pré-migração, como estimar a taxa de transferência e escolher uma chave de partição.Complete the pre-migration steps, such as estimating throughput and choosing a partition key.

  • Criar uma conta da API do Azure Cosmos DB para MongoDB.Create an account for the Azure Cosmos DB API for MongoDB.

  • Criar uma Rede Virtual do Microsoft Azure para o Serviço de Migração de Banco de Dados do Azure usando o Azure Resource Manager.Create a Microsoft Azure Virtual Network for Azure Database Migration Service by using Azure Resource Manager. Este modelo de implantação fornece conectividade site a site com os servidores de origem locais usando o Azure ExpressRoute ou a VPN.This deployment model provides site-to-site connectivity to your on-premises source servers by using either Azure ExpressRoute or VPN. Para obter mais informações sobre como criar uma rede virtual, confira a documentação da Rede Virtual do Azure e, especificamente, os artigos de "início rápido" com detalhes passo a passo.For more information about creating a virtual network, see the Azure Virtual Network documentation, especially the "quickstart" articles with step-by-step details.

    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:During virtual network setup, if you use ExpressRoute with network peering to Microsoft, add the following service endpoints to the subnet in which the service will be provisioned:

    • Ponto de extremidade do banco de dados de destino (por exemplo, ponto de extremidade do SQL ou ponto de extremidade do Azure Cosmos DB)Target database endpoint (for example, SQL endpoint or Azure Cosmos DB endpoint)
    • Ponto de extremidade de armazenamentoStorage endpoint
    • Ponto de extremidade do barramento de serviçoService bus endpoint

    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.This configuration is necessary because Azure Database Migration Service lacks internet connectivity.

  • 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.Ensure that your network security group (NSG) rules for your virtual network don't block the following communication ports: 53, 443, 445, 9354, and 10000-20000. Para obter mais informações, consulte Filtrar o tráfego de rede com grupos de segurança de rede.For more information, see Filter network traffic with network security groups.

  • 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.Open your Windows firewall to allow Azure Database Migration Service to access the source MongoDB server, which by default is TCP port 27017.

  • Ao usar um dispositivo de firewall na frente dos 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.When you're using a firewall appliance in front of your source database, you might need to add firewall rules to allow Azure Database Migration Service to access the source database for migration.

Configurar o recurso de Repetição do Lado do ServidorConfigure the Server Side Retry feature

Você poderá se beneficiar das funcionalidades de governança de recursos se migrar do MongoDB para o Azure Cosmos DB.You can benefit from resource governance capabilities if you migrate from MongoDB to Azure Cosmos DB. Com essas funcionalidades, você poderá fazer uso completo das suas unidades de solicitação (RU/s) provisionadas de taxa de transferência.With these capabilities, you can make full use of your provisioned request units (RU/s) of throughput. O Azure Cosmos DB poderá restringir determinada solicitação do Serviço de Migração de Banco de Dados no decorrer da migração se essa solicitação exceder as RU/s provisionadas do contêiner.Azure Cosmos DB might throttle a particular Database Migration Service request in the course of migration, if that request exceeds the container-provisioned RU/s. Em seguida, essa solicitação precisará ser repetida.Then that request needs to be retried.

O Serviço de Migração de Banco de Dados tem a capacidade de executar repetições.Database Migration Service is capable of performing retries. É 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.It's important to understand that the round-trip time involved in the network hop between Database Migration Service and Azure Cosmos DB affects the overall response time of that request. Aprimorar o tempo de resposta para solicitações limitadas pode reduzir o tempo total necessário para a migração.Improving response time for throttled requests can shorten the total time needed for migration.

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 repita a operação com um tempo de ida e volta muito menor, aprimorando significativamente os tempos de resposta da solicitação.The Server Side Retry feature of Azure Cosmos DB allows the service to intercept throttle error codes and retry with a much lower round-trip time, dramatically improving request response times.

Para usar a Repetição do Lado do Servidor, no portal do Azure Cosmos DB, selecione Recursos > Repetição do Lado do Servidor.To use Server Side Retry, in the Azure Cosmos DB portal, select Features > Server Side Retry.

Captura de tela que mostra a localização do recurso Repetição do Lado do Servidor.

Se o recurso estiver desabilitado, selecione Habilitar.If the feature is disabled, select Enable.

Captura de tela que mostra como habilitar a Repetição do Lado do Servidor.

Registre o provedor de recursosRegister the resource provider

  1. Entre no portal do Azure, selecione Todos os serviços e selecione Assinaturas.Sign in to the Azure portal, select All services, and then select Subscriptions.

    Captura de tela que mostra as 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.Select the subscription in which you want to create the instance of Azure Database Migration Service, and then select Resource providers.

    Captura de tela que mostra os provedores de recursos.

  3. Pesquise por migração e, em seguida, à direita do Microsoft.DataMigration, selecione Registrar.Search for migration, and then to the right of Microsoft.DataMigration, select Register.

    Captura de tela que mostra como registrar o provedor de recursos.

Escolher uma instânciaCreate an instance

  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.In the Azure portal, select + Create a resource, search for Azure Database Migration Service, and then select Azure Database Migration Service from the drop-down list.

    Captura de tela que mostra o Azure Marketplace.

  2. Na tela Serviço de Migração de Banco de Dados do Azure, selecione Criar.On the Azure Database Migration Service screen, select Create.

    Captura de tela que mostra como criar uma instância do Serviço de Migração de Banco 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.On Create Migration Service, specify a name for the service, the subscription, and a new or existing resource group.

  4. Selecione a localização na qual deseja criar a instância do Serviço de Migração de Banco de Dados do Azure.Select the location in which you want to create the instance of Azure Database Migration Service.

  5. Selecione uma rede virtual existente ou crie uma.Select an existing virtual network or create a new one.

    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.The virtual network provides Azure Database Migration Service with access to the source MongoDB instance and the target Azure Cosmos DB account.

    Para obter mais informações sobre como criar uma rede virtual no portal do Azure, confira Criar uma rede virtual usando o portal do Azure.For more information about how to create a virtual network in the Azure portal, see Create a virtual network by using the Azure portal.

  6. Selecione um tipo de preço.Select a pricing tier.

    Para obter mais informações sobre os custos e camadas de preços, consulte a página de preços.For more information on costs and pricing tiers, see the pricing page.

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

  7. Selecione Criar para criar a conta.Select Create to create the service.

Criar um projeto de migraçãoCreate a migration project

Depois de criar o serviço, localize-o no portal do Azure e abra-o.After you create the service, locate it within the Azure portal, and open it. Em seguida, crie um projeto de migração.Then create a new migration project.

  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.In the Azure portal, select All services, search for Azure Database Migration Service, and then select 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, 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.On the Azure Database Migration Services screen, search for the name of Azure Database Migration Service instance that you created, and then select the instance.

  3. Selecione + Novo Projeto de Migração.Select + New Migration Project.

  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.On New migration project, specify a name for the project, and in the Source server type text box, select MongoDB. Na caixa de texto Tipo de servidor de destino, selecione CosmosDB (API do MongoDB) e, em Escolher tipo de atividade, selecione Migração de dados offline.In the Target server type text box, select CosmosDB (MongoDB API), and then for Choose type of activity, select Offline data migration.

    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.Select Create and run activity to create the project and run the migration activity.

Especifique as configurações de origemSpecify source details

  1. Na tela Detalhes da origem, especifique os detalhes da conexão do servidor de origem do MongoDB.On the Source details screen, specify the connection details for the source MongoDB server.

    Importante

    O Serviço de Migração de Banco de Dados do Azure não dá suporte ao Azure Cosmos DB como origem.Azure Database Migration Service doesn't support Azure Cosmos DB as a source.

    Há três modos para se conectar a uma origem:There are three modes to connect to a source:

    • O modo padrão, que aceita um nome de domínio totalmente qualificado ou um endereço IP, um número da porta e as credenciais de conexão.Standard mode, which accepts a fully qualified domain name or an IP address, port number, and connection credentials.

    • O modo de cadeia de conexão, que aceita uma cadeia de conexão do MongoDB, conforme descrito no artigo Formato de URI da cadeia de conexão.Connection string mode, which accepts a MongoDB connection string as described in Connection String URI Format.

    • Dados do armazenamento do Azure, que aceita um URL de SAS de contêiner de blob.Data from Azure storage, which accepts a blob container SAS URL. Selecione O blob contém despejos BSON se o contêiner de blob tiver despejos BSON produzidos pela ferramenta bsondump do MongoDB.Select Blob contains BSON dumps if the blob container has BSON dumps produced by the MongoDB bsondump tool. Não selecione essa opção se o contêiner contiver arquivos JSON.Don't select this option if the container contains JSON files.

      Se você escolher essa opção, verifique se a cadeia de conexão da conta de armazenamento é exibida no seguinte formato:If you select this option, be sure that the storage account connection string appears in the following format:

      https://blobnameurl/container?SASKEY
      

      Encontre essa cadeia de conexão SAS do contêiner de blob no Gerenciador de Armazenamento do Azure.You can find this blob container SAS connection string in Azure Storage explorer. A criação da SAS para o contêiner em questão fornece a você a URL no formato solicitado.Creating the SAS for the concerned container provides you the URL in the requested format.

      Além disso, com base nas informações de despejo de tipo do Armazenamento do Azure, tenha os seguintes detalhes em mente:Also, based on the type dump information in Azure Storage, keep the following in mind:

      • Para despejos BSON, os dados do contêiner de blob precisam estar no formato bsondump.For BSON dumps, the data within the blob container must be in the bsondump format. Coloque os arquivos de dados em pastas com os mesmos nomes dos bancos de dados no formato collection.bson.Place data files into folders named after the containing databases in the format collection.bson. Nomeie os arquivos de metadados usando o formato collection.metadata.json.Name any metadata files by using the format collection.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.For JSON dumps, the files in the blob container must be placed into folders named after the containing databases. Dentro de cada pasta de banco de dados, os arquivos de dados precisam ser colocados em uma subpasta chamada data e nomeados com o formato collection.json.Within each database folder, data files must be placed in a subfolder called data, and named by using the format collection.json. Coloque os arquivos de metadados em uma subpasta chamada metadata e nomeados com o mesmo formato, collection.json.Place any metadata files in a subfolder called metadata, and named by using the same format, collection.json. Os arquivos de metadados devem estar no mesmo formato que o produzido pela ferramenta bsondump MongoDB.The metadata files must be in the same format as produced by the MongoDB bsondump tool.

    Importante

    Não recomendamos que você use um certificado autoassinado no servidor MongoDB.We don't recommend that you use a self-signed certificate on the MongoDB server. Caso precise usar um, conecte-se ao servidor usando o modo de cadeia de conexão e verifique se a cadeia de conexão tem aspas ("").If you must use one, connect to the server by using the connection string mode, and ensure that your connection string has quotation marks ("").

    &sslVerifyCertificate=false
    

    Use também o endereço IP para situações em que a resolução de nomes DNS não seja possível.You can also use the IP address for situations in which DNS name resolution isn't possible.

    Captura de tela que mostra a especificação dos detalhes de origem.

  2. Clique em Salvar.Select Save.

Detalhes do destino favoritoSpecify target details

  1. Na tela Detalhes do destino de migração, especifique os detalhes de conexão para o banco de dados de destino do Azure Cosmos DB.On the Migration target details screen, specify the connection details for the target Azure Cosmos DB account. Essa conta é a API do Azure Cosmos DB pré-provisionada para a conta do MongoDB para a qual você está migrando os dados do MongoDB.This account is the pre-provisioned Azure Cosmos DB API for MongoDB account to which you're migrating your MongoDB data.

    Captura de tela que mostra a especificação dos detalhes de destino.

  2. Clique em Salvar.Select Save.

Mapear para bancos de dados de destinoMap to target databases

  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.On the Map to target databases screen, map the source and the target database for migration.

    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.If the target database contains the same database name as the source database, Azure Database Migration Service selects the target database by default.

    Se Criar for exibido 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ê.If Create appears next to the database name, it indicates that Azure Database Migration Service didn't find the target database, and the service will create the database for you.

    Neste momento da migração, é possível provisionar a taxa de transferência.At this point in the migration, you can provision throughput. 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.In Azure Cosmos DB, you can provision throughput either at the database level or individually for each collection. A taxa de transferência é medida em unidades de solicitação.Throughput is measured in request units. Saiba mais sobre o preço do Azure Cosmos DB.Learn more about Azure Cosmos DB pricing.

    Captura de tela que mostra o mapeamento para bancos de dados de destino.

  2. Clique em Salvar.Select Save.

  3. Na tela Configuração de coleção, expanda e analise a lista de coleções a ser migrada.On the Collection setting screen, expand the collections listing, and then review the list of collections that will be migrated.

    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.Azure Database Migration Service automatically selects all the collections that exist on the source MongoDB instance that don't exist on the target Azure Cosmos DB account. Caso deseje migrar novamente as coleções que já contêm dados, selecione as coleções neste painel de maneira explícita.If you want to remigrate collections that already include data, you need to explicitly select the collections on this pane.

    É possível especificar o número de RUs a serem usados nas coleções.You can specify the number of RUs that you want the collections to use. O Serviço de Migração de Banco de Dados do Azure sugere padrões inteligentes com base no tamanho da coleção.Azure Database Migration Service suggests smart defaults based on the collection size.

    Observação

    Execute a migração e a coleção de banco de dados em paralelo.Perform the database migration and collection in parallel. 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.If necessary, you can use multiple instances of Azure Database Migration Service to speed up the run.

    Também é possível especificar uma chave fragmentada para aproveitar o particionamento no Azure Cosmos DB e obter a escalabilidade ideal.You can also specify a shard key to take advantage of partitioning in Azure Cosmos DB for optimal scalability. Examine as melhores práticas para escolher uma chave de fragmentação/partição.Review the best practices for selecting a shard/partition key.

    Captura de tela que mostra a seleção de tabelas de coleções.

  4. Clique em Salvar.Select Save.

  5. Na tela Resumo de migração, na caixa de texto Nome da atividade, especifique um nome para a atividade de migração.On the Migration summary screen, in the Activity name text box, specify a name for the migration activity.

    Captura de tela que mostra o resumo da migração.

Execute a migraçãoRun the migration

Selecione Executar migração.Select Run migration. A janela da atividade de migração será exibida, e o status da atividade será Não iniciada.The migration activity window appears, and the status of the activity is Not started.

Captura de tela que mostra o status da atividade.

Monitorar a migraçãoMonitor the migration

Na tela da atividade de migração, selecione Atualizar para atualizar a exibição até que o status da migração seja exibido como Concluído.On the migration activity screen, select Refresh to update the display until the status of the migration shows as Completed.

Observação

Selecione a atividade para obter detalhes sobre as métricas de migração no nível do banco de dados e da coleção.You can select the activity to get details of database- and collection-level migration metrics.

Captura que mostra o status da atividade concluído.

Verificar os dados no Azure Cosmos DBVerify data in Azure Cosmos DB

Após a conclusão da migração, verifique sua conta do Azure Cosmos DB para confirmar se todas as coleções foram migradas com êxito.After the migration finishes, you can check your Azure Cosmos DB account to verify that all the collections were migrated successfully.

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

Otimização após a migraçãoPost-migration optimization

Depois de migrar os dados armazenados no banco de dados do MongoDB para a API do Azure Cosmos DB para MongoDB, você poderá se conectar ao Azure Cosmos DB e gerenciar os dados.After you migrate the data stored in MongoDB database to the Azure Cosmos DB API for MongoDB, you can connect to Azure Cosmos DB and manage the data. Você também poderá executar outras etapas de otimização pós-migração.You can also perform other post-migration optimization steps. 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.These might include optimizing the indexing policy, updating the default consistency level, or configuring global distribution for your Azure Cosmos DB account. Para obter mais informações, confira Otimização pós-migração.For more information, see Post-migration optimization.

Próximas etapasNext steps

Examine as diretrizes de migração para obter outros cenários no Guia de Migração de Banco de Dados do Azure.Review migration guidance for additional scenarios in the Azure Database Migration Guide.