Compartilhar via


Migrar online, de um servidor do Amazon RDS para PostgreSQL para o Azure Database para PostgreSQL, com o serviço de migração.

Este artigo 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 no modo online.

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.

  • Pré-requisitos
  • Realizar a migração
  • Monitorar a migração
  • Iniciar a substituição
  • Verificar a migração quando concluída

Pré-requisitos

Para iniciar a migração, você precisa dos seguintes pré-requisitos:

Antes de iniciar a migração com o serviço de migração do Banco de Dados do Azure para PostgreSQL, é importante atender aos seguintes pré-requisitos, especificamente projetados para cenários de migração online.

Verificar a versão de origem

A versão do servidor PostgreSQL de origem deve ser 9.5 ou posterior.

Se a versão postgreSQL de origem for menor que 9.5, atualize-a para 9.5 ou superior antes de iniciar a migração.

Instalar test_decoding – Instalação de origem

  • test_decoding recebe WAL por meio do mecanismo de decodificação lógica e o decodifica em representações de texto das operações executadas.
  • No Amazon RDS para PostgreSQL, o plug-in test_decoding está pré-instalado e pronto para replicação lógica. Isso permite que você configure facilmente slots de replicação lógica e transmita alterações WAL, facilitando casos de uso como captura de dados de alteração (CDC) ou replicação para sistemas externos.
  • Para obter mais informações sobre o plug-in de decodificação de teste, consulte a documentação do PostgreSQL

Configurar a configuração de destino

  • Antes de migrar, o Banco de Dados do Azure para PostgreSQL – Servidor flexível deve ser criado.
  • O SKU provisionado para o Banco de Dados do Azure para PostgreSQL – Servidor flexível deve corresponder à origem.
  • Para criar um novo Banco de Dados do Azure para PostgreSQL, visite Criar um servidor flexível do Banco de Dados do Azure para PostgreSQL

Habilitar CDC como uma origem

  • O plug-in de decodificação lógica test_decoding captura os registros alterados da origem.
  • Para permitir que o usuário de migração acesse privilégios de replicação, execute o seguinte comando:
GRANT rds_replication TO <<username>>;
  • Na origem, instância do PostgreSQL, modifique os seguintes parâmetros criando um novo grupo de parâmetros:

    • Defina rds.logical_replication = 1
    • Defina max_replication_slots como um valor maior que um; o valor deve ser maior que o número de bancos de dados selecionados para migração.
    • Defina max_wal_senders como um valor maior que um. Ele deve ser pelo menos igual a max_replication_slots, além do número de remetentes já utilizados na sua instância.
    • O wal_sender_timeout parâmetro termina conexões de replicação inativas por mais tempo do que o número especificado de milissegundos. O padrão para uma instância do AWS RDS para PostgreSQL é 30000 milliseconds (30 seconds). Definir o valor como 0 (zero) desabilita o mecanismo de tempo limite e é uma configuração válida para migração.
  • No servidor flexível de destino, para impedir que a migração online fique sem armazenamento para armazenar os logs, verifique se você tem espaço suficiente no espaço de tabela usando um disco gerenciado provisionado. Para conseguir isso, desabilite o parâmetro azure.enable_temp_tablespaces_on_local_ssd do servidor durante a migração e restaure-o para o estado original após a migração.

Configurar a configuração de rede

A configuração de rede é crucial para que o serviço de migração funcione corretamente. Verifique se o servidor PostgreSQL de origem pode se comunicar com o servidor de destino do Banco de Dados do Azure para PostgreSQL. As configurações de rede a seguir são essenciais para uma migração bem-sucedida.

Para obter informações sobre a configuração de rede, visite o guia de rede para o serviço de migração.

Habilitar extensões

Para garantir uma migração bem-sucedida usando o serviço de migração no Banco de Dados do Azure para PostgreSQL, talvez seja necessário verificar extensões para sua instância postgreSQL de origem. As extensões fornecem funcionalidades e recursos que podem ser necessários para seu aplicativo. Verifique as extensões na instância postgreSQL de origem antes de iniciar o processo de migração.

Na instância de destino do servidor flexível do Banco de Dados do Azure para PostgreSQL, habilite as extensões com suporte identificadas na instância postgreSQL de origem.

Para obter mais informações, consulte Extensões e módulos.

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

Verificar 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 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 de 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.

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.

Realizar a migração

Você pode migrar usando o portal do Azure ou a CLI do Azure.

Este artigo orienta você a usar o portal do Azure para migrar seu banco de dados PostgreSQL de um servidor Do Amazon RDS para PostgreSQL para um Banco de Dados do Azure para PostgreSQL. O portal do Azure permite que você execute várias tarefas, incluindo a migração de banco de dados. Seguindo as etapas descritas neste tutorial, você pode transferir seu banco de dados diretamente para o Azure e aproveitar seus recursos avançados e escalabilidade.

Configurar a tarefa de migração

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

