Tutorial: Migrar/Atualizar Base de Dados do Azure para PostgreSQL – Servidor Único para Base de Dados do Azure para PostgreSQL – Servidor Único online com o DMS através do portal do Azure

Pode utilizar Azure Database Migration Service para migrar as bases de dados de um Base de Dados do Azure para PostgreSQL – instância do Servidor Único para a mesma versão ou versão diferente do Base de Dados do Azure para PostgreSQL – Instância do Servidor Único ou Base de Dados do Azure para PostgreSQL – Servidor Flexível com tempo de inatividade mínimo. Neste tutorial, vai migrar a base de dados de exemplo aluguer de DVD de um Base de Dados do Azure para PostgreSQL v10 para Base de Dados do Azure para PostgreSQL - Servidor Único através da atividade de migração online no Azure Database Migration Service.

Neste tutorial, ficará a saber como:

  • Migrar o esquema de exemplo com o utilitário pg_dump.
  • Crie uma instância do Azure Database Migration Service.
  • Crie um projeto de migração no Azure Database Migration Service.
  • Executar a migração.
  • Monitorizar a migração.
  • Efetuar a transferência de migração.

Nota

Utilizar Azure Database Migration Service para efetuar uma migração online requer a criação de uma instância com base no escalão de preço Premium. Encriptamos o disco para impedir o roubo de dados durante o processo de migração

Importante

Para uma experiência de migração ideal, a Microsoft recomenda a criação de uma instância de Azure Database Migration Service na mesma região do Azure que a base de dados de destino. Mover dados entre regiões ou geografias pode retardar o processo de migração e introduzir erros.

Importante

A migração de Base de Dados do Azure para PostgreSQL é suportada para a versão 9.x e posterior do PostgreSQL. Também pode utilizar este tutorial para migrar de uma instância Base de Dados do Azure para PostgreSQL para outra instância de Base de Dados do Azure para PostgreSQL ou instância do Hyperscale (Citus). Tenha em atenção que a migração do PostgreSQL 9.5 e 9.6 requer privilégios de replicação lógica extra na instância de origem.

Pré-requisitos

Para concluir este tutorial, precisa de:

  • Verifique o estado dos cenários de migração suportados pelo Azure Database Migration Service para obter combinações de versões e migração suportadas.

  • Uma instância existente Base de Dados do Azure para PostgreSQL versão 10 e posterior com a base de dados de Aluguer de DVD.

    Tenha também em atenção que a versão Base de Dados do Azure para PostgreSQL de destino tem de ser igual ou posterior à versão do PostgreSQL no local. Por exemplo, o PostgreSQL 10 pode migrar para Base de Dados do Azure para PostgreSQL 10 ou 11, mas não para Base de Dados do Azure para PostgreSQL 9.6.

  • Crie um servidor Base de Dados do Azure para PostgreSQL ou Crie um servidor Base de Dados do Azure para PostgreSQL – Hyperscale (Citus) como o servidor de base de dados de destino para o qual migrar dados.

  • Crie um Rede Virtual do Microsoft Azure para Azure Database Migration Service com o modelo de implementação do Azure Resource Manager. Para obter mais informações sobre como criar uma rede virtual, veja a Documentação do Rede Virtual e, especialmente, os artigos de início rápido com detalhes passo a passo.

  • Certifique-se de que as regras do Grupo de Segurança de Rede (NSG) da sua rede virtual não bloqueiam a porta de saída 443 do ServiceTag para ServiceBus, Armazenamento e AzureMonitor. Para obter mais detalhes sobre a filtragem de tráfego NSG de rede virtual, veja o artigo Filtrar o tráfego de rede com grupos de segurança de rede.

  • Crie uma regra de firewall ao nível do servidor para Base de Dados do Azure para PostgreSQL origem para permitir que Azure Database Migration Service acedam às bases de dados de origem. Forneça o intervalo de sub-rede da rede virtual utilizada para Azure Database Migration Service.

  • Crie uma regra de firewall ao nível do servidor para Base de Dados do Azure para PostgreSQL destino para permitir que Azure Database Migration Service acedam às bases de dados de destino. Forneça o intervalo de sub-rede da rede virtual utilizada para Azure Database Migration Service.

  • Ative a replicação lógica na origem Base de Dados do Azure para PostgreSQL.

  • Defina os seguintes parâmetros do Servidor na instância Base de Dados do Azure para PostgreSQL que está a ser utilizada como origem:

    • max_replication_slots = [número de blocos], recomendamos que defina para dez blocos
    • max_wal_senders = [número de tarefas simultâneas] – O parâmetro max_wal_senders define o número de tarefas simultâneas que podem ser executadas, definição recomendada de 10 tarefas

Nota

Os parâmetros do servidor acima são estáticos e exigirão um reinício do seu Base de Dados do Azure para PostgreSQL instância para que entrem em vigor. Para obter mais informações sobre a agregação de parâmetros do servidor, veja Configurar Parâmetros do Servidor Base de Dados do Azure para PostgreSQL.

Importante

