Partilhar via


Tutorial: Migrar online do Amazon Aurora PostgreSQL para o Banco de Dados do Azure para PostgreSQL com o serviço de migração

Este artigo descreve como migrar seu banco de dados PostgreSQL do Amazon Aurora para o Banco de Dados do Azure para PostgreSQL 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 sua jornada de migração para o Banco de Dados do Azure para PostgreSQL.

Neste tutorial:

  • Pré-requisitos completos
  • Iniciar a migração
  • Monitorize a migração
  • Iniciar uma substituição
  • Verificar a migração

Pré-requisitos

Antes de iniciar uma migração usando o serviço de migração no Banco de Dados do Azure para PostgreSQL, é importante concluir os seguintes pré-requisitos. Esses pré-requisitos são projetados especificamente para cenários de migração online.

Verifique a versão de origem

A versão do servidor PostgreSQL de origem deve ser 9.5 ou posterior. Se a versão de origem do PostgreSQL for anterior à 9.5, atualize a versão para 9.5 ou posterior antes de iniciar a migração.

Instalar test_decoding para configuração de origem

  • O plugin test_decoding recebe Write-Ahead Logging (WAL) através do mecanismo de decodificação lógica. O plugin decodifica WAL em representações de texto das operações que são executadas.
  • No Amazon RDS for PostgreSQL, o plug-in test_decoding está pré-instalado e pronto para replicação lógica. Você pode facilmente configurar slots de replicação lógica e transmitir alterações de WAL, por exemplo, para captura de dados de alteração (CDC) ou para replicação para sistemas externos.

Para obter mais informações sobre o plug-in test_decoding, consulte a documentação do PostgreSQL.

Configurar a configuração de destino

Antes de começar a migração, você deve criar uma instância do Banco de Dados do Azure para PostgreSQL no Azure. A SKU provisionada para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível deve corresponder à origem.

Para obter mais informações, consulte Criar uma instância do Banco de Dados do Azure para PostgreSQL - Servidor Flexível.

Habilitar o CDC como fonte

  • O plugin de decodificação lógica test_decoding captura os registros alterados da fonte.

  • Para permitir que o usuário de migração acesse as permissões de replicação, execute o seguinte comando:

    GRANT rds_replication TO <username>;
    
  • Na instância PostgreSQL de origem, modifique os seguintes parâmetros no parameter group de clusters de banco de dados criando um novo parameter group:

    • Defina rds.logical_replication como 1.
    • Defina max_replication_slots como um valor maior que 1. O valor deve ser maior do que o número de bancos de dados selecionados para migração.
    • Defina max_wal_senders como um valor maior que 1. Ele deve ser pelo menos o mesmo valor que o valor de max_replication_slots, mais o número de remetentes já usados em sua instância.
    • O wal_sender_timeout parâmetro encerra conexões de replicação inativas que são maiores do que o número especificado de milissegundos. O valor padrão para uma instância do Amazon Aurora PostgreSQL é 30000 milliseconds (30 seconds). Definir o valor para 0 (zero) desativar o mecanismo de tempo limite e é uma configuração válida para migração.
  • No servidor flexível de destino, para evitar que a migração online fique sem armazenamento para armazenar os logs, certifique-se de ter armazenamento suficiente em seu espaço de tabela usando um disco gerenciado provisionado. Desative o parâmetro azure.enable_temp_tablespaces_on_local_ssd server durante a migração. Restaure o parâmetro para o estado original após a migração.

Configurar a configuração da rede

A configuração da rede é crucial para que o serviço de migração funcione corretamente. Certifique-se de que o servidor PostgreSQL de origem possa se comunicar com o servidor de destino no Banco de Dados do Azure para PostgreSQL.

Para obter informações sobre a configuração de rede, consulte Cenários de rede para o serviço de migração.

Ativar 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 as extensões para sua instância do PostgreSQL de origem. As extensões fornecem funcionalidades e recursos que podem ser necessários para seu aplicativo. Certifique-se de verificar as extensões na instância PostgreSQL de origem antes de iniciar o processo de migração.

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

