Tutorial: migrar o PostgreSQL para o Banco de Dados do Azure para PostgreSQL online usando o DMS (clássico) por meio do portal do Azure

Você pode usar o Serviço de Migração de Banco de Dados do Azure para migrar os bancos de dados de uma instância local do PostgreSQL para o Banco de Dados do Azure para PostgreSQL com um tempo de inatividade mínimo para o aplicativo. Neste tutorial, você vai migrar o banco de dados de exemplo listdb de uma instância local do PostgreSQL 13.10 para o Banco de Dados do Azure para PostgreSQL usando uma atividade de migração online no Serviço de Migração de Banco de Dados do Azure.

Neste tutorial, você aprenderá como:

  • Migrar o esquema de exemplo usando o utilitário pg_dump.
  • Crie uma instância do Serviço de Migração de Banco de Dados do Azure.
  • Criar um projeto de migração no Serviço de Migração de Banco de Dados do Azure.
  • Executar a migração.
  • Monitorar a migração.
  • Executar a substituição da migração.

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. Criptografamos o disco para evitar o roubo de dados durante o processo de migração

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 e introduzir erros.

Pré-requisitos

Para concluir este tutorial, você precisará:

  • Baixe e instale o PostgreSQL Community Edition. A versão do PostgreSQL Server de origem deve ser >= 9.4. Para saber mais, confira Versões do banco de dados PostgreSQL com suporte.

    Observe também que a versão do Banco de Dados de destino do Azure para PostgreSQL precisa ser igual ou posterior à versão local do PostgreSQL. Por exemplo, o PostgreSQL 12 pode migrar para o Banco de Dados do Azure para PostgreSQL >= versão 12, mas não para o Banco de Dados do Azure para PostgreSQL 11.

  • Crie um servidor do Banco de Dados do Azure para PostgreSQL.

  • 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 usando o ExpressRoute ou a VPN. Para obter mais informações sobre como criar uma rede virtual, confira a Documentação da Rede Virtual e, especificamente, os artigos de Início Rápido com detalhes passo a passo.

    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) para a sua rede virtual não bloqueiam a porta de saída 443 de ServiceTag para ServiceBus, Storage e AzureMonitor. 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.

  • Configurar o Firewall do Windows para acesso ao mecanismo de banco de dados.

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

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

  • Crie uma regra de firewall no nível de servidor para o Banco de Dados do Azure para PostgreSQL a fim de permitir o acesso do Serviço de Migração de Banco de Dados do Azure aos bancos de dados de destino. Forneça o intervalo de sub-redes da rede virtual usado para o Serviço de Migração de Banco de Dados do Azure.

  • Habilite a replicação lógica no arquivo postgresql.config e defina os seguintes parâmetros:

    • wal_level = lógico
    • max_replication_slots = [número de slots]; é recomendável configurar como cinco slots
    • max_wal_senders =[número de tarefas simultâneas] – O parâmetro max_wal_senders define o número de tarefas simultâneas que podem ser executadas; é recomendável definir como 10 tarefas
  • O usuário deve ter a função REPLICATION no servidor que hospeda o banco de dados de origem.

Importante

Todas as tabelas do banco de dados existente precisam de uma chave primária para que as alterações possam ser sincronizadas com o banco de dados de destino.

Migrar o esquema de exemplo