Todas as tabelas na base de dados existente precisam de uma chave primária para garantir que as alterações podem ser sincronizadas com a base de dados de destino.

Migrar o esquema de exemplo

Para concluir todos os objetos de base de dados, como esquemas de tabela, índices e procedimentos armazenados, é necessário extrair o esquema da base de dados de origem e aplicar à base de dados.

  1. Utilize o comando pg_dump -s para criar um ficheiro de captura de esquema para uma base de dados.

    pg_dump -O -h hostname -U db_username -d db_name -s > your_schema.sql
    

    Por exemplo, para criar um ficheiro de informação de falha de sistema de esquema para a base de dados dvdrental :

    pg_dump -O -h mypgserver-source.postgres.database.azure.com -U pguser@mypgserver-source -d dvdrental -s -x > dvdrentalSchema.sql
    

    Para obter mais informações sobre como utilizar o utilitário pg_dump, veja os exemplos no tutorial pg-dump.

  2. Crie uma base de dados vazia no ambiente de destino, que é a Base de Dados do Azure para PostgreSQL.

    Para obter detalhes sobre como ligar e criar uma base de dados, consulte o artigo Criar um servidor Base de Dados do Azure para PostgreSQL no portal do Azure ou Criar um servidor Base de Dados do Azure para PostgreSQL – Hyperscale (Citus) no portal do Azure.

    Nota

    Uma instância de Base de Dados do Azure para PostgreSQL - Hyperscale (Citus) tem apenas uma única base de dados: citus.

  3. Importe o esquema para a base de dados de destino que criou ao restaurar o ficheiro de captura de esquema.

    psql -h hostname -U db_username -d db_name < your_schema.sql
    

    Por exemplo:

    psql -h mypgserver-source.postgres.database.azure.com  -U pguser@mypgserver-source -d dvdrental citus < dvdrentalSchema.sql
    

    Nota

    O serviço de migração processa internamente a ativação/desativação de chaves externas e acionadores para garantir uma migração de dados fiável e robusta. Como resultado, não tem de se preocupar em fazer modificações ao esquema da base de dados de destino.

Registar o fornecedor de recursos

Registe o fornecedor de recursos Microsoft.DataMigration antes de criar a primeira instância do Database Migration Service.

  1. Inicie sessão no portal do Azure. Procure e selecione Subscrições.

    Mostrar subscrições no portal

  2. Selecione a subscrição na qual pretende criar a instância de Azure Database Migration Service e, em seguida, selecione Fornecedores de recursos.

    Mostrar fornecedores de recursos

  3. Procure migração e, em seguida, selecione Registar para Microsoft.DataMigration.

    Registar fornecedor de recursos

Criar uma instância do DMS

  1. No portal do Azure, selecione + Criar um recurso, procure o Azure Database Migration Service e selecione Azure Database Migration Service na lista pendente.

    Azure Marketplace

  2. No ecrã Azure Database Migration Service, selecione Criar.

    Criar instância do Azure Database Migration Service

  3. No ecrã Criar Serviço de Migração , especifique um nome, a subscrição, um grupo de recursos novo ou existente e a localização do serviço.

  4. Selecione uma rede virtual existente ou crie uma nova.

    A rede virtual fornece Azure Database Migration Service acesso ao servidor PostgreSQL de origem e à instância de destino Base de Dados do Azure para PostgreSQL.

    Para obter mais informações sobre como criar uma rede virtual no portal do Azure, consulte o artigo Criar uma rede virtual com o portal do Azure.

  5. Selecione um escalão de preço.

    Para obter mais informações sobre os custos e os escalões de preços, veja a página de preços.

    Configurar as definições da instância do Azure Database Migration Service

  6. Selecione Rever + criar para criar o serviço.

    A criação do serviço será concluída dentro de cerca de 10 a 15 minutos.

Criar um projeto de migração

Após a criação do serviço, localize-o no portal do Azure, abra-o e crie um projeto de migração novo.

  1. No portal do Azure, selecione Todos os serviços, procure Azure Database Migration Service e selecione Azure Database Migration Services.

    Localizar todas as instâncias de Azure Database Migration Service

  2. No ecrã Azure Database Migration Services, procure o nome da instância Azure Database Migration Service que criou, selecione a instância e, em seguida, selecione + Novo Projeto de Migração.

  3. No ecrã Novo projeto de migração, especifique um nome para o projeto, na caixa de texto Tipo de servidor de origem, selecione PostgreSQL, na caixa de texto Tipo de servidor de destino, selecione Base de Dados do Azure para PostgreSQL.

    Nota

    Selecione PostgreSQL no tipo de servidor de origem, mesmo que o servidor de origem seja uma instância Base de Dados do Azure para PostgreSQL.

  4. Na secção Escolher tipo de atividade , selecione Migração de dados online.

    Criar Azure Database Migration Service projeto

    Nota

    Em alternativa, pode escolher Criar projeto apenas para criar o projeto de migração agora e executar a migração mais tarde.

  5. Selecione Guardar, tenha em atenção os requisitos para utilizar com êxito Azure Database Migration Service para migrar dados e, em seguida, selecione Criar e executar atividade.