Para obter mais informações, consulte Extensões no Banco de Dados do Azure para PostgreSQL.

Nota

Uma reinicialização é necessária quando você faz alterações no shared_preload_libraries parâmetro.

Verificar parâmetros do servidor

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

  • Corresponder valores de parâmetros de servidor do banco de dados PostgreSQL de origem com a instância do Banco de Dados do Azure para PostgreSQL. No portal do Azure, vá para Parâmetros do servidor e atualize manualmente os valores.

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

Verificar usuários e funções

Quando você migra 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 a instância do Banco de Dados do Azure para PostgreSQL. Para facilitar esse processo, você pode usar o utilitário pg_dumpall com o --globals-only sinalizador para exportar objetos globais, como funções e contas de usuário.

    Execute o seguinte comando. Substitua <username> pelo nome de usuário real e substitua <filename> pelo nome que você deseja usar para o arquivo de saída.

    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. As permissões de superusuário devem ser removidas antes da migração. Certifique-se de ajustar as permissões e funções de acordo.

Ao concluir essas 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 problemas relacionados a restrições de superusuário.

Desative a alta disponibilidade (confiabilidade) e leia réplicas no destino

É fundamental desabilitar a alta disponibilidade (confiabilidade) e ler réplicas no ambiente de destino antes de iniciar a migração. Esses recursos devem ser habilitados somente após a conclusão da migração.

Iniciar a migração

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

O portal do Azure oferece uma experiência simples e intuitiva baseada em assistente para guiá-lo durante a migração. Ao concluir as etapas descritas neste tutorial, você pode transferir perfeitamente seu banco de dados para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível e aproveitar seus poderosos recursos e escalabilidade.

Para migrar usando o portal do Azure, primeiro configure a tarefa de migração. Em seguida, conecte-se à origem e ao destino e inicie a migração.

Configurar a tarefa de migração

Para configurar a tarefa de migração no portal do Azure:

  1. Abra seu navegador da Web e vá para o portal do Azure. Introduza as suas credenciais para iniciar sessão.

  2. Vá para sua instância do Banco de Dados do Azure para PostgreSQL - Servidor Flexível.

  3. No menu de serviço, selecione Migração.

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

  4. Selecione Criar para migrar do Amazon Aurora para um servidor flexível.

    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 conterá informações sobre tentativas de migração.

  5. Selecione Criar para percorrer uma série de guias para configurar uma migração.

    creenshot da seleção de migração no portal do Azure.

Configurar

Introduza ou selecione as seguintes informações:

  • Nome da migração: insira um identificador exclusivo para cada migração para esse destino de servidor flexível. Você pode usar apenas caracteres alfanuméricos e hífenes (-) no nome da migração. 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 de servidor flexível que possam ter o mesmo nome.

  • Tipo de servidor de origem: selecione o tipo de origem que corresponde à sua fonte PostgreSQL, como um serviço PostgreSQL baseado em nuvem, uma configuração local ou uma máquina virtual.

  • Opção de migração: escolha uma das seguintes opções para uma validação de pré-migração:

    • Validar. Verifica a preparação do servidor e do banco de dados para a migração para a origem de destino.
    • Migrar. Ignora validações e inicia a migração.
    • Validar e migrar. Executa a validação antes de acionar uma migração. Se não houver falhas de validação, a migração será acionada.

    Uma boa prática é selecionar a opção Validar ou Validar e Migrar para validações de pré-migração.

    Para obter mais informações, consulte Validações pré-migração.

  • Modo de migração: selecione o modo para a migração. A opção padrão é Offline.

Selecione Next: Connect to source.

Captura de ecrã do separador Configuração de migração no portal do Azure.

Selecione o servidor de tempo de execução

O servidor de tempo de execução da migração é um recurso especializado do serviço de migração. O servidor de tempo de execução atua como um servidor intermediário durante a migração. É uma instância separada do Banco de Dados do Azure para PostgreSQL - Servidor Flexível que não é o servidor de destino. O servidor de tempo de execução facilita a migração de bancos de dados de um ambiente de origem que é acessível apenas através de uma rede privada.

Para obter mais informações, consulte Servidor de tempo de execução de migração.

