Tutorial: Migração offline do MongoDB para a API do Azure Cosmos DB para MongoDB usando o DMSTutorial: Migrate MongoDB to Azure Cosmos DB's API for MongoDB offline using DMS

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.You can use Azure Database Migration Service to perform an offline (one-time) migration of databases from an on-premises or cloud instance of MongoDB to Azure Cosmos DB's API for MongoDB.

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

  • Criar 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 do MongoDB hospedado em uma Máquina Virtual do Azure para a API do Azure Cosmos DB para MongoDB usando o Serviço de Migração de Banco de Dados do Azure.In this tutorial, you migrate a dataset in MongoDB hosted in an Azure Virtual Machine to Azure Cosmos DB's API for MongoDB by using Azure Database Migration Service. Se não houver uma origem do MongoDB configurada, confira o artigo Instalar e configurar o MongoDB em uma VM do Windows no Azure.If you don't have a MongoDB source set up already, see the article 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, tais como estimar a taxa de transferência, escolher uma chave de partição e a política de indexação.Complete the pre-migration steps such as estimating throughput, choosing a partition key, and the indexing policy.

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

  • Criar uma VNET (Rede Virtual) do 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 usando o ExpressRoute ou a VPN.Create an Azure Virtual Network (VNet) for Azure Database Migration Service by using Azure Resource Manager deployment model, which provides site-to-site connectivity to your on-premises source servers by using either ExpressRoute or VPN. Para obter mais informações sobre como criar uma VNet, confira a Documentação da Rede Virtual e, especificamente, os artigos de Início Rápido com detalhes passo a passo.For more information about creating a VNet, see the Virtual Network Documentation, and especially the quickstart articles with step-by-step details.

    Observação

    Durante a configuração da VNET, se você usar ExpressRoute com emparelhamento de rede para Microsoft, adicione os seguintes pontos de extremidade de serviço à sub-rede na qual o serviço será provisionado:During VNet 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, ponto de extremidade do Cosmos DB, e assim por diante)Target database endpoint (for example, SQL endpoint, Cosmos DB endpoint, and so on)
    • 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 VNET não bloqueiam as seguintes portas de comunicação: 53, 443, 445, 9354 e 10000-20000.Ensure that your VNet Network Security Group (NSG) rules don't block the following communication ports: 53, 443, 445, 9354, and 10000-20000. Veja mais detalhes sobre a filtragem de tráfego do NSG da VNet do Azure no artigo Filtrar o tráfego de rede com grupos de segurança de rede.For more detail on Azure VNet NSG traffic filtering, see the article 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 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.When using a firewall appliance in front of your source database(s), you may need to add firewall rules to allow Azure Database Migration Service to access the source database(s) for migration.

Registrar o provedor de recursos Microsoft.DataMigrationRegister the Microsoft.DataMigration 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.

    Mostrar assinaturas do portal

  2. Selecione a assinatura na qual você deseja criar a instância do Serviço de Migração do Banco de Dados do Azure e, em seguida, selecione Provedores de recursos.Select the subscription in which you want to create the instance of the Azure Database Migration Service, and then select Resource providers.

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

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

    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.

    Criar 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.On the Create Migration Service screen, 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 VNet existente ou crie uma.Select an existing VNet or create a new one.

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

    Para mais informações sobre como criar uma VNet no portal do Azure, consulte o artigo Criar uma rede virtual usando o portal do Azure.For more information about how to create a VNet in the Azure portal, see the article Create a virtual network 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.

    Criar uma 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 que o serviço é criado, localize-o no portal do Azure, abra-o e, em seguida, crie um projeto de migração.After the service is created, locate it within the Azure portal, open it, and 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.

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

    Criar o projeto do Serviço de Migração de Banco de Dados

  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.

    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, o 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 de cadeia de conexão.Connection string mode, which accepts a MongoDB Connection string as described in the article 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 e anule a seleção se o contêiner contiver arquivos JSON.Select Blob contains BSON dumps if the blob container has BSON dumps produced by the MongoDB bsondump tool, and de-select it if the container contains JSON files.

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

    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.Also, based on the type dump information in Azure storage, keep the following detail in mind.

    • 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.For BSON dumps, the data within the blob container must be in bsondump format, such that data files are placed into folders named after the containing databases in the format collection.bson. Arquivos de metadados (se houver) devem ser nomeados usando o formato coleção.metadata.json.Metadata files (if any) should be named 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 devem ser inseridos em uma subpasta chamada “dados” e nomeados usando o formato collection.json.Within each database folder, data files must be placed in a subfolder called "data" and named using the format collection.json. Arquivos de metadados (se houver) devem ser inseridos em uma subpasta chamada “metadados” e nomeada usando o mesmo formato, collection.json.Metadata files (if any) must be placed in a subfolder called "metadata" and named 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.

    Você também pode usar o endereço IP para situações em que a resolução de nome do DNS não é possível.You can also use the IP Address for situations in which DNS name resolution isn't possible.

    Especifique as configurações de origem

  2. Clique em Salvar.Select Save.

Detalhes do destino favoritoSpecify target details

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

    Detalhes do destino favorito

  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 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ê.If the string 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 Cosmos DB, você pode provisionar a taxa de transferência no nível do banco de dados ou individualmente para cada coleção.In Cosmos DB, you can provision throughput either at the database-level or individually for each collection. A taxa de transferência é medida em RUs (Unidades de Solicitação).Throughput is measured in Request Units (RUs). Saiba mais sobre o preço do Azure Cosmos DB.Learn more about Azure Cosmos DB pricing.

    Mapear 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 auto selects all the collections that exist on the source MongoDB instance that don't exist on the target Azure Cosmos DB account. Se quiser migrar novamente as coleções que já contêm dados, você precisará selecionar as coleções nesta folha de forma explícita.If you want to remigrate collections that already include data, you need to explicitly select the collections on this blade.

    É possível especificar a quantidade de RUs a serem usados nas coleções.You can specify the amount 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 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.Perform the database migration and collection in parallel using multiple instances of Azure Database Migration Service, if necessary, 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. Não se esqueça de analisar as melhores práticas para selecionar uma chave fragmentada/de partição.Be sure to review the best practices for selecting a shard/partition key.

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

    Resumo da migração

Execute a migraçãoRun the migration

  • Selecione Executar migração.Select Run migration.

    A janela de atividade de migração aparece e o Status da atividade está Não Iniciado.The migration activity window appears, and the Status of the activity is Not started.

    Status da atividade

Monitorar a migraçãoMonitor the migration

  • Na tela de 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

    É 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.You can select the Activity to get details of database- and collection-level migration metrics.

    Status de atividade concluído

Verificar os dados no Cosmos DBVerify data in 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 completes, you can check your Azure Cosmos DB account to verify that all the collections were migrated successfully.

    Status de atividade concluído

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ê pode se conectar ao Azure Cosmos DB e gerenciar os dados.After you migrate the data stored in MongoDB database to Azure Cosmos DB’s API for MongoDB, you can connect to Azure Cosmos DB and manage the data. 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.You can also perform other post-migration optimization steps such as optimizing the indexing policy, update the default consistency level, or configure global distribution for your Azure Cosmos DB account. Para obter mais informações, confira o artigo Otimização pós-migração.For more information, see the Post-migration optimization article.

Recursos adicionaisAdditional resources

Próximas etapasNext steps