Usando o portal do Azure:

  1. Selecione seu servidor flexível do Azure Database for PostgreSQL.

  2. No menu de recursos, selecione Migração.

    Captura de tela da página Migração.

  3. Selecione Criar para percorrer uma série de guias baseada em assistente para executar uma migração para um servidor flexível do local ou da VM 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.

    Captura de tela da guia Instalação que aparece depois de selecionar Criar na página Migração.

Configuração

Você 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 para cada migração para esse destino de servidor flexível. Esse campo aceita apenas caracteres alfanuméricos e não aceita caracteres especiais, exceto um hífen (-). O nome não pode começar com um hífen e deve ser exclusivo para um servidor de destino. Nenhuma migração para o mesmo destino de servidor flexível pode ter o mesmo nome.

  • Tipo de servidor de origem – dependendo da origem do PostgreSQL, você pode selecionar a Máquina Virtual do Azure ou o servidor local.

  • Opção de migração – permite que você execute validações antes de disparar 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 migração para o destino.
    • Validar e migrar — executa a validação antes de disparar uma migração. Se não houver falhas de validação, a migração será iniciada.

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 premigração, visite premigração.

  • O modo de migração permite que você escolha o modo para a migração. Offline é a opção padrão. Nesse caso, vamos alterá-lo para Online.

Selecione Avançar: servidor de runtime.

Captura de tela da guia Instalação depois de fornecer os detalhes necessários.

Servidor de execução

O servidor de runtime de migração é um recurso especializado dentro do serviço de migração no Banco de Dados do Azure para PostgreSQL, projetado para atuar como um servidor intermediário durante a migração. É uma instância de servidor flexível do Banco de Dados do Azure para PostgreSQL separada que não é o servidor de destino, mas é usada para facilitar a migração de bancos de dados de um ambiente de origem que só é acessível por meio de uma rede privada.

Captura de tela da guia Servidor do Runtime.

Para obter mais informações sobre o servidor de runtime, visite o servidor de runtime de migração.

Servidor de origem

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

  • Nome do servidor – forneça o nome do host ou o endereço IP do servidor PostgreSQL de origem.
  • Porta – Número da porta do servidor de origem.
  • Logon do administrador – nome do usuário administrador do servidor PostgreSQL de origem.
  • Senha – senha do logon do administrador fornecida para se conectar ao servidor PostgreSQL de origem.
  • Modo SSL – os valores com suporte são preferred e required. Quando o SSL no servidor PostgreSQL de origem estiver OFF, use prefer. Se o SSL no servidor de origem estiver ON, use o require. Os valores SSL podem ser determinados no arquivo postgresql.conf do servidor de origem.
  • Testar a conexão – executa o teste de conectividade entre o destino e a origem. Depois que a conexão for bem-sucedida, você poderá prosseguir para a próxima guia. Esses testes visam identificar quaisquer problemas de conectividade que possam existir entre os servidores de destino e de origem, incluindo a verificação da autenticação usando as credenciais fornecidas. Estabelecer uma conexão de teste leva alguns segundos.

Após a conexão de teste bem-sucedida, selecione Avançar: Servidor de destino.

Captura de tela da guia Migração do servidor de origem.

Servidor de destino

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

  • Logon do administrador – nome do usuário administrador do servidor PostgreSQL de destino.
  • Senha – senha do logon do administrador fornecida para se conectar ao servidor PostgreSQL de destino.
  • Endereço IP ou FQDN personalizado: o campo de endereço IP ou FQDN personalizado é opcional e pode ser usado quando o destino está por trás de um servidor DNS personalizado ou tem namespaces DNS personalizados, tornando-o acessível apenas por meio de FQDNs específicos ou endereços IP. Por exemplo, isso pode incluir entradas como production-flexible-server.example.com, 198.1.0.2, ou um FQDN do PostgreSQL, como production-flexible-server.postgres.database.azure.com, se o servidor DNS personalizado contiver a zona DNS postgres.database.azure.com ou encaminhar consultas dessa zona para 168.63.129.16, em que o FQDN é resolvido na zona DNS pública ou privada do Azure.
  • Testar a conexão – executa o teste de conectividade entre a origem e o destino. Depois que a conexão for bem-sucedida, você poderá prosseguir para a próxima guia. Esses testes visam identificar quaisquer problemas de conectividade que possam existir entre os servidores de origem e de destino, incluindo a verificação da autenticação usando as credenciais fornecidas. Estabelecer uma conexão de teste leva alguns segundos.

Após a conexão de teste bem-sucedida, selecione o Próximo: Bancos de dados para validar ou migrar

Captura de tela da guia migração do servidor de destino.

Bancos de dados para validar ou migrar

Na guia Bancos de Dados para validar ou migrar , 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 guia de migração dos Bancos de Dados para validação ou migração.

Resumo

A guia Resumo apresenta todos os detalhes de origem e destino para criar a validação ou a migração. Examine os detalhes e selecione Iniciar validação e migração.

Captura de tela da guia Resumo de migração.

Cancelar a validação ou a migração

Você pode cancelar as validações ou migrações em andamento. O fluxo de trabalho deve estar no status Em andamento para ser cancelado. Você não pode cancelar uma validação ou migração no status bem-sucedido ou com falha .

