Partilhar via


Tutorial: Migrar o RDS PostgreSQL para a Base de Dados do Azure para PostgreSQL online com o DMS

Importante

Recomendamos que você use o novo serviço de migração no Banco de Dados do Azure para PostgreSQL para uma experiência de migração mais simplificada e eficiente. Este serviço simplifica o processo, suportando uma variedade de ambientes de origem, garantindo uma transição sem complicações para a Base de Dados do Azure para PostgreSQL.

Você pode usar o Serviço de Migração de Banco de Dados do Azure para migrar bancos de dados de uma instância do RDS PostgreSQL para o Banco de Dados do Azure para PostgreSQL enquanto o banco de dados de origem permanece online durante a migração. Em outras palavras, a migração pode ser alcançada com o mínimo de tempo de inatividade para o aplicativo. Neste tutorial, você migra o DVD Rental banco de dados de exemplo de uma instância do RDS PostgreSQL 9.6 para o Banco de Dados do Azure para PostgreSQL usando a atividade de migração online no Serviço de Migração de Banco de Dados do Azure.

Neste tutorial, irá aprender a:

  • Migre o esquema de exemplo usando o utilitário pg_dump.
  • Crie uma instância do Azure Database Migration Service.
  • Crie um projeto de migração usando o Serviço de Migração de Banco de Dados do Azure.
  • Executar a migração.
  • Monitorizar a migração.
  • Execute a substituição de migração.

Usar o Serviço de Migração de Banco de Dados do Azure para executar uma migração online requer a criação de uma instância com base na camada de preço Premium. Para obter mais informações, consulte a página de preços do Serviço de Migração de Banco de Dados do Azure. Encriptamos o disco para evitar o roubo de dados durante o processo de migração.

Importante

Para uma experiência de migração otimizada, a Microsoft recomenda a criação de uma instância do 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.

Gorjeta

No Serviço de Migração de Banco de Dados do Azure, você pode migrar seus bancos de dados offline ou enquanto eles estiverem online. Em uma migração offline , o tempo de inatividade do aplicativo começa quando a migração é iniciada. Para limitar o tempo de inatividade ao tempo necessário para o novo ambiente após a migração, use uma migração online . Recomendamos que você teste uma migração offline para determinar se o tempo de inatividade é aceitável. Se o tempo de inatividade esperado não for aceitável, faça uma migração online.

Este artigo descreve como executar uma migração online de uma instância local do PostgreSQL para o Banco de Dados do Azure para PostgreSQL.

Pré-requisitos

Para concluir este tutorial, precisa de:

  • Baixe e instale o PostgreSQL community edition 9.5, 9.6 ou 10. A versão de origem do PostgreSQL Server deve ser 9.5.11, 9.6.7, 10 ou posterior. Para obter mais informações, consulte o artigo Versões suportadas do banco de dados PostgreSQL.

    A versão de destino do Banco de Dados do Azure para PostgreSQL deve ser igual ou posterior à versão do PostgreSQL do RDS. Por exemplo, o RDS PostgreSQL 9.6 só pode migrar para o Banco de Dados do Azure para PostgreSQL 9.6, 10 ou 11, mas não para o Banco de Dados do Azure para PostgreSQL 9.5.

  • Crie uma instância do Banco de Dados do Azure para PostgreSQL - Servidor Flexível.

  • Criar uma Rede Virtual do Microsoft Azure para o Azure Database Migration Service com o modelo de implementação Azure Resource Manager, que proporciona conectividade site a site aos seus servidores de origem no local através do ExpressRoute ou de uma VPN. Para obter mais informações sobre como criar uma rede virtual, consulte a Documentação da 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 da rede virtual não bloqueiem a porta de saída 443 do ServiceTag para ServiceBus, Storage e AzureMonitor. Para obter mais detalhes sobre a filtragem de tráfego do NSG da rede virtual, veja o artigo Filtrar o tráfego de rede com grupos de segurança de rede.

  • Configurar a sua Firewall do Windows para acesso ao motor de bases de dados.

  • Abra o Firewall do Windows para permitir que o Serviço de Migração de Banco de Dados do Azure acesse o servidor PostgreSQL de origem, que por padrão é a porta TCP 5432.

  • Ao usar um dispositivo de firewall na frente de seus bancos de dados de origem, talvez seja necessário adicionar regras de firewall para permitir que o Serviço de Migração de Banco de Dados do Azure acesse os bancos de dados de origem para migração.

  • Crie uma regra de firewall no nível de servidor para o Banco de Dados do Azure para o servidor PostgreSQL para permitir que o Serviço de Migração de Banco de Dados do Azure acesse os bancos de dados de destino. Forneça o intervalo de sub-redes da rede virtual utilizada no Azure Database Migration Service.

Configurar o AWS RDS PostgreSQL para replicação

  1. Para criar um novo parameter group, siga as instruções fornecidas pela AWS no artigo Working with DB Parameter Groups.

  2. Use o nome de usuário mestre para se conectar à origem do Serviço de Migração de Banco de Dados do Azure. Se você usar uma conta diferente da conta de usuário mestre, a conta deverá ter a função rds_superuser e a função rds_replication. A função rds_replication concede permissões para gerenciar slots lógicos e transmitir dados usando slots lógicos.

  3. Crie um novo parameter group com a seguinte configuração:

    • Defina o rds.logical_replication parâmetro em seu parameter group de banco de dados como 1.

    • max_wal_senders = [número de tarefas simultâneas]. O max_wal_senders parâmetro define o número de tarefas simultâneas que podem ser executadas. Configuração recomendada: 10.

    • max_replication_slots = [número de faixas horárias]. Configuração recomendada: 5.

  4. Associe o parameter group criado à instância do RDS PostgreSQL.

