Share via


Tutorial: Migrar do PostgreSQL local ou de uma VM do Azure hospedada 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 máquinas virtuais (VMs) 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 sua jornada de migração para o Banco de Dados do Azure para o servidor flexível PostgreSQL.

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

Pré-requisitos (offline)

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

Verifique a versão de origem

A versão do PostgreSQL de origem deve ser >= 9.5. Se a versão de origem do PostgreSQL for menor que 9.5, atualize a versão de origem do PostgreSQL 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 compatibilidade e desempenho adequado.

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

Configuração da rede

A configuração de rede adequada é essencial para garantir uma 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:

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

  • Emparelhamento VNET: estabeleça emparelhamento de rede virtual entre as duas redes virtuais distintas para habilitar a conectividade direta de rede, um pré-requisito para a 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
Público 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 Público Esta configuração não é suportada; Use pg_dump/pg_restore para transferência de dados.
Público Privado Nenhuma outra ação será necessária se a origem estiver na lista de permissões nas regras de firewall do destino.
Privado Privado Estabeleça uma Rota Expressa, VPN IPsec, Túnel VPN ou emparelhamento de rede virtual entre a origem e o destino.
Privado Ponto Final Privado Esta configuração não é suportada; entre em contato com o suporte da Microsoft.

Considerações adicionais de rede:

  • Configuração do pg_hba.conf: Para facilitar a conectividade entre as instâncias PostgreSQL de origem e de destino, é essencial verificar e potencialmente modificar o arquivo pg_hba.conf. Esse arquivo inclui autenticação de 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.

Nota

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 for um servidor PostgreSQL local ou um servidor PostgreSQL hospedado em uma VM do Azure. Para instâncias do PostgreSQL no AWS RDS ou serviços gerenciados semelhantes, o arquivo pg_hba.conf não é diretamente acessível ou aplicável. Em vez disso, o acesso é controlado através das configurações de segurança e acesso à rede fornecidas pelo serviço.

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

Extensões

As extensões são recursos extras que podem ser adicionados ao PostgreSQL para melhorar sua funcionalidade. As extensões têm suporte no Banco de Dados do Azure para PostgreSQL, mas devem ser habilitadas manualmente. Para ativar extensões, siga estes passos:

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

  • Procure o parâmetro azure.extensions server na página Server parameter no seu Banco de Dados do Azure para PostgreSQL. Habilite as extensões encontradas na fonte dentro do 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 de extensões.

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

    • PG_CRON
    • PG_HINT_PLAN
    • PG_PARTMAN_BGW
    • PG_PREWARM
    • PG_STAT_STATEMENTS
    • PG_AUDIT
    • PGLÓGICO
    • WAL2JSON

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

Utilizadores 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 eles 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 pg_dumpall utilitário com o --globals-only sinalizador 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 de funções de superusuário: o Banco de Dados do Azure para PostgreSQL não oferece 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 funções de acordo.

Seguindo estas etapas, você pode garantir que as contas e funções de usuário 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.

  • Correlacione os valores dos parâmetros 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.

Desative a alta disponibilidade (confiabilidade) e leia réplicas 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. Quando a migração estiver concluída e o banco de dados estiver estável, você poderá continuar habilitando 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 baseada em assistente no portal do Azure.

  1. Abra o browser e aceda ao portal do Azure. Introduza as suas credenciais para iniciar sessão. A vista predefinida é o dashboard de serviço.

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

  3. Na guia Visão geral do servidor flexível, no menu à esquerda, role para baixo até Migração e selecione-a.

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

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

    Nota

    Na primeira vez que você usar o serviço de migração, uma grade vazia será exibida com um prompt para iniciar sua primeira migração.

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

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

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

Configurar