Cancelar uma validação interrompe qualquer atividade de validação adicional e a validação passa para um status Cancelado .

O cancelamento de uma migração interrompe a atividade de migração adicional no servidor de destino e passa para um status Cancelado . Ele não descarta nem reverte nenhuma alteração no servidor de destino. Certifique-se de remover os bancos de dados no servidor de destino envolvidos em uma migração cancelada.

Monitorar a migração

Depois de selecionar o botão Iniciar validação e migração , uma notificação será exibida, em alguns segundos, para dizer que a validação ou a criação da migração foi bem-sucedida. Você é redirecionado automaticamente para a página Migração do servidor flexível. A entrada mostra Status como Em andamento. 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 as seguintes 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 classificadas pela hora de início em ordem decrescente, com a entrada mais recente na parte superior. Você pode usar o botão Atualizar na barra de ferramentas para atualizar o status da validação ou da execução de migração.

Detalhes da migração

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

Lembre-se de que, nas etapas anteriores, quando você criou essa migração, configurou 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 de Execução das etapas de pré-requisito for concluído, o fluxo de trabalho transitará para o subestado de Validação em andamento.

  • Se a validação tiver erros, a migração passará para um estado com falha .

  • Se a validação for concluída sem erros, a migração será iniciada e o fluxo de trabalho passará para o subestado de Migração de Dados.

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

  • Detalhes de validação, por exemplo
    • Contém validação relacionada à verificação de conectividade, versão de origem, ou seja, versão >do PostgreSQL = 9.5 e verificação de parâmetro do servidor, se as extensões estão habilitadas nos parâmetros do servidor flexível do Banco de Dados do Azure para PostgreSQL.
  • Detalhes de validação e migração para bancos de dados
    • Ela contém a validação dos bancos de dados individuais relacionados ao suporte a extensões e ordenações no servidor flexível do Banco de Dados do Azure para PostgreSQL.

Você pode ver o status de validação e o status de migração na página de detalhes da migração.

Captura de tela dos detalhes que mostram a validação e a migração.

Alguns status de migração possíveis:

Status da migração

Situação Description
Em andamento A configuração da infraestrutura de migração está em andamento ou a migração de dados real está em andamento.
Cancelada A migração é cancelada ou excluída.
Com falha A migração falhou.
Falha na validação A validação falhou.
Êxito A migração foi bem-sucedida e foi concluída.
Aguardando a ação do usuário Aguardando a ação do usuário para executar a substituição.

Detalhes da migração

Substatus Description
Realizando etapas pré-requisitas A configuração da infraestrutura está em andamento para migração de dados.
Validação em andamento A validação está em andamento.
Remover o banco de dados no destino Descartando banco de dados já existente no servidor de destino.
Migrando dados A migração de dados está em andamento.
Concluindo a migração A migração está nos estágios finais de conclusão.
Concluído A migração foi concluída.
Com falha A migração falhou.

Substatuses de validação

Substatus Description
Com falha A validação falhou.
Êxito A validação foi bem-sucedida.
Aviso A validação está com um aviso.

Iniciar a substituição

Você pode iniciar a substituição usando o portal do Azure ou a CLI do Azure.

Para a opção Validar e migrar, a conclusão da migração online exige que o usuário complete uma etapa adicional, que é acionar a ação de transição. Depois que a cópia ou clonagem dos dados base for concluída, a migração passará para o Waiting for user action status e o Waiting for cutover trigger substatus. Neste status, o usuário pode disparar a substituição do portal selecionando a migração.

Antes de iniciar a substituição, é importante garantir que:

  • As gravações na origem são interrompidas quando o valor latency é 0 ou próximo a 0. As latency informações podem ser obtidas na tela de detalhes da migração, conforme mostrado abaixo:
  • latency o valor diminui para 0 ou perto de 0
  • O latency valor indica quando o destino foi sincronizado pela última vez com a origem. Neste ponto, as gravações na origem podem ser interrompidas e a substituição iniciada. Caso haja tráfego intenso na origem, é recomendável interromper as gravações primeiro para que latency possa chegar perto de 0 e, em seguida, uma transição seja iniciada.

A operação de substituição aplica todas as alterações pendentes do servidor de origem ao servidor de destino e conclui a migração. Se você disparar uma substituição, mesmo com um latency diferente de zero, a replicação será interrompida até esse momento. Todos os dados da origem até o ponto de corte são então aplicados ao alvo. Se você experimentar uma latência de 15 minutos no momento de transição, todas as alterações feitas nos dados nos últimos 15 minutos serão aplicadas ao destino.

O tempo depende do acúmulo de mudanças ocorridas nos últimos 15 minutos. Portanto, é recomendável que a latência atinja zero ou perto de zero, antes de disparar a substituição.

  • A migração passa para o status Succeeded quando o substatus Migrating data ou a substituição (na migração online) é concluído com sucesso. Se houver um problema no Migrating data substatus, a migração passará para um Failed status.

Verificar a migração quando concluída

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 a SKU do servidor flexível para corresponder às necessidades do aplicativo. Essa alteração precisa de 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 requer ajuste de desempenho.