Migrar o esquema

  1. Extraia o esquema do banco de dados de origem e aplique ao banco de dados de destino para concluir a migração de todos os objetos de banco de dados, como esquemas de tabela, índices e procedimentos armazenados.

    A maneira mais fácil de migrar apenas o esquema é usá pg_dump com a opção -s. Para obter mais informações, consulte os exemplos no tutorial do pg_dump do Postgres.

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

    Por exemplo, para despejar um arquivo de esquema para o banco de dados dvdrental , use o seguinte comando:

    pg_dump -O -h localhost -U postgres -d dvdrental -s  > dvdrentalSchema.sql
    
  2. Crie um banco de dados vazio no serviço de destino, que é o Banco de Dados do Azure para PostgreSQL- Servidor flexível.

  3. Importe o esquema para o serviço de destino, que é o Banco de Dados do Azure para PostgreSQL. Para restaurar o arquivo de despejo de esquema, execute o seguinte comando:

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

    Por exemplo:

    psql -h mypgserver-20170401.postgres.database.azure.com  -U postgres -d dvdrental < dvdrentalSchema.sql
    

    Nota

    O serviço de migração lida internamente com a habilitação/desativação de chaves e gatilhos estrangeiros para garantir uma migração de dados confiável e robusta. Como resultado, você não precisa se preocupar em fazer modificações no esquema do banco 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. Pesquise e selecione Subscrições.

    Captura de ecrã de Mostrar subscrições do portal.

  2. Selecione a assinatura na qual você deseja criar a instância do Serviço de Migração de Banco de Dados do Azure e selecione Provedores de recursos.

    Captura de ecrã de Mostrar fornecedores de recursos.

  3. Procure migração e selecione Registrar para Microsoft.DataMigration.

    Captura de ecrã de Registar fornecedor de recursos.

Criar uma instância do Azure Database Migration Service

  1. No portal do Azure, selecione + Criar um recurso, procure Serviço de Migração de Banco de Dados do Azure e selecione Serviço de Migração de Banco de Dados do Azure na lista suspensa.

    Captura de ecrã do Azure Marketplace.

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

    Captura de ecrã de Criar instância do Serviço de Migração de Base de Dados do Azure.

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

  4. Selecione o local no qual você deseja criar a instância do Serviço de Migração de Banco de Dados do Azure.

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

    A rede virtual fornece ao Serviço de Migração de Banco de Dados do Azure acesso à instância PostgreSQL de origem e à instância de destino do Banco 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 usando o portal do Azure.

  6. Selecione um escalão de preço. Para essa migração online, selecione o nível de preço Premium: 4vCores.

    Captura de ecrã de Configurar definições de instância do Serviço de Migração de Base de Dados do Azure.

  7. Selecione Criar para criar o serviço.

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.

    Captura de ecrã de Localizar todas as instâncias do Serviço de Migração de Base de Dados do Azure.

  2. Na tela Serviços de Migração de Banco de Dados do Azure, procure o nome da instância do Serviço de Migração de Banco de Dados do Azure que você criou, selecione a instância e selecione + Novo Projeto de Migração.

  3. Na tela Novo projeto de migração, especifique um nome para o projeto, na caixa de texto Tipo de servidor de origem, selecione AWS RDS para PostgreSQL e, na caixa de texto Tipo de servidor de destino, selecione Banco de Dados do Azure para PostgreSQL.

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

    Importante

    Selecione Migração de dados online. Não há suporte para migrações offline neste cenário.

    Captura de tela de Criar Projeto de Serviço de Migração de Banco de Dados.

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

  5. Selecione Guardar.

  6. Selecione Criar e executar atividade para criar o projeto e executar a atividade de migração.

    Anote os pré-requisitos necessários para configurar a migração online no painel de criação do projeto.

Especifique os detalhes da origem

Na tela Adicionar detalhes da fonte, especifique os detalhes da conexão para a instância do PostgreSQL de origem.

Captura de tela dos detalhes da fonte.

Especifique os detalhes do destino

  1. Selecione Salvar e, na tela Detalhes do destino, especifique os detalhes da conexão para o banco de dados do Azure de destino para o servidor PostgreSQL, que é pré-provisionado e tem o esquema de aluguel de DVD implantado usando pg_dump.

    Captura de ecrã dos detalhes do Target.

  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 o banco de dados de destino contiver o mesmo nome de banco de dados que o banco de dados de origem, o Serviço de Migração de Banco de Dados do Azure selecionará o banco de dados de destino por padrão.

    Captura de ecrã de Mapear para bases de dados de destino.

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

    Captura de ecrã do Resumo da Migração.

Execute a migração

Selecione Executar a migração.

É apresentada a janela de atividade da migração e o Estado da atividade é A inicializar.

Monitorize a migração

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

    Captura de ecrã do Estado da Atividade - em execução.

  2. Em NOME DO BANCO DE DADOS, selecione um banco de dados específico para obter o status de migração para Carga total de dados e Operações de sincronização de dados incrementais.

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

    Captura de tela da tela Inventário - carregamento completo de dados.

    Captura de tela da tela Inventário - sincronização incremental de dados.

Realize a transferência da migração

Após a conclusão da carga completa inicial, os bancos de dados são marcados como Pronto para substituição.

  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 seja exibido 0 para garantir que todas as transações de entrada no banco de dados de origem sejam interrompidas, marque a caixa de seleção Confirmar e selecione Aplicar.

    Captura de tela da tela de substituição completa.

  3. Quando o status de migração do banco de dados mostrar Concluído, conecte seus aplicativos ao novo banco de dados do Azure Database for PostgreSQL de destino.

Sua migração online de uma instância local do RDS PostgreSQL para o Banco de Dados do Azure para PostgreSQL agora está concluída.