Migre do PostgreSQL na Amazon para o EC2 Amazon RDS for 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á.

Migre do PostgreSQL na Amazon para o EC2 Amazon RDS for PostgreSQL usando pglogical

Rajesh Madiwale, Amazon Web Services

Resumo

Esse padrão descreve as etapas para migrar um banco de dados PostgreSQL (versão 9.5 e posterior) do Amazon Elastic Compute Cloud (Amazon) para o Amazon EC2 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

TarefaDescriptionHabilidades 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
TarefaDescriptionHabilidades 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