Partilhar via


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

Importante

Recomendamos que você use o novo serviço de migração no Banco de Dados do Azure para PostgreSQL para uma experiência de migração mais simplificada e eficiente. Este serviço simplifica o processo dando suporte a vários ambientes de origem, garantindo uma transição sem complicações para o Banco de Dados do Azure para PostgreSQL.

Para obter mais informações sobre o Serviço de Migração de Banco de Dados do Azure, consulte o artigo O que é o Serviço de Migração de Banco de Dados 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 do PostgreSQL local para o Banco de Dados do Azure para PostgreSQL com o mínimo de tempo de inatividade para o aplicativo. Neste tutorial, você migra 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 a atividade de migração online no Serviço de Migração de Banco de Dados do Azure.

Neste tutorial, irá aprender a:

  • Migre o esquema de exemplo usando o utilitário pg_dump.
  • Crie uma instância do Azure Database Migration Service.
  • Crie um projeto de migração no Serviço de Migração de Banco de Dados do Azure.
  • Executar a migração.
  • Monitorizar a migração.
  • Execute a substituição de migração.

Usar o Serviço de Migração de Banco de Dados do Azure para executar uma migração online requer a criação de uma instância com base na camada de preço Premium. Encriptamos o disco para evitar o roubo de dados durante o processo de migração

Importante

Para uma experiência de migração ideal, 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 que o banco de dados de destino. Mover dados entre regiões ou geografias pode retardar o processo de migração e introduzir erros.

Pré-requisitos

Para concluir este tutorial, precisa de:

  • Baixe e instale o PostgreSQL community edition. A versão de origem do PostgreSQL Server deve ser >= 9.4. Para obter mais informações, consulte Versões com suporte do PostgreSQL no Banco de Dados do Azure para PostgreSQL.

    Observe também que a versão de destino do Banco de Dados do Azure para PostgreSQL deve 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 Banco de Dados do Azure para o servidor PostgreSQL.

  • Crie 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 para seus servidores de origem locais usando a Rota Expressa ou VPN. Para obter mais informações sobre como criar uma rede virtual, consulte a Documentação da Rede Virtual e, especialmente, os artigos de início rápido com detalhes passo a passo.

    Durante a configuração da rede virtual, se utilizar o ExpressRoute com emparelhamento de rede para a Microsoft, adicione os seguintes pontos de extremidade de serviço à sub-rede na qual o serviço será provisionado:

    • Ponto final da base de dados de destino (por exemplo, ponto final do SQL, ponto final do Azure Cosmos DB, etc.)
    • Ponto final de armazenamento
    • Ponto final do Service Bus

    Esta configuração é necessária porque o Azure Database Migration Service não tem conectividade à Internet.

  • Certifique-se de que as regras do NSG (Grupo de Segurança de Rede) para sua rede virtual não bloqueiem a porta de saída 443 do ServiceTag para ServiceBus, Storage e AzureMonitor. Para obter mais detalhes sobre a filtragem de tráfego NSG de rede virtual, consulte o artigo Filtrar tráfego de rede com grupos de segurança de rede.

  • Configure 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 PostgreSQL Server 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 para permitir que o Serviço de Migração de Banco de Dados do Azure acesse os bancos de dados de destino. Forneça o intervalo de sub-redes da rede virtual utilizada no Azure Database Migration Service.

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

    • wal_level = logical.
    • max_replication_slots = [número de slots], recomendo a configuração para 5 slots.
    • max_wal_senders = [número de tarefas simultâneas]. O max_wal_senders parâmetro define o número de tarefas simultâneas que podem ser executadas, recomendo a configuração para 10 tarefas.
  • O usuário deve ter a REPLICATION função no servidor que hospeda o banco de dados de origem.

Importante

Todas as tabelas em seu banco de dados existente precisam de uma chave primária para garantir 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 esquemas de tabela, índices e procedimentos armazenados, precisamos extrair o esquema do banco de dados de origem e aplicar ao banco de dados.

  1. Use pg_dump -s o comando para criar um ficheiro de exportação do esquema para uma base 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, consulte os exemplos no tutorial pg-dump .

  2. Crie uma base de dados vazia no ambiente de destino, que é a Base de Dados do Azure para PostgreSQL.

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

  3. Importe o esquema para a base de dados de destino que criou ao restaurar o ficheiro de captura de 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
    

    Nota

    O serviço de migração lida internamente com a habilitação e desativação de chaves e gatilhos estrangeiros, para garantir uma migração de dados confiável e robusta. Como resultado, você não precisa se preocupar em fazer modificações no esquema do banco de dados de destino.

