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.
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
Se ele estiver Desabilitado, recomendamos habilitá-lo, conforme mostrado abaixo
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.
Entre no portal do Azure. Pesquise e selecione Assinaturas.
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.
Pesquise por migração, depois selecione Registrar para Microsoft.DataMigration.
Escolher uma instância
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.
Na tela Serviço de Migração de Banco de Dados do Azure, selecione Criar.
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.
Selecione a localização na qual deseja criar a instância do Serviço de Migração de Banco de Dados do Azure.
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.
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.
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.
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.
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.
Selecione + Novo Projeto de Migração.
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].
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
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.
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
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.
Selecione Salvar.
Mapear para bancos de dados de destino
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.
Selecione Salvar.
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.
Selecione Salvar.
Na tela Resumo de migração, na caixa de texto Nome da atividade, especifique um nome para a atividade de migração.
Execute a migração
Selecione Executar migração.
A janela de atividade de migração aparece e o Status da atividade é exibido.
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.
Verificar os dados no Azure Cosmos DB
Faça alterações em seu banco de dados MongoDB de origem.
Conecte-se ao Azure Cosmos DB para verificar se os dados estão replicados do servidor MongoDB de origem.
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.
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
Tentando fazer um planejamento de capacidade para uma migração para o Microsoft Azure Cosmos DB?
- Se você sabe apenas o número de vCores e servidores do cluster de banco de dados existente, leia sobre como estimar unidades de solicitação com vCores ou vCPUs
- Se souber as taxas de solicitação típicas da carga de trabalho do banco de dados atual, leia sobre como estimar unidades de solicitação usando o planejador de capacidade do Azure Cosmos DB