Tutorial: Migrar online de uma VM do Azure ou de um servidor PostgreSQL local para o Banco de Dados do Azure para PostgreSQL com o serviço de migração Preview
APLICA-SE A: Banco de Dados do Azure para PostgreSQL - Servidor Flexível
Este artigo orienta você na migração de uma instância do PostgreSQL de suas máquinas virtuais (VMs) locais ou do Azure para o banco de dados do Azure para o servidor flexível 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
- Verifique 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 Banco de Dados do Azure para PostgreSQL, é importante cumprir os seguintes pré-requisitos, projetados especificamente para cenários de migração online.
- Verifique a versão de origem
- Instalar test_decoding - Configuração de origem
- Configurar a configuração de destino
- Habilitar o CDC como fonte
- Configurar a configuração da rede
- Ativar extensões
- Verificar parâmetros do servidor
- Verificar usuários e funções
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 menor que 9.5, atualize-a para 9.5 ou superior antes de iniciar a migração.
Instalar test_decoding - Configuração de origem
test_decoding recebe WAL através do mecanismo de decodificação lógica e decodifica-o em representações de texto das operações realizadas.
Para obter mais informações sobre o plug-in de descodificaçã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.
- SKU provisionado para o Banco de Dados do Azure para PostgreSQL – O servidor flexível deve corresponder à origem.
- Para criar um novo Banco de Dados do Azure para PostgreSQL, visite Criar um Banco de Dados do Azure para PostgreSQL
- Ao migrar entre versões do PostgreSQL (principais ou secundárias), garanta a compatibilidade entre seu banco de dados e o aplicativo revisando as notas de versão para verificar possíveis alterações de rutura.
Habilitar o CDC como fonte
test_decoding
O plugin de decodificação lógica captura os registros alterados da fonte.- Na instância de origem do PostgreSQL, defina os seguintes parâmetros e valores no arquivo de configuração postgresql.conf:
Set wal_level = logical
Set max_replication_slots
Para um valor maior que 1, o valor deve ser maior do que o número de bancos de dados selecionados para migração.Set max_wal_senders
para um valor maior que 1, deve ser definido como pelo menos o mesmo que max_replication_slots, mais o número de remetentes já usados pela sua instância.- O
wal_sender_timeout
parâmetro encerra as conexões de replicação que estão inativas por mais tempo do que o número especificado de milissegundos. O padrão para um banco de dados PostgreSQL local é 60000 milissegundos (60 segundos). Definir o valor como 0 (zero) desativa o mecanismo de tempo limite e é uma configuração válida para migração.
Para evitar que a migração Online fique sem espaço, verifique se você tem espaço de tabela suficiente usando um disco gerenciado provisionado. Para conseguir isso, desative o parâmetro azure.enable_temp_tablespaces_on_local_ssd
server no servidor flexível durante a migração e restaure-o 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 Banco de Dados do Azure de destino para o servidor PostgreSQL. As seguintes configurações de rede são essenciais para uma migração bem-sucedida.
Para obter informações sobre a configuração da rede, visite Guia de rede para o serviço de migração.
- Considerações adicionais sobre a 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.
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.
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
- Você precisa configurar manualmente os valores de parâmetro do servidor no Banco de Dados do Azure para PostgreSQL – Servidor flexível com base nos valores de parâmetro do servidor configurados na origem.
Verificar usuários e funções
- Os usuários e funções diferentes devem ser migrados manualmente para o Banco de Dados do Azure para PostgreSQL – Servidor flexível. Para migrar usuários e funções, você pode usar
pg_dumpall --globals-only -U <<username> -f <<filename>>.sql
o . - Banco de Dados do Azure para PostgreSQL – O servidor flexível não suporta nenhum superusuário; Os usuários com funções de superusuário precisam ser removidos antes da migração.
Executar a migração
Você pode migrar usando o portal do Azure ou a CLI do Azure.
Este artigo orienta você usando o portal do Azure para migrar seu banco de dados PostgreSQL de uma VM do Azure ou de um servidor PostgreSQL local 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 perfeitamente seu banco de dados para o Azure e aproveitar seus poderosos recursos e escalabilidade.
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. Veja como começar:
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.
Vá para o seu Banco de Dados do Azure para o destino do Servidor Flexível PostgreSQL.
Na guia Visão geral do servidor flexível, no menu à esquerda, role para baixo até Migração e selecione-a.
Selecione o botão Criar para migrar de uma máquina virtual (VM) do Azure ou de um servidor PostgreSQL local para o Servidor Flexível. Se esta for a primeira vez que você usa o serviço de migração, uma grade vazia será exibida com um prompt para iniciar sua primeira migração.
Se você já criou migrações para o destino do Servidor Flexível, a grade contém informações sobre tentativas de migração.
Selecione o botão Criar. Em seguida, você passa por uma série de guias baseadas em assistente para criar uma migração para esse destino de servidor flexível a partir do servidor de origem PostgreSQL.
Configurar
A primeira guia é a guia de configuração, onde o usuário inicia as migrações fornecendo detalhes da migração, como nome da migração e tipo de origem.
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, você pode selecionar VM do Azure ou local.
A opção de migração permite que você execute 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 somente se não houver falhas de validação.
Escolher a opção Validar ou Validar e Migrar é sempre uma boa prática ao executar validações de pré-migração antes de executar a migração. Para saber mais sobre a validação pré-migração, consulte esta documentaçã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 ).
Servidor de tempo de execução
O Servidor de Tempo de Execução 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. É um Banco de Dados do Azure separado para PostgreSQL - instância do Servidor Flexível que não é o servidor de destino, mas é usado para facilitar a migração de bancos de dados de um ambiente de origem que só é acessível por meio de uma rede privada.
Para obter mais informações sobre o Runtime Server, visite o Migration Runtime Server.
Ligar à origem
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. Quando a conexão for bem-sucedida, os usuários poderão prosseguir com a próxima etapa. Caso contrário, você precisa 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 Next : Select Migration target
Selecionar destino de migração
A guia selecionar destino de migração exibe metadados para o destino Servidor flexível, como o 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
- 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.2
ou um FQDN do PostgreSQL, comoflexibleserver.postgres.database.azure.com
, se o servidor DNS personalizado contiver a zonapostgres.database.azure.com
DNS ou encaminhar consultas para essa zona para168.63.129.16
, onde o FQDN é resolvido na zona DNS pública ou privada do Azure. - 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
Selecionar bancos de dados para migração
Nesta guia, uma lista de bancos de dados de usuários está dentro do servidor de origem selecionado na guia de configuração. Você pode selecionar e migrar até oito bancos de dados em uma única tentativa de migração. Se houver mais de oito bancos de dados de usuários, o processo de migração será repetido entre os servidores de origem e de destino para o próximo conjunto de bancos de dados.
Depois de selecionar os bancos de dados, selecione Next : Summary
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.
Monitorize a migração
Depois de selecionar o botão Iniciar, uma notificação aparece em alguns segundos, informando que a validação ou a criação da migração foi bem-sucedida. Você é redirecionado automaticamente para a folha Migração do Servidor Flexível, que tem uma nova entrada para a validação ou migração criada recentemente.
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 validação ou migração. Selecione o nome da migração na grade para ver os detalhes associados.
Quando a validação ou migração é criada, ela é movida para o estado InProgress e para o subestado PerformingPreRequirementeSteps. O fluxo de trabalho leva de 2 a 3 minutos para configurar a infraestrutura de migração e as conexões de rede.
Detalhes da migração
Na guia Configuração, selecionamos a opção de migração como Migrar e Validar. 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 será movido para o subestado 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 erros, a migração será iniciada e o fluxo de trabalho será movido para o subestado de Migrando dados.
Os resultados da validação são exibidos na guia Validação e a migração é monitorada na guia Migração .
Alguns estados de migração possíveis:
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 para migração online. Aguardando a ação do usuário para executar a 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 | A migração falhou. |
Subestados de validação
Subestado | Description |
---|---|
Falhado | A validação falhou. |
Bem sucedido | A validação foi bem-sucedida. |
Aviso | A validação está em alerta. |
Transferência
Se houver Migrar e Validar e Migrar, concluir a migração online exigirá outra etapa — o usuário deverá executar uma ação de substituição. Após a conclusão da cópia/clone dos dados de base, a migração é movida para o WaitingForUserAction
estado e o WaitingForCutoverTrigger
substrato. Nesse estado, o usuário pode acionar a transferência do portal selecionando a migração.
Antes de iniciar o corte, é importante garantir que:
- As gravações na fonte são interrompidas -
Latency
o valor é 0 ou próximo de 0. AsLatency
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. A escrita na fonte pode ser interrompida neste ponto, e uma transição pode ser iniciada. No caso de haver tráfego intenso na origem, recomenda-se parar as gravações primeiro para queLatency
possa chegar perto de 0 e, em seguida, uma substituição é iniciada.
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 diferente de zero Latency,
, a replicação será interrompida até esse momento. Todos os dados na origem até o ponto de corte são então aplicados ao destino. Se ocorrer uma latência de 15 minutos no ponto de transferência, todos os dados alterados nos últimos 15 minutos serão aplicados ao destino.
O tempo depende do backlog de alterações ocorridas nos últimos 15 minutos. Assim, recomenda-se que a latência vá para zero ou perto de zero antes de acionar o corte.
- A migração é movida para o
Succeeded
estado quando oMigrating Data
subestado ou a substituição (na migração online) é concluída com êxito. Se houver um problema noMigrating Data
subestado, a migração passa para umFailed
estado.
Cancelar a migração
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 no estado Bem-sucedido ou Reprovado .
O cancelamento de uma validação interrompe qualquer atividade de validação adicional e a validação passa 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 . Ele não solta ou reverte nenhuma alteração no servidor de destino. Certifique-se de soltar os bancos de dados no servidor de destino envolvido em uma migração cancelada.
Verifique a migração quando concluída
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.