Para concluir todos os objetos de banco de dados, como procedimentos armazenados, índices e esquemas de tabela, é necessário extrair o esquema do banco de dados de origem e aplicar ao banco de dados.

  1. Use o comando pg_dump -s para criar um arquivo de despejo de esquema para um banco de dados.

    pg_dump -O -h hostname -U db_username -d db_name -s > your_schema.sql
    

    Por exemplo, para criar um arquivo de despejo de esquema para o banco de dados listdb:

    pg_dump -O -h localhost -U postgres -d listdb -s -x > listdbSchema.sql
    

    Para obter mais informações sobre como usar o utilitário pg_dump, confira os exemplos do tutorial pg-dump.

  2. Crie um banco de dados vazio no ambiente de destino, que é o Banco de Dados do Azure para PostgreSQL.

    Para obter detalhes sobre como criar um banco de dados e se conectar a ele, confira o artigo Criar um servidor do Banco de Dados do Azure para PostgreSQL no portal do Azure.

  3. Importe o esquema para o banco de dados de destino criado restaurando o arquivo de despejo do esquema.

    psql -h hostname -U db_username -d db_name < your_schema.sql
    

    Por exemplo:

    psql -h mypgserver-20170401.postgres.database.azure.com  -U postgres -d migratedb < listdbSchema.sql
    

    Observação

    O serviço de migração habilita ou desabilita internamente as chaves estrangeiras e os gatilhos para garantir a confiabilidade e a solidez da migração de dados. Por isso, você não precisa se preocupar em fazer modificações no esquema de banco de dados de destino.

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.

    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.

    Exibir provedores de recursos

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

    Registrar provedor de recursos

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

  1. No menu do portal do Azure ou na Home page, selecione Criar um recurso. Pesquise e selecione o Serviço de Migração de Banco de Dados do Azure.

    Azure Marketplace

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

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

    Selecione o Tipo de servidor de origem e o Tipo de servidor de destino apropriados e escolha a opção Serviço de Migração de Banco de Dados (clássico).

    Cenário de seleção do Serviço de Migração de Banco de Dados (clássico)

  3. Na tela básica Criar Serviço de Migração:

    • Selecione a assinatura.
    • Crie um grupo de recursos ou escolha um existente.
    • Especifique um nome para a instância do Serviço de Migração de Banco de Dados do Azure.
    • Selecione a localização na qual deseja criar a instância do Serviço de Migração de Banco de Dados do Azure.
    • Escolha Azure como o modo de serviço.
    • Selecione um tipo de preço. Para obter mais informações sobre os custos e camadas de preços, consulte a página de preços.

    Configurar a instância básica do Serviço de Migração de Banco de Dados do Azure

    • Selecione Avançar: Rede.
  4. Na tela de rede Criar Serviço de Migração:

    • Selecione uma rede virtual existente ou crie uma. A rede virtual fornece ao Serviço de Migração de Banco de Dados do Azure acesso ao servidor de origem e à instância de destino. 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.

    Configurar uma rede de instâncias do Serviço de Migração de Banco de Dados do Azure

    • Selecione Examinar + Criar para examinar os detalhes e, em seguida, selecione Criar para criar o serviço.

    • Após alguns instantes, sua instância do Serviço de Migração de Banco de Dados do Azure é criado e estará pronto para uso:

    Serviço de migração criado

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 uma Pesquisa de 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, procure o nome da instância do Serviço de Migração de Banco de Dados do Azure que você criou, selecione a instância e, em seguida, selecione + Novo Projeto de Migração.

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

  3. Na tela Novo projeto de migração, especifique um nome para o projeto, na caixa de texto Tipo de servidor de origem, selecione PostgreSQL, na caixa de texto Tipo de servidor de destino, selecione Banco de Dados do Azure para PostgreSQL.

  4. Na seção Tipo de atividade de migração, selecione Migração de dados online.

    Captura de tela de Criar um novo projeto de migração.

    Observação

    Como alternativa, você pode escolher Criar somente o projeto para criar o projeto de migração agora e executar a migração posteriormente.

  5. Selecione Criar e executar atividades para usar com êxito Serviço de Migração de Banco de Dados do Azure para migrar dados.

Especifique as configurações de origem

  1. Na tela Adicionar Detalhes da Origem, especifique os detalhes da conexão para a instância de origem do PostgreSQL.

    Captura de tela de uma tela Adicionar detalhes da origem.

Detalhes do destino favorito

  1. Na tela Detalhes do destino, especifique os detalhes da conexão para o servidor flexível de destino do Banco de Dados do Azure para PostgreSQL, que é a instância pré-provisionada na qual o esquema foi implantado usando pg_dump.

    Captura de tela de Adicionar detalhes do destino.

  2. Clique em Avançar: Selecionar bancos de dados e, em seguida, na tela Selecionar bancos de dados, mapeie o banco de dados de origem e de destino para a migração.

    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.

    Captura de tela de mapeamento de um bancos de dados com a tela de destino.

  3. Clique em Avançar: Selecionar tabelas e, na tela Selecionar tabelas, selecione as tabelas necessárias que precisam ser migradas.

    Captura de tela da seleção de tabelas para migração.

  4. Clique em Avançar: Definir configurações de migração e, na tela Definir configurações de migração, aceite os valores padrão.

    Captura de tela das configurações de migração.

  5. Na tela Resumo de migração, na caixa de texto Nome da atividade, especifique um nome para a atividade de migração e, em seguida, revise o resumo para garantir que os detalhes de origem e destino correspondam ao que foi especificado anteriormente.

    Captura de tela do resumo de migração.

Execute a migração

  • Selecione Iniciar migração.

    A janela de atividade de migração é exibida e o Status da atividade deve ser atualizado para Backup em andamento.

Monitorar a migração

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

    Captura de tela do monitoramento de migração.

  2. Quando a migração for concluída, em Nome do Banco de Dados, selecione um banco de dados específico para obter o status de migração das operações Carregamento de dados completo e Sincronização incremental de dados.

    Observação

    Carregamento de dados completo mostra o status de migração da carga inicial, enquanto Sincronização de dados incremental mostra o status da CDA (captura de dados de alterações).

    Captura de tela dos detalhes de carga completa da migração.

    Captura de tela dos detalhes de carga total da migração.

Executar migração de substituição

Após a conclusão do carregamento completo inicial, os bancos de dados são marcados como Pronto para substituição.

  1. Quando estiver pronto para concluir a migração de banco de dados, selecione Iniciar substituição.

  2. Aguarde até que o contador Alterações pendentes mostre 0 para que todas as transações de entrada do banco de dados de origem sejam interrompidas, marque a caixa de seleção Confirmar e selecione Aplicar.

    Captura de tela da conclusão da substituição.

  3. Quando o status da migração de banco de dados mostrar Concluído, recrie sequências (se aplicável) e conecte seus aplicativos à nova instância do Banco de Dados do Azure para PostgreSQL de destino.

Próximas etapas