Share via


Tutorial: Migrar do PostgreSQL hospedado em uma VM local ou no Azure para o Banco de Dados do Azure para PostgreSQL usando o serviço de migração

APLICA-SE A: Banco de Dados do Azure para PostgreSQL – Servidor Flexível

Este tutorial orienta você na migração de uma instância do PostgreSQL de suas VMs (máquinas virtuais) locais ou do Azure para o servidor flexível do Banco de Dados do Azure para PostgreSQL usando o portal do Azure e a CLI do Azure.

O serviço de migração no Banco de Dados do Azure para PostgreSQL é um serviço totalmente gerenciado integrado ao portal do Azure e à CLI do Azure. Ele foi projetado para simplificar seu percurso de migração para o servidor flexível do Banco de Dados do Azure para PostgreSQL.

  • Configurar seu Servidor Flexível de Banco de Dados do Azure para PostgreSQL
  • Configurar a tarefa de migração
  • Monitorar a migração
  • Cancelar a migração
  • Após a migração

Pré-requisitos (offline)

Antes de iniciar a migração com o serviço de migração no Banco de Dados do Azure para PostgreSQL, é essencial atender aos pré-requisitos a seguir, que se aplicam a cenários de migração offline.

Verificar a versão de origem

A versão PostgreSQL de origem deve ser >= 9.5. Se a versão do PostgreSQL de origem for menor que 9.5, atualize a versão do PostgreSQL de origem para 9.5 ou superior antes da migração.

Configuração de destino

  • O Banco de Dados do Azure para PostgreSQL deve ser configurado no Azure antes da migração.

  • A SKU escolhida para o Banco de Dados do Azure para PostgreSQL deve corresponder às especificações do banco de dados de origem para garantir a compatibilidade e o desempenho adequado.

  • Para obter instruções detalhadas sobre como criar um novo Banco de Dados do Azure para PostgreSQL, consulte o seguinte link: Início Rápido: Criar servidor.

Configuração da rede

A configuração de rede adequada é essencial para garantir a conectividade bem-sucedida entre a origem e o destino durante a migração. Aqui está um guia para ajudá-lo a estabelecer a conexão de rede para diferentes cenários:

Requisitos de rede para migração:

  • Túnel VPN/VPN do ExpressRoute/IPsec: ao conectar sua fonte local/AWS ao Azure, talvez seja necessário configurar um túnel do ExpressRoute, VPN do IPsec ou VPN para facilitar a transferência segura de dados.

  • Emparelhamento VNET: estabeleça o emparelhamento de rede virtual entre as duas VNets distintas para habilitar a conectividade de rede direta, um pré-requisito para migração entre a VM do Azure e o Banco de Dados do Azure para PostgreSQL.

Cenários de conectividade:

A tabela a seguir pode ajudar a configurar a rede entre a origem e o destino.

Origem Destino Dicas de conectividade
Setor Público Setor Público Nenhuma outra ação será necessária se a origem estiver na lista de permissões nas regras de firewall do destino.
Privado Setor Público Não há suporte para essa configuração; use pg_dump/pg_restore para transferência de dados.
Setor Público Privados Nenhuma outra ação será necessária se a origem estiver na lista de permissões nas regras de firewall do destino.
Privados Privados Estabeleça um Emparelhamento de rede virtual, VPN IPsec, IPsec ou ExpressRoute entre a origem e o destino.
Privados Ponto de extremidade privado Não há suporte para essa configuração; entre em contato com o suporte da Microsoft.

Considerações adicionais de rede:

  • Configuração pg_hba.conf: para facilitar a conectividade entre as instâncias de origem e de destino do PostgreSQL, é essencial verificar e potencialmente modificar o arquivo pg_hba.conf. Esse arquivo inclui a autenticação do cliente e deve ser configurado para permitir que o PostgreSQL de destino se conecte à origem. As alterações no arquivo pg_hba.conf normalmente exigem uma reinicialização da instância do PostgreSQL de origem para entrar em vigor.

Observação

O arquivo pg_hba.conf está localizado no diretório de dados da instalação do PostgreSQL. Esse arquivo deve ser verificado e configurado se o banco de dados de origem é um servidor PostgreSQL local ou um servidor PostgreSQL hospedado em uma VM do Azure. Para instâncias PostgreSQL em RDS AWS ou serviços gerenciados semelhantes, o arquivo pg_hba.conf não é diretamente acessível ou aplicável. Em vez disso, o acesso é controlado por meio das configurações de segurança e acesso à rede fornecidas pelo serviço.

Para obter mais informações sobre a configuração de rede, acesse Guia de rede para o serviço de migração no Banco de Dados do Azure para PostgreSQL – Servidor Flexível.