Especificar os detalhes da origem

  1. No ecrã Adicionar Detalhes da Origem, especifique os detalhes da ligação para a instância postgreSQL de origem.

    Ecrã Adicionar Detalhes da Origem

    Nota

    Pode encontrar detalhes como "Nome do servidor", "Porta do servidor", "Nome da base de dados", etc. no portal de Base de Dados do Azure para PostgreSQL.

  2. Selecione Guardar.

Especificar os detalhes do destino

  1. No ecrã Detalhes do destino, especifique os detalhes de ligação do servidor Hyperscale (Citus) de destino, que é a instância pré-aprovisionada do Hyperscale (Citus) para a qual o esquema de Aluguer de DVD foi implementado com pg_dump.

    Ecrã Detalhes do destino

    Nota

    Pode migrar de uma instância Base de Dados do Azure para PostgreSQL para outro Base de Dados do Azure para PostgreSQL instância de servidor único ou para um servidor Hyperscale (Citus).

  2. Selecione Guardar e, no ecrã Mapear para bases de dados de destino, mapeie as bases de dados de origem e destino para migração.

    Se a base de dados de destino contiver o mesmo nome de base de dados que a base de dados de origem, Azure Database Migration Service seleciona a base de dados de destino por predefinição.

    Mapear para o ecrã de bases de dados de destino

  3. Selecione Guardar e, em seguida, no ecrã Definições de migração , aceite os valores predefinidos.

    Ecrã de definições de migração

  4. Selecione Guardar, no ecrã Resumo da migração, na caixa de texto Nome da atividade, especifique um nome para a atividade de migração e, em seguida, reveja o resumo para garantir que os detalhes de origem e de destino correspondem aos que foram anteriormente especificados.

    Ecrã de resumo da migração

Executar a migração

  • Selecione Executar a migração.

A janela de atividade de migração é apresentada e o Estado da atividade deve ser atualizado para ser apresentado como Cópia de Segurança em Curso. Poderá encontrar o seguinte erro ao atualizar a partir de Base de Dados do Azure para PostgreSQL 9.5 ou 9.6:

Um cenário reportou um erro desconhecido. 28000: nenhuma entrada pg_hba.conf para ligação de replicação do anfitrião "40.121.141.121", utilizador "sr"

Isto deve-se ao facto de o PostgreSQL não ter privilégios adequados para criar os artefactos de replicação lógica necessários. Para ativar os privilégios necessários, pode fazer o seguinte:

  1. Abra as definições de "Segurança da ligação" para o servidor de Base de Dados do Azure para PostgreSQL de origem a partir do qual está a tentar migrar/atualizar.
  2. Adicione uma nova regra de firewall com um nome que termine com "_replrule" e adicione o endereço IP da mensagem de erro aos campos IP inicial e Ip Final. Para o exemplo de erro acima -

Nome da regra de firewall = sr_replrule; Iniciar IP = 40.121.141.121; IP final = 40.121.141.121

  1. Clique em guardar e deixe a alteração ser concluída.
  2. Repita a atividade do DMS.

Monitorizar a migração

  1. No ecrã de atividade de migração, selecione Atualizar para atualizar a vista até que o Estado da migração apareça como Concluída.

    Monitorizar o processo de migração

  2. Quando a migração estiver concluída, em Nome da Base de Dados, selecione uma base de dados específica para aceder ao estado de migração para Carga completa de dados e Operações incrementais de sincronização de dados .

    Nota

    A carga de dados completa mostra o estado inicial da migração de carga, enquanto a sincronização incremental de dados mostra o estado da captura de dados alterados (CDC).

    Detalhes completos do carregamento de dados

    Detalhes de sincronização de dados incrementais

Realizar transferência de migração

Depois de concluída a Carga completa inicial, as bases de dados são marcadas como Preparadas para transferência.

  1. Quando estiver pronto para concluir a migração da base de dados, selecione Iniciar Transferência.

  2. Aguarde até que o contador alterações pendentes mostre 0 para garantir que todas as transações recebidas na base de dados de origem estão paradas, selecione a caixa de verificação Confirmar e, em seguida, selecione Aplicar.

    Ecrã de transferência completo

  3. Quando o estado de migração da base de dados mostrar Concluído, recrie sequências (se aplicável) e ligue as aplicações à nova instância de destino do Base de Dados do Azure para PostgreSQL.

Nota

Azure Database Migration Service podem ser utilizadas para realizar atualizações de versões principais com tempo de inatividade reduzido no Base de Dados do Azure para PostgreSQL – Servidor Único. Primeiro, pode configurar uma base de dados de destino com a versão do PostgreSQL mais elevada pretendida, definições de rede e parâmetros. Em seguida, pode iniciar a migração para as bases de dados de destino com o procedimento explicado acima. Após a transferência para o servidor de base de dados de destino, pode atualizar a cadeia de ligação da aplicação para apontar para o servidor de base de dados de destino.

Passos seguintes