Registar o fornecedor de recursos

Registe o fornecedor de recursos Microsoft.DataMigration antes de criar a primeira instância do Database Migration Service.

  1. Inicie sessão no portal do Azure. Pesquise e selecione Subscrições.

    Captura de ecrã a mostrar subscrições do portal.

  2. Selecione a assinatura na qual você deseja criar a instância do Serviço de Migração de Banco de Dados do Azure e selecione Provedores de recursos.

    Captura de ecrã que mostra fornecedores de recursos.

  3. Procure migração e selecione Registrar para Microsoft.DataMigration.

    Captura de ecrã do ecrã Registar fornecedor de recursos.

Criar uma instância do Azure Database Migration Service

  1. No menu do portal do Azure ou na página inicial , selecione Criar um recurso. Procure e selecione Serviço de Migração de Banco de Dados do Azure.

    Captura de ecrã do Azure Marketplace.

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

    Captura de ecrã de uma instância do Serviço de Migração de Base 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 ).

    Captura de tela do cenário Selecionar Serviço de Migração de Banco de Dados (Clássico).

  3. No ecrã de fundamentos do Serviço de Migração

    • Selecione uma subscrição.
    • Crie um novo 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 o local no qual você 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 escalão de preço. Para obter mais informações sobre custos e níveis de preços, consulte a página de preços.

    Captura de tela de Configurar as configurações básicas da instância do Serviço de Migração de Banco de Dados do Azure.

    • Selecione Next: Networking.
  4. Na ecrã Criar Serviço de Migração de Rede:

    • Selecione uma rede virtual existente ou crie uma nova. 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, consulte o artigo Criar uma rede virtual usando o portal do Azure.

    Captura de ecrã de Configurar definições de rede da instância do Serviço de Migração de Base de Dados do Azure.

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

    • Após alguns momentos, sua instância do serviço de Migração de Banco de Dados do Azure é criada e está pronta para uso:

    Captura de ecrã do serviço de migração criado.

Criar um projeto de migração

Após a criação do serviço, localize-o no portal do Azure, abra-o e crie um projeto de migração novo.

  1. No portal do Azure, selecione Todos os serviços, procure Serviço de Migração de Banco de Dados do Azure e selecione Serviços de Migração de Banco de Dados do Azure.

    Captura de tela de uma pesquisa no Serviço de Migração de Bases 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 selecione + Novo Projeto de Migração.

    Captura de ecrã da pesquisa de uma instância do Serviço de Migração de Base 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 ecrã de Criar um novo projeto de migração.

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

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

Especifique os detalhes da origem

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

    Captura de ecrã do ecrã Adicionar detalhes da fonte.

Especifique os detalhes do destino

  1. No ecrã Detalhes do destino, especifique os detalhes da conexão para a Base de Dados de Destino do Azure para PostgreSQL - Servidor Flexível, que é a instância pré-provisionada onde o esquema foi implementado usando o pg_dump.

    Captura de ecrã de um ecrã Adicionar detalhes do destino.

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

    Se o banco de dados de destino contiver o mesmo nome de banco de dados que o 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 ecrã de uma base de dados de mapas com o ecrã de destino.

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

    Captura de tela de uma tela de seleção das tabelas para migração.

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

    Captura de ecrã do ecrã de configuração das definições de migração.

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

    Captura de ecrã do ecrã de resumo da 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 ser exibido como Backup em andamento.

Monitorize 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 da tela de monitoramento de migração.

  2. Quando a migração estiver concluída, em Nome do Banco de Dados, selecione um banco de dados específico para obter o status da migração para Carga total de dados e Operações de sincronização de dados incrementais .

    Nota

    A carga de dados completa mostra o estado de migração de carga inicial, enquanto a sincronização de dados incremental mostra o estado de captura de dados modificados (CDC).

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

    Captura de ecrã dos detalhes do carregamento incremental da migração.

Realize a transferência da migração

Após a conclusão da carga completa inicial, os bancos de dados são marcados como Pronto para substituição.

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

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

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

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