Migrar do PostgreSQL no Amazon EC2 para o Amazon RDS para PostgreSQL usando pglogical - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Migrar do PostgreSQL no Amazon EC2 para o Amazon RDS para PostgreSQL usando pglogical

Criado por Rajesh Madiwale (AWS)

Ambiente: PoC ou piloto

Origem: Amazon EC2

Destino: Amazon RDS para PostgreSQL

Tipo R: redefinir a plataforma

Workload: Código aberto

Tecnologias: migração; bancos de dados

Serviços da AWS: Amazon RDS

Resumo

Este padrão descreve as etapas para migrar um banco de dados PostgreSQL (versão 9.5 e posterior) do Amazon Elastic Compute Cloud (Amazon EC2) para o Amazon Relational Database Service (Amazon RDS) para PostgreSQL usando a extensão pglógica do PostgreSQL. O Amazon RDS agora tem suporte para a extensão pglogical nas versões 10 e posteriores do PostgreSQL.

Pré-requisitos e limitações

Pré-requisitos

Versões do produto

  • PostgreSQL versão 10 e posterior no Amazon RDS, com os recursos suportados no Amazon RDS (consulte PostgreSQL no Amazon RDS na documentação da AWS). Esse padrão foi testado com a migração do PostgreSQL 9.5 para o PostgreSQL versão 10 no Amazon RDS, mas também se aplica às versões posteriores do PostgreSQL no Amazon RDS.

Arquitetura

Arquitetura de migração de dados

Arquitetura de migração de dados para o PostgreSQL no Amazon RDS

Ferramentas

Épicos

TarefaDescriçãoHabilidades necessárias
Criar uma instância de banco de dados do Amazon RDS PostgreSQL

Atualizar uma instância de banco de dados PostgreSQL no Amazon RDS. Para obter instruções, consulte a documentação do Amazon RDS para PostgreSQL.

DBA
Obter um despejo de esquema do banco de dados PostgreSQL de origem e restaurar no banco de dados PostgreSQL de destino.
  1. Use o utilitário pg_dump com a opção -s de gerar um arquivo de esquema do banco de dados de origem.

  2. Use o utilitário psql com a opção -f de carregar o esquema no banco de dados de destino.

DBA
Habilitar decodificação lógica.

No grupo de parâmetros de banco de dados do Amazon RDS, defina o parâmetro estático rds.logical_replication como 1. Para obter instruções, consulte a documentação do Amazon RDS.

DBA
Criar a extensão pglogical nos bancos de dados de origem e de destino.
  1. Criar a extensão pglogical no banco de dados PostgreSQL de origem:

    psql -h <amazon-ec2-endpoint> -d target-dbname -U target-dbuser -c "create extension pglogical;"
  2. Criar a extensão pglogical no banco de dados PostgreSQL de destino:

    psql -h <amazon-rds-endpoint> -d source-dbname -U source-dbuser -c "create extension pglogical;"
DBA
Criar um publicador no banco de dados PostgreSQL de origem.

Para criar um publicador, execute:

psql -d dbname -p 5432 <<EOF SELECT pglogical.create_node( node_name := 'provider1', dsn := 'host=<ec2-endpoint> port=5432 dbname=source-dbname user=source-dbuser' ); EOF
DBA
Criar um conjunto de replicação, adicionar tabelas e sequências.

Para criar um conjunto de replicação no banco de dados PostgreSQL de origem e adicionar tabelas e sequências ao conjunto de replicação, execute:

psql -d dbname -p 5432 <<EOF SELECT pglogical.replication_set_add_all_tables('default', '{public}'::text[],synchronize_data := true); EOF
DBA
Criar um assinante.

Para criar um assinante no banco de dados PostgreSQL de destino, execute:

psql -h <rds-endpoint> -d target-dbname -U target-dbuser  <<EOF SELECT pglogical.create_node(     node_name := 'subscriber1', dsn := 'host=<rds-endpoint> port=5432 dbname=target-dbname password=postgres user=target-dbuser' ); EOF
DBA
Criar uma assinatura.

Para criar uma assinatura no banco de dados PostgreSQL de destino, execute:

psql -h <rds-endpoint> -d target -U postgres <<EOF SELECT pglogical.create_subscription(  subscription_name := 'subscription1',  replication_sets := array['default'],     provider_dsn := 'host=<ec2-endpoint> port=5432 dbname=<source-dbname> password=<password> user=source-dbuser' );
DBA
TarefaDescriçãoHabilidades necessárias
Verificar os bancos de dados de origem e de destino.

Verifique os bancos de dados de origem e destino para confirmar se os dados estão sendo replicados com sucesso. Você pode realizar validação básica usando select count(1) da origem e tabelas de destino.

DBA

Recursos relacionados