Migrieren von PostgreSQL auf Amazon EC2 zu Amazon RDS für PostgreSQL mit pglogical - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Migrieren von PostgreSQL auf Amazon EC2 zu Amazon RDS für PostgreSQL mit pglogical

Erstellt von Rajesh Madiwale (AWS)

Umgebung: PoC oder Pilotprojekt

Quelle: Amazon EC2

Ziel: Amazon RDS für PostgreSQL

R-Typ: Plattformwechsel

Workload: Open-Source

Technologien: Migration; Datenbanken

AWS-Services: Amazon RDS

Übersicht

Dieses Muster beschreibt die Schritte zur Migration einer PostgreSQL-Datenbank (Version 9.5 und höher) von Amazon Elastic Compute Cloud (Amazon EC2) zu Amazon Relational Database Service (Amazon RDS) für PostgreSQL mithilfe der PostgreSQL-Erweiterung pglogical. Amazon RDS unterstützt jetzt die Erweiterung pglogical für PostgreSQL Version 10.

Voraussetzungen und Einschränkungen

Voraussetzungen

Produktversionen

  • PostgreSQL Version 10 und höher auf Amazon RDS mit den in Amazon RDS unterstützten Funktionen (siehe PostgreSQL auf Amazon RDS in der AWS-Dokumentation). Dieses Muster wurde durch die Migration von PostgreSQL 9.5 zu PostgreSQL Version 10 auf Amazon RDS getestet, gilt aber auch für spätere Versionen von PostgreSQL auf Amazon RDS.

Architektur

Datenmigrationsarchitektur

Datenmigrationsarchitektur für PostgreSQL in Amazon RDS

Tools

Polen

AufgabeBeschreibungErforderliche Fähigkeiten
Erstellen Sie eine Amazon RDS PostgreSQL-DB-Instance.

Richten Sie eine PostgreSQL-DB-Instance in Amazon RDS ein. Anweisungen finden Sie in der Dokumentation zu Amazon RDS für PostgreSQL.

DBA
Rufen Sie einen Schema-Dump aus der PostgreSQL-Quelldatenbank ab und stellen Sie ihn in der PostgreSQL-Zieldatenbank wieder her.
  1. Verwenden Sie das Dienstprogramm pg_dump mit der -s Option , um eine Schemadatei aus der Quelldatenbank zu generieren.

  2. Verwenden Sie das Dienstprogramm psql mit der -f Option , um das Schema in die Zieldatenbank zu laden.

DBA
Aktivieren Sie die logische Dekodierung.

Legen Sie in der DB-Parametergruppe von Amazon RDS den rds.logical_replicationstatischen Parameter auf 1 fest. Anweisungen finden Sie in der Amazon-RDS-Dokumentation.

DBA
Erstellen Sie die Erweiterung pglogical in den Quell- und Zieldatenbanken.
  1. Erstellen Sie die pglogical Erweiterung in der PostgreSQL-Quelldatenbank:

    psql -h <amazon-ec2-endpoint> -d target-dbname -U target-dbuser -c "create extension pglogical;"
  2. Erstellen Sie die pglogical Erweiterung in der PostgreSQL-Zieldatenbank:

    psql -h <amazon-rds-endpoint> -d source-dbname -U source-dbuser -c "create extension pglogical;"
DBA
Erstellen Sie einen Herausgeber in der PostgreSQL-Quelldatenbank.

Um einen Herausgeber zu erstellen, führen Sie Folgendes aus:

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
Erstellen Sie einen Replikationssatz und fügen Sie Tabellen und Sequenzen hinzu.

Um einen Replikationssatz in der PostgreSQL-Quelldatenbank zu erstellen und dem Replikationssatz Tabellen und Sequenzen hinzuzufügen, führen Sie aus:

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

Um einen Abonnenten in der PostgreSQL-Zieldatenbank zu erstellen, führen Sie Folgendes aus:

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
Erstellen Sie ein Abonnement.

Um ein Abonnement für die PostgreSQL-Zieldatenbank zu erstellen, führen Sie Folgendes aus:

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
AufgabeBeschreibungErforderliche Fähigkeiten
Überprüfen Sie Quell- und Zieldatenbanken.

Überprüfen Sie die Quell- und Zieldatenbanken, um sicherzustellen, dass die Daten erfolgreich repliziert werden. Sie können eine grundlegende Validierung durchführen, indem Sie select count(1) aus den Quell- und Zieltabellen verwenden.

DBA

Zugehörige Ressourcen