A primeira guia é a guia 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 do Servidor Flexível. Este 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 para um servidor de destino. Não há duas migrações para o mesmo destino do Servidor Flexível que possam ter o mesmo nome.

  • Tipo de Servidor de Origem - Dependendo da sua origem do PostgreSQL, pode selecionar a Base de Dados do Azure para Servidor único PostgreSQL, no local, VM do Azure.

  • Opção de migração - Permite executar validações antes de acionar uma migração. Você pode escolher qualquer uma das seguintes opções:

    • Validar - Verifica a preparação do servidor e do banco de dados para a migração para o destino.
    • Migrar - Ignora validações e inicia migrações.
    • Validar e migrar - Executa a validação antes de acionar uma migração. A migração é acionada 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 pré-migração antes de executar a migração.

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

  • O modo de migração permite que você escolha o modo para a migração. Offline é a opção padrão.

Selecione o botão Next: Connect to source (Avançar: Conectar ao código-fonte ).

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

Conecte-se à fonte

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

  • Nome do servidor - Forneça o nome do host ou o endereço IP da instância PostgreSQL de origem

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

  • Nome de login do administrador do servidor - Nome de usuário do servidor PostgreSQL de origem

  • Senha - Senha do servidor PostgreSQL de origem

  • Modo SSL - Os valores suportados são preferenciais e obrigatórios. Quando o SSL no servidor PostgreSQL de origem estiver OFF, use SSLMODE=prefer. Se o SSL no servidor de origem estiver ATIVADO, use 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. Uma vez que a conexão é bem-sucedida, os usuários podem ir em frente 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 fonte. 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 Next: Select Migration target (Avançar: selecionar destino de migração).

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

Conecte-se ao destino

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

  • Admin username - Nome de usuário Admin 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. Quando 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 para o 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 botão Avançar: Selecionar banco de dados para migração

Captura de tela da página de migração de destino de 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ários para migrar do seu servidor PostgreSQL de origem.

Depois de selecionar os bancos de dados, selecione Next : Summary.

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

Resumo

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

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

Monitorize a migração

Depois de selecionar o botão Iniciar Validação e Migração , uma notificação aparece em alguns segundos informando que a validação ou a criação da migração foi bem-sucedida. Você será redirecionado automaticamente para a página 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 ecrã 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 no topo. 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 Configuraçã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 substrato PerformingPreRequisiteSteps for concluído, o fluxo de trabalho será movido para o substrato de Validação em andamento.

  • Se a validação tiver erros, a migração será movida para um estado Falha .

  • Se a validação for concluída sem qualquer erro, a migração será iniciada e o fluxo de trabalho será movido para o subestado de Migrando dados.

Os detalhes de validação estão disponíveis no nível de instância e banco de dados.

  • Validação ao 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âmetros do servidor, ou seja, se as extensões estão habilitadas nos parâmetros do servidor do Banco de Dados do Azure para PostgreSQL - servidor flexível.
  • Validação ao nível da base de dados
    • Ele contém a validação dos bancos de dados individuais relacionados ao suporte a extensões e agrupamentos no Banco de Dados do Azure para PostgreSQL, um servidor flexível.

Você pode ver a validação e o status da 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 de migração incluem:

  • InProgress: A configuração da infraestrutura de migração está em andamento ou a migração de dados real está em andamento.
  • Cancelado: a migração é 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 apenas para migração online. Aguardando a ação do usuário para executar a substituição.

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

  • ExecutandoPreRequisiteSteps: A configuração da infraestrutura está em andamento para a migração de dados.
  • Validação em Curso: A validação está em curso.
  • MigratingData: A migração de dados está em andamento.
  • CompletingMigration: A migração está nos estágios finais de conclusão.
  • Concluído: A migração foi concluída.
  • Falha: Falha na migração.

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

  • Falha: Falha na validação.
  • Êxito: A validação foi bem-sucedida.
  • Aviso: A validação está em Aviso. Os avisos são mensagens informativas que você deve lembrar ao planejar a migração.

Cancelar a migração usando o portal

Você pode cancelar todas 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 validação ou migração que esteja no estado Bem-sucedido ou Reprovado .

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

Pós-migração

Depois de concluir os bancos de dados, você precisa validar manualmente os dados entre origem e 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 certifique-se de que é uma cópia exata da instância de origem.

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

  • Altere a SKU do servidor flexível para corresponder às necessidades do aplicativo. Essa alteração precisa ser reiniciada pelo servidor de banco de dados.

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

  • Copie outras configurações do servidor, como tags, 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 requer ajuste de desempenho.