Tutorial: Migrar o PostgreSQL para o Banco de Dados do Azure para PostgreSQL online usando DMS (clássico) por meio do portal do Azure
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.
Para obter mais informações sobre o Serviço de Migração de Banco de Dados do Azure, consulte o artigo O que é o Serviço de Migração de Banco de Dados do Azure?
Você pode usar o Serviço de Migração de Banco de Dados do Azure para migrar os bancos de dados de uma instância do PostgreSQL local para o Banco de Dados do Azure para PostgreSQL com o mínimo de tempo de inatividade para o aplicativo. Neste tutorial, você migra o banco de dados de exemplo listdb de uma instância local do PostgreSQL 13.10 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 no 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. Encriptamos o disco para evitar 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 do Serviço de Migração de Banco de Dados do Azure na mesma região do Azure que o banco de dados de destino. Mover dados entre regiões ou geografias pode retardar o processo de migração e introduzir erros.
Pré-requisitos
Para concluir este tutorial, precisa de:
Baixe e instale o PostgreSQL community edition. A versão de origem do PostgreSQL Server deve ser >= 9.4. Para obter mais informações, consulte Versões suportadas do PostgreSQL no Banco de Dados do Azure para PostgreSQL - Servidor Flexível.
Observe também que a versão de destino do Banco de Dados do Azure para PostgreSQL deve ser igual ou posterior à versão local do PostgreSQL. Por exemplo, o PostgreSQL 12 pode migrar para o Banco de Dados do Azure para PostgreSQL >= versão 12, mas não para o Banco de Dados do Azure para PostgreSQL 11.
Criar um servidor da Base de Dados do Azure para PostgreSQL.
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.
Durante a configuração da rede virtual, se você usar a Rota Expressa com emparelhamento de rede para a Microsoft, adicione os seguintes pontos de extremidade de serviço à sub-rede na qual o serviço será provisionado:
- Ponto final da base de dados de destino (por exemplo, ponto final do SQL, ponto final do Azure Cosmos DB, etc.)
- Ponto final de armazenamento
- Ponto final do Service Bus
Esta configuração é necessária porque o Azure Database Migration Service não tem conectividade à Internet.
Certifique-se de que as regras do NSG (Grupo de Segurança de Rede) para sua 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 a firewall do Windows para permitir ao Azure Database Migration Service aceder ao Servidor PostgreSQL de origem, que, por predefinição, é a porta TCP 5432.
Ao usar um dispositivo de firewall na frente do(s) seu(s) banco(s) 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 o(s) banco(s) de dados de origem para migração.
Crie uma regra de firewall ao nível do servidor para a Base de Dados do Azure para PostgreSQL para permitir que o Azure Database Migration Service aceda às bases de dados de destino. Forneça o intervalo de sub-redes da rede virtual utilizada no Azure Database Migration Service.
Ative a replicação lógica no ficheiro postgresql.config e defina os seguintes parâmetros:
- wal_level = logical
- max_replication_slots = [número de slots], recomendo a configuração para cinco slots
- 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
O utilizador tem de ter a função REPLICATION no servidor que aloja a base de dados de origem.
Importante
Todas as tabelas em seu banco de dados existente precisam de uma chave primária para garantir que as alterações possam ser sincronizadas com o banco 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.
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 arquivo de despejo de esquema para o banco de dados listdb :
pg_dump -O -h localhost -U postgres -d listdb -s -x > listdbSchema.sql
Para obter mais informações sobre como utilizar o utilitário pg_dump, veja os exemplos no tutorial pg-dump.
Crie uma base de dados vazia no ambiente de destino, que é a Base de Dados do Azure para PostgreSQL.
Para obter detalhes sobre como conectar e criar um banco de dados, consulte o artigo Criar um Banco de Dados do Azure para o servidor PostgreSQL no portal do Azure.
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-20170401.postgres.database.azure.com -U postgres -d migratedb < listdbSchema.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.
Inicie sessão no portal do Azure. Pesquise e selecione Subscrições.
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.
Procure migração e selecione Registrar para Microsoft.DataMigration.
Criar uma instância do Azure Database Migration Service
No menu do portal do Azure ou na página inicial , selecione Criar um recurso. Procure e selecione Serviço de Migração de Banco de Dados do Azure.
No ecrã Azure Database Migration Service, selecione Criar.
Selecione o tipo de servidor de origem e o tipo de servidor de destino apropriados e escolha a opção Serviço de Migração de Banco de Dados (Clássico).
Na tela Criar noções básicas do Serviço de Migração:
- Selecione uma subscrição.
- Crie um novo grupo de recursos ou escolha um existente.
- Especifique um nome para a instância do Serviço de Migração de Banco de Dados do Azure.
- Selecione o local no qual você deseja criar a instância do Serviço de Migração de Banco de Dados do Azure.
- Escolha Azure como o modo de serviço.
- 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.
- Selecione Next: Networking.
Na tela Criar rede do Serviço de Migração:
- 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 ao servidor de origem e à instância de destino. 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.
Selecione Rever + Criar para rever os detalhes e, em seguida, selecione Criar para criar o serviço.
Após alguns momentos, sua instância do serviço de Migração de Banco de Dados do Azure é criada e está pronta para uso:
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.
No portal do Azure, selecione Todos os serviços, procure Azure Database Migration Service e selecione Azure Database Migration Services.
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.
Na tela 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 Banco de Dados do Azure para PostgreSQL.
Na seção Tipo de atividade de migração, selecione Migração de dados online.
Como alternativa, você pode escolher Criar projeto apenas para criar o projeto de migração agora e executar a migração mais tarde.
Selecione Criar e executar atividade para usar com êxito o Serviço de Migração de Banco de Dados do Azure para migrar dados.
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.
Especifique os detalhes do destino
Na tela Detalhes do destino, especifique os detalhes da conexão para o Banco de Dados do Azure de destino para PostgreSQL - Servidor flexível, que é a instância pré-provisionada na qual o esquema foi implantado usando pg_dump.
Selecione Avançar:Selecionar bancos de dados e, na tela Selecionar bancos de dados, mapeie o banco de dados de origem e de 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.
Selecione Avançar :Selecionar tabelas e, na tela Selecionar tabelas , selecione as tabelas necessárias que precisam ser migradas.
Selecione Avançar:Configurar configurações de migração e, na tela Configurar configurações de migração, aceite os valores padrão.
Na tela Resumo da migração, na caixa de texto Nome da atividade, especifique um nome para a atividade de migração e revise o resumo para garantir que os detalhes de origem e destino correspondam ao que você especificou anteriormente.
Execute a migração
Selecione Iniciar migração.
A janela de atividade de migração é exibida e o Status da atividade deve ser atualizado para ser exibido como Backup em andamento.
Monitorize a migração
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.
Quando a migração estiver concluída, em Nome do Banco de Dados, selecione um banco de dados específico para obter o status da migração para Carga total de dados e Operações de sincronização de dados incrementais.
Nota
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).
Realize a transferência da migração
Depois de concluída a Carga completa inicial, as bases de dados são marcadas como Preparadas para transferência.
Quando estiver pronto para concluir a migração da base de dados, selecione Iniciar Transferência.
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.Quando o status de migração do banco de dados mostrar Concluído, recrie sequências (se aplicável) e conecte seus aplicativos à nova instância de destino do Banco de Dados do Azure para PostgreSQL.