Captura de tela da guia Servidor de Tempo de Execução de Migração.

Conecte-se à fonte

Na guia Conectar à fonte, insira ou selecione as seguintes informações para a fonte do banco de dados:

  • Nome do servidor: insira o nome do host ou o endereço IP da instância do PostgreSQL de origem.
  • Porta: insira o número da porta do servidor de origem.
  • Nome de login do administrador do servidor: digite o nome de usuário do servidor PostgreSQL de origem.
  • Senha: Digite a senha do servidor PostgreSQL de origem.
  • Modo SSL: Os valores suportados são Prefer e Require. Quando o Secure Sockets Layer (SSL) no servidor PostgreSQL de origem estiver desativado, selecione Preferir. Se o SSL no servidor de origem estiver ativado, selecione Exigir. Os valores SSL são definidos no arquivo postgresql.conf .
  • Testar conexão: inicia um teste de conectividade entre o destino e a origem. Quando a conexão for bem-sucedida, vá para a próxima etapa para identificar problemas de rede entre o destino e a origem e verificar o nome de usuário e a senha da origem. Estabelecer uma conexão de teste leva alguns minutos.

Após uma conexão de teste bem-sucedida, selecione Avançar: Selecionar destino de migração.

Captura de ecrã do separador Ligar à origem.

Selecione o destino da migração

Na guia Selecionar destino de migração, insira ou selecione as seguintes informações para o destino flexível do servidor, além da assinatura, do grupo de recursos e do nome do servidor:

  • Nome de usuário Admin: O nome de usuário admin do servidor PostgreSQL de destino.
  • Senha: A senha do servidor PostgreSQL de destino.
  • FQDN/IP personalizado (opcional): O campo FQDN/IP personalizado é opcional e pode ser usado quando o destino está atrás de um servidor DNS personalizado ou tem namespaces DNS personalizados, tornando-o acessível apenas por meio de FQDNs ou endereços IP específicos. Por exemplo, isso pode incluir entradas como flexibleserver.example.com, 198.1.0.2ou um FQDN do PostgreSQL, como flexibleserver.postgres.database.azure.com, se o servidor DNS personalizado contiver a zona postgres.database.azure.com DNS ou encaminhar consultas para essa zona para 168.63.129.16, onde o FQDN é resolvido na zona DNS pública ou privada do Azure.
  • Testar conexão: inicia um teste de conectividade entre o destino e a origem. Quando a conexão for bem-sucedida, vá para a próxima etapa para identificar problemas de rede entre o destino e a origem e verificar o nome de usuário e a senha do servidor de destino. Estabelecer uma conexão de teste leva alguns minutos.

Após uma conexão de teste bem-sucedida, selecione Avançar: Selecionar banco(s) de dados para migração.

Captura de ecrã do separador Migração de destino Ligar.

Selecionar bancos de dados para migração

Na guia Selecionar banco de dados para migração, selecione em 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 Avançar: Resumo.

Captura de ecrã do separador Selecionar bases de dados para migração.

Resumo

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

Captura de ecrã do separador Resumo da migração.

Monitorize a migração

Dentro de alguns segundos depois de selecionar Iniciar Validação e Migração, uma notificação aparece para dizer que a validação ou a criação da migração foi bem-sucedida. Você será redirecionado para o painel Migração de instância do Servidor Flexível. A entrada de estado é InProgress e o 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ã do painel de migração 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 do servidor de origem
  • Bases de dados
  • Duração
  • Start time (Hora de início)

As entradas são exibidas em ordem decrescente de hora de início, com a entrada mais recente no topo. Você pode selecionar Atualizar na barra de menus para atualizar o status da execução de validação ou migração.

Detalhes da migração

Na lista de migrações, selecione o nome de uma migração para ver os detalhes associados.

Na guia Configuração, selecione a opção de migração Validar e Migrar. Nesse cenário, as validações são concluídas antes do início da migração. Depois que o subestado PerformingPreRequisiteSteps for concluído, o fluxo de trabalho será movido para o subestado 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 Migrando dados.

