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

É recomendável usar 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, suportando uma variedade de ambientes de origem, garantindo uma transição sem complicações para a Base 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.

Nota

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, veja Versões suportadas da base de dados do 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.

  • Criar um servidor da Base de Dados do Azure para PostgreSQL.

  • Criar uma Rede Virtual do Microsoft Azure para o Azure Database Migration Service com o modelo de implementação Azure Resource Manager, que proporciona conectividade site a site aos seus servidores de origem no local através do ExpressRoute ou de uma 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.

    Nota

    Durante a configuração da rede virtual, se você usar a Rota Expressa 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 do NSG da rede virtual, veja o artigo Filtrar o tráfego de rede com grupos de segurança de rede.

  • Configurar a sua Firewall do Windows para acesso ao motor de bases de dados.

  • Abra a firewall do Windows para permitir ao Azure Database Migration Service aceder ao Servidor PostgreSQL de origem, que, por predefinição, é a porta TCP 5432.

  • Se estiver a utilizar uma aplicação de firewall à frente da base ou bases de dados, poderá ter de adicionar regras de firewall para permitir que o Azure Database Migration Service aceda à base ou bases de dados de origem para migração.

  • Crie uma regra de firewall ao nível do servidor para a Base de Dados do Azure para PostgreSQL para permitir que o Azure Database Migration Service aceda às bases de dados de destino. Forneça o intervalo de sub-redes da rede virtual utilizada no Azure Database Migration Service.

  • Ative 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 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, definição recomendada de 10 tarefas
  • O utilizador tem de ter a função REPLICATION no servidor que aloja a base 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 base de dados, como esquemas de tabela, índices e procedimentos armazenados, é necessário extrair o esquema da base de dados de origem e aplicar à base de dados.

  1. Utilize o comando pg_dump -s para criar um ficheiro de captura de 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 utilizar o utilitário pg_dump, veja 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/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.

    Mostrar subscrições no 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.

    Mostrar fornecedores de recursos

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

    Registar o 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.

    Azure Marketplace

  2. No ecrã Azure Database Migration Service, selecione Criar.

    Criar instância do Azure Database Migration Service

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

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

  3. Na tela Criar noções básicas 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 os custos e os escalões de preços, veja a página de preços.

    Definir configurações básicas da instância do Serviço de Migração de Banco de Dados do Azure

    • Selecione Next: Networking.
  4. Na tela Criar rede do Serviço de Migração:

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

    Definir configurações de rede de instância do Serviço de Migração de Banco 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:

    O serviço de migração foi 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 Azure Database Migration Service e selecione Azure Database Migration Services.

    Captura de tela de um Serviço de Migração de Banco de Dados do Azure de Pesquisa.

  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ã de uma Pesquisando a 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 um projeto Criar uma nova migração.

    Nota

    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ã de um ecrã Adicionar detalhes da fonte.

Especifique os detalhes do destino

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

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

  2. Clique em Next:Select databases e, na tela Select databases, 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 tela de um banco de dados de mapa com a tela de destino.

  3. Clique em Next:Select tables e, em seguida, na tela Select tables , selecione as tabelas necessárias que precisam ser migradas.

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

  4. Clique em Next:Configure migration settings e, na tela Configure migration settings , aceite os valores padrão.

    Captura de ecrã do ecrã de configuração da definição 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. No ecrã de atividade de migração, selecione Atualizar para atualizar a vista até que o Estado da migração apareça como Concluída.

    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 status de migração de carga inicial, enquanto a sincronização de dados incremental mostra o status de captura de dados de alteração (CDC).

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

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

Realize a transferência da migração

Depois de concluída a Carga completa inicial, as bases de dados são marcadas como Preparadas para transferência.

  1. Quando estiver pronto para concluir a migração da base de dados, selecione Iniciar Transferência.

  2. Aguarde até que o contador Alterações pendentes mostre 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.

Próximos passos