Extensões

Extensões são recursos extras que podem ser adicionados ao PostgreSQL para aprimorar sua funcionalidade. Há suporte para extensões no Banco de Dados do Azure para PostgreSQL, mas devem ser habilitadas manualmente. Para habilitar extensões, siga estas etapas:

  • Use o comando select na origem para listar todas as extensões que estão sendo usadas - select extname,extversion from pg_extension;

  • Pesquise o parâmetro do servidor azure.extensions na página de parâmetros do servidor no Banco de Dados do Azure para PostgreSQL. Habilite as extensões encontradas na origem no PostgreSQL.

  • Salve as alterações de parâmetro e reinicie o Banco de Dados do Azure para PostgreSQL para aplicar a nova configuração, se necessário.

    Captura de tela das extensões.

  • Verifique se a lista contém uma das seguintes extensões:

    • PG_CRON
    • PG_HINT_PLAN
    • PG_PARTMAN_BGW
    • PG_PREWARM
    • PG_STAT_STATEMENTS
    • PG_AUDIT
    • PGLOGICAL
    • WAL2JSON

Em caso afirmativo, pesquise na página de parâmetros do servidor o parâmetro shared_preload_libraries. Esse parâmetro indica o conjunto de bibliotecas de extensão pré-carregadas na reinicialização do servidor.

Usuários e funções

Ao migrar para o Banco de Dados do Azure para PostgreSQL, é essencial abordar a migração de usuários e funções separadamente, pois elas exigem intervenção manual:

  • Migração Manual de Usuários e Funções: os usuários e suas funções associadas devem ser migrados manualmente para o Banco de Dados do Azure para PostgreSQL. Para facilitar esse processo, você pode usar o utilitário pg_dumpall com o sinalizador --globals-only para exportar objetos globais, como funções e contas de usuário. Execute o seguinte comando, substituindo <<username>> pelo nome de usuário real e <<filename>> pelo nome do arquivo de saída desejado:

    pg_dumpall --globals-only -U <<username>> -f <<filename>>.sql
    
  • Restrição em Funções de Superusuário: o Banco de Dados do Azure para PostgreSQL não dá suporte a funções de superusuário. Portanto, os usuários com privilégios de superusuário devem ter esses privilégios removidos antes da migração. Certifique-se de ajustar as permissões e as funções adequadamente.

Seguindo estas etapas, você pode garantir que contas de usuário e funções sejam migradas corretamente para o Banco de Dados do Azure para PostgreSQL sem encontrar problemas relacionados a restrições de superusuário.

Parâmetros do Servidor

Esses parâmetros não são migrados automaticamente para o ambiente de destino e devem ser configurados manualmente.

  • Corresponda os valores de parâmetro do servidor do banco de dados PostgreSQL de origem ao Banco de Dados do Azure para PostgreSQL acessando a seção "Parâmetros do servidor" no portal do Azure e atualizando manualmente os valores de acordo.

  • Salve as alterações de parâmetro e reinicie o Banco de Dados do Azure para PostgreSQL para aplicar a nova configuração, se necessário.

Desabilitar a alta disponibilidade (confiabilidade) e as réplicas de leitura no destino

  • Desabilitar a alta disponibilidade (confiabilidade) e ler réplicas no ambiente de destino é essencial. Esses recursos devem ser habilitados somente após a conclusão da migração.

  • Seguindo essas diretrizes, você pode ajudar a garantir um processo de migração suave sem as variáveis adicionadas introduzidas por HA e réplicas de leitura. Depois que a migração for concluída e o banco de dados estiver estável, você poderá continuar a habilitar esses recursos para aprimorar a disponibilidade e a escalabilidade do seu ambiente de banco de dados no Azure.

Você pode migrar usando o portal do Azure.

Configurar a tarefa de migração

O serviço de migração vem com uma experiência simples e baseada em assistente no portal do Azure.

  1. Abra o navegador da Web e acesse o portal. Insira suas credenciais para entrar. A exibição padrão é o painel de serviço.

  2. Vá para o servidor flexível do Banco de Dados do Azure para PostgreSQL.

  3. Na guia Visão geral do servidor flexível, no menu à esquerda, role a página para baixo até Migração (versão prévia) e selecione-a.

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

  4. Selecione o botão Criar para migrar para um servidor flexível de VMs locais ou do Azure.

    Observação

    Na primeira vez que você usa o serviço de migração, uma grade vazia aparece com um prompt para iniciar sua primeira migração.

    Se as migrações para o destino do servidor flexível já tiverem sido criadas, a grade agora conterá informações sobre tentativas de migrações.

  5. Selecione o botão Criar para percorrer uma série de guias baseada em assistente para executar uma migração.

    Captura de tela da página de criação de migração.