Você pode verificar os detalhes de validação no nível da instância e no nível do banco de dados:

  • Validação no nível da instância:

    • Verifique a validação relacionada à verificação de conectividade para a versão de origem (a verificação de parâmetros do PostgreSQL version >= 9.5 servidor) se as extensões estiverem habilitadas nos parâmetros de servidor da instância do Banco de Dados do Azure para PostgreSQL - Servidor Flexível.
  • Validação ao nível da base de dados:

    • Verifique a validação dos bancos de dados individuais relacionados ao suporte a extensões e agrupamentos no Banco de Dados do Azure para PostgreSQL - Servidor Flexível.

Você pode ver o status atual da migração e validação no painel de detalhes da migração.

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

As tabelas a seguir descrevem alguns possíveis estados e subestados de migração.

Estados de migração

Condição Description
Em curso 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.
Falhado A migração falhou.
Falha na validação A validação falhou.
Bem sucedido A migração foi bem-sucedida e está concluída.
WaitingForUserAction Aplicável apenas em migrações online. Aguardando que um usuário execute uma substituição.

Subestados de migração

Subestado Description
ExecutandoPreRequirementseSteps A configuração da infraestrutura está em andamento para a migração de dados.
Validação em Curso A validação está em curso.
MigrandoData A migração de dados está em andamento.
ConcluindoMigração A migração está em fase final de conclusão.
Concluído A migração foi concluída.
Falhado Falha na migração.

Subestados de validação

Subestado Description
Falhado A validação falhou.
Bem sucedido A validação foi bem-sucedida.
Aviso A validação mostra um aviso.

Iniciar uma substituição

Se Migrar e Validar e Migrar aparecerem, concluir a migração online exigirá a etapa adicional de iniciar uma substituição. Após a conclusão da cópia e clonagem dos dados base, a migração é movida para o estado WaitingForUserAction e o subestado WaitingForCutoverTrigger . Nesse estado, o usuário pode acionar a transferência do portal selecionando a migração.

Antes de iniciar uma transição, é importante garantir que:

  • As gravações na fonte são interrompidas.
  • O latency valor diminui para 0 ou perto de 0.

Você pode obter o latency valor no painel de detalhes da migração:

Captura de ecrã do painel de migração de substituição.

O latency valor indica quando o destino foi sincronizado pela última vez com a origem. Neste ponto, a gravação na fonte pode ser interrompida e a substituição pode ser iniciada. Se houver tráfego intenso no servidor de origem, recomendamos que você pare as gravações primeiro para que latency possa chegar perto de 0. Em seguida, inicie um corte.

A operação de substituição aplica todas as alterações pendentes da origem para o destino e conclui a migração. Se você acionar uma substituição, mesmo com um valor diferente de zero para latency, a replicação será interrompida nesse momento. Todos os dados estão na origem até que o ponto de transferência seja aplicado ao destino. Por exemplo, se a latência for de 15 minutos no ponto de transferência, todos os dados alterados nos últimos 15 minutos serão aplicados ao destino. O tempo que a transição leva para terminar depende do acúmulo de alterações que ocorreram durante esses 15 minutos. Portanto, recomendamos que a latência vá para zero ou perto de zero antes de acionar a substituição.

Captura de tela que mostra a caixa de diálogo onde você confirma uma substituição durante a migração.

A migração é movida para o estado Bem-sucedido quando o subestado Migrando dados ou a substituição (em uma migração online) é concluída com êxito. Se houver um problema no subestado Migrando dados , a migração será movida para um estado Falha .

Captura de tela que mostra os resultados de uma migração bem-sucedida no portal do Azure.

Verificar a migração

Quando a migração do banco de dados estiver concluída, valide manualmente os dados entre a origem e o destino. Verifique se todos os objetos no banco de dados de destino foram criados com êxito.

Após a migração, você pode concluir estas 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 o SKU (versão) do servidor flexível para corresponder às necessidades do seu aplicativo. Essa alteração requer uma reinicialização do servidor de banco de dados.
  • Se você alterar quaisquer parâmetros de servidor de seus valores padrão na instância de origem, copie esses valores de parâmetro de servidor para o 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.