Migrieren Sie mit pglogical von PostgreSQL auf Amazon EC2 zu Amazon RDS for PostgreSQL - 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 Sie mit pglogical von PostgreSQL auf Amazon EC2 zu Amazon RDS for PostgreSQL

Erstellt von Rajesh Madiwale (AWS)

Übersicht

Dieses Muster beschreibt die Schritte für die Migration einer PostgreSQL-Datenbank (Version 9.5 und höher) von Amazon Elastic Compute Cloud (Amazon) zu Amazon Relational Database Service (Amazon RDS EC2) für PostgreSQL mithilfe der pglogischen PostgreSQL-Erweiterung. 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, wobei die Funktionen auf Amazon RDS unterstützt werden (siehe PostgreSQL on Amazon RDS in der AWS-Dokumentation). Dieses Muster wurde durch die Migration von PostgreSQL 9.5 auf PostgreSQL Version 10 auf Amazon RDS getestet, gilt aber auch für spätere Versionen von PostgreSQL auf Amazon RDS.

Architektur

Architektur der Datenmigration

Datenmigrationsarchitektur für PostgreSQL auf Amazon RDS

Tools

Epen

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 for 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 Hilfsprogramm pg_dump mit der -s Option, um eine Schemadatei aus der Quelldatenbank zu generieren.

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

DBA
Schalten Sie die logische Dekodierung ein.

Setzen Sie in der Amazon RDS-DB-Parametergruppe den rds.logical_replication statischen Parameter auf 1. Anweisungen finden Sie in der Amazon RDS-Dokumentation.

DBA
Erstellen Sie die pglogische Erweiterung für die Quell- und Zieldatenbank.
  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 folgenden Befehl 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, 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 folgenden Befehl 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 folgenden Befehl 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 folgenden Befehl 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 die Quell- und Zieldatenbanken.

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

DBA

Zugehörige Ressourcen