Instalação

A primeira guia é a de configuração.

O usuário precisa fornecer vários detalhes relacionados à migração, como o nome da migração, o tipo de servidor de origem, a opção e o modo.

  • O Nome da migração é o identificador exclusivo de cada migração para esse destino de servidor flexível. Esse campo aceita apenas caracteres alfanuméricos e não aceita nenhum caractere especial, exceto um hífen (-). O nome não pode começar com um hífen e deve ser exclusivo de um servidor de destino. Nenhuma migração para o mesmo destino de servidor flexível pode ter o mesmo nome de outra.

  • Tipo de Servidor de Origem – dependendo da origem do PostgreSQL, você pode selecionar o servidor único do Banco de Dados do Azure para PostgreSQL, no local, VM do Azure.

  • Opção de Migração - permite executar validações antes de disparar uma migração. Você pode escolher uma das seguintes opções

    • Validar – verifica se o seu servidor e seu banco de dados estão preparados para migrar para o destino.
    • Migrar – ignora as validações e inicia as migrações.
    • Validar e Migrar – executa a validação antes de disparar uma migração. A migração será disparada se não houver falhas de validação.
      • Escolher a opção Validar ou Validar e Migrar é sempre uma boa prática para executar validações de pré-imigração antes de executar a migração.

Para saber mais sobre a validação de pré-imigração, visite pré-imigração.

  • O Modo de migração permite escolher o modo para a migração. Offline é a opção padrão.

Selecione o botão Avançar: Conectar à Origem.

Captura de tela da página de migração de configuração.

Conectar-se à origem

A guia Conectar à Origem solicita que você forneça detalhes relacionados à origem selecionada na Guia de Instalação, que é a origem dos bancos de dados.

  • Nome do Servidor - Fornece o nome do host ou o endereço IP da instância do PostgreSQL de origem

  • Porta – Número da porta do servidor de origem

  • ID de logon do administrador do servidor – Nome de usuário do servidor PostgreSQL de origem

  • Senha – Senha do servidor PostgreSQL de origem

  • Modo SSL – Os valores com suporte são preferenciais e obrigatórios. Quando o SSL no servidor PostgreSQL de origem estiver OFF, use o SSLMODE=prefer. Se o SSL no servidor de origem estiver ON, use o SSLMODE=require. Os valores SSL podem ser determinados no arquivo postgresql.conf.

  • Testar Conexão – executa o teste de conectividade entre o destino e a origem. Depois que a conexão for bem-sucedida, os usuários poderão prosseguir com a próxima etapa; eles precisam identificar os problemas de rede entre o destino e a origem e verificar o nome de usuário/senha da origem. A conexão de teste leva alguns minutos para estabelecer uma conexão entre o destino e a origem.

Após a conexão de teste bem-sucedida, selecione o botão Avançar: Selecionar Destino de Migração.

Captura de tela da página de migração da origem de conexão.

Conectar-se ao aplicativo

A guia selecionar destino de migração exibe os metadados do destino de servidor flexível, como nome da assinatura, grupo de recursos, nome do servidor, localização e versão do PostgreSQL.

  • Nome de usuário do administrador – nome de usuário administrador do servidor PostgreSQL de destino

  • Senha – Senha do servidor PostgreSQL de destino

  • Testar Conexão – executa o teste de conectividade entre o destino e a origem. Depois que a conexão for bem-sucedida, os usuários poderão prosseguir com a próxima etapa. Caso contrário, precisamos identificar os problemas de rede entre o destino e a origem e verificar o nome de usuário/senha do destino. A conexão de teste leva alguns minutos para estabelecer uma conexão entre o destino e a origem

Após a conexão de teste bem-sucedida, selecione o Próximo: Selecionar Bancos de Dados para Migração

Captura de tela da página de migração do destino da conexão.

Selecionar bancos de dados para migração

Na guia Selecionar banco de dados para migração, você pode escolher uma lista de bancos de dados de usuário para migrar do servidor PostgreSQL de origem.

Depois de selecionar os bancos de dados, selecione Avançar: Resumo.

Captura de tela da página de migração do fetchDB.

Resumo

A guia Resumo resume todos os detalhes da origem e do destino para criar a validação ou a migração. Revise os detalhes e selecione o botão Iniciar Validação e Migração.

Captura de tela da página de resumo da migração.

Monitorar a migração

Depois de selecionar no botão Iniciar Validação e Migração, uma notificação será exibida em alguns segundos para dizer se a validação ou a criação da migração foi bem-sucedida. Você é redirecionado automaticamente para a página de Migração do servidor flexível. A entrada está no estado InProgress e no subestado PerformingPreRequisiteSteps. O fluxo de trabalho leva de 2 a 3 minutos para configurar a infraestrutura de migração e verificar as conexões de rede.

Captura de tela da página de migração do monitor.

A grade que exibe as migrações tem estas colunas: Nome, Status, Modo de migração, Tipo de migração, Servidor de origem, Tipo de servidor de origem, Bancos de dados, Duração e Hora de início. As entradas são exibidas na ordem decrescente da hora de início, com a entrada mais recente na parte superior. Você pode usar o botão atualizar para atualizar o status da execução de validação ou migração.

Detalhes da migração

Selecione o nome da migração na grade para ver os detalhes associados.

Na guia Instalação, selecionamos a opção de migração como Validar e Migrar. Nesse cenário, as validações são executadas primeiro antes do início da migração. Depois que o subestado PerformingPreRequisiteSteps for concluído, o fluxo de trabalho passará para o subestado de Validação em Andamento.

  • Se a validação tiver erros, a migração passa para um estado de Falha.

  • Se a validação for concluída sem nenhum erro, a migração é iniciada e o fluxo de trabalho passa para o subestado de Migrando dados.

Os detalhes de validação estão disponíveis no nível da Instância e do Banco de Dados.

  • Validação no nível da instância
    • Contém validação relacionada à verificação de conectividade, versão de origem, ou seja, versão >do PostgreSQL = 9.5, verificação de parâmetro do servidor, ou seja, se as extensões estiverem habilitadas nos parâmetros de servidor do Banco de Dados do Azure para PostgreSQL – servidor flexível.
  • Validação no nível do banco de dados
    • Ele contém a validação dos bancos de dados individuais relacionados ao suporte a extensões e ordenações no Banco de Dados do Azure para PostgreSQL, um servidor flexível.

Você pode ver o status de validação e migração na página de detalhes da migração. Captura de tela dos detalhes mostrando a validação e a migração.

Os possíveis estados da migração incluem:

  • EmAndamento: a instalação da infraestrutura de migração está em andamento ou a migração de dados real está em andamento.
  • Cancelada: a migração foi cancelada ou excluída.
  • Falha: a migração falhou.
  • Falha na validação: a validação falhou.
  • Êxito: a migração foi bem-sucedida e está concluída.
  • WaitingForUserAction: aplicável somente à migração online. Aguardando a ação do usuário para executar a substituição.

Os possíveis subestados da migração incluem:

  • PerformingPreRequisiteSteps: a instalação da infraestrutura está em andamento para migração de dados.
  • Validação em andamento: a validação está em andamento.
  • MigrandoDados: a migração dos dados está em andamento.
  • CompletingMigration: a migração está na fase final da conclusão.
  • Concluído: a migração foi concluída.
  • Falha: falha na migração.

Os subestados de validação possíveis incluem:

  • Falha: falha na validação.
  • Bem-sucedido: a validação é bem-sucedida.
  • Aviso: a validação está em Aviso. Avisos são mensagens informativas que você deve lembrar ao planejar a migração.

Cancelar a migração usando o portal

Você pode cancelar as validações ou migrações em andamento. O fluxo de trabalho deve estar no estado InProgress para ser cancelado. Não é possível cancelar uma migração que esteja no estado deÊxito ou de Falha.

  • O cancelamento de uma validação interrompe qualquer atividade de validação adicional, e a validação é movida para o estado Cancelado.
  • O cancelamento de uma migração interrompe qualquer atividade de migração adicional no servidor de destino e passa para um estado de Cancelado. A ação de cancelamento reverterá todas as alterações feitas pelo serviço de migração no servidor de destino.

Após a migração

Depois de concluir os bancos de dados, você precisa validar manualmente os dados entre a origem e o destino e verificar se todos os objetos no banco de dados de destino foram criados com êxito.

Após a migração, você pode executar as seguintes tarefas:

  • Verifique os dados em seu servidor flexível e verifique se é uma cópia exata da instância de origem.

  • Após a verificação, habilite a opção de alta disponibilidade em seu servidor flexível conforme necessário.

  • Altere o SKU do servidor flexível para que ele corresponda às necessidades do aplicativo. Essa alteração exige uma reinicialização do servidor de banco de dados.

  • Se você alterar os parâmetros de servidor de seus valores padrão na instância de origem, copie esses valores de parâmetro de servidor no servidor flexível.

  • Copie outras configurações de servidor, como marcas, alertas e regras de firewall (se aplicável) da instância de origem para o servidor flexível.

  • Faça alterações em seu aplicativo para apontar as cadeias de conexão para um servidor flexível.

  • Monitore o desempenho do banco de dados de perto para ver se ele exige um ajuste de desempenho.