Einrichtung der logischen Replikation für den - Amazon Relational Database Service

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.

Einrichtung der logischen Replikation für den

Das folgende Verfahren zeigt Ihnen, wie Sie die logische Replikation zwischen zwei starten. RDSfür SQL Postgre-DB-Instances. Bei den Schritten wird davon ausgegangen, dass sowohl für die Quelle (Herausgeber) als auch für das Ziel (Abonnent) die pglogical-Erweiterung eingerichtet wurde, wie unter Einrichten der pglogical-Erweiterung beschrieben.

So erstellen Sie den Herausgeberknoten und die zu replizierenden Tabellen

Bei diesen Schritten wird davon ausgegangen, dass Ihr für die SQL Postgre-DB-Instance verfügt, die über eine Datenbank mit einer oder mehreren Tabellen verfügt, die Sie auf einen anderen Knoten replizieren möchten. Sie müssen die Tabellenstruktur des Herausgebers für den Abonnenten neu erstellen. Rufen Sie daher bei Bedarf zunächst die Tabellenstruktur ab. Verwenden Sie dazu den psq1-Metabefehl \d tablename und erstellen Sie dann dieselbe Tabelle auf der Abonnenten-Instance. Mit dem folgenden Verfahren wird zu Demonstrationszwecken eine Beispieltabelle für den Herausgeber (Quelle) erstellt.

  1. Verwenden Sie psql, um eine Verbindung zu der Instance herzustellen, die die Tabelle enthält, die Sie als Quelle für Abonnenten verwenden möchten.

    psql --host=source-instance.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=labdb

    Wenn Sie noch keine vorhandene Tabelle haben, die Sie replizieren möchten, können Sie wie folgt eine Beispieltabelle erstellen.

    1. Erstellen Sie mit der folgenden Anweisung eine Beispieltabelle. SQL

      CREATE TABLE docs_lab_table (a int PRIMARY KEY);
    2. Füllen Sie die Tabelle mit generierten Daten auf, indem Sie die folgende SQL Anweisung verwenden.

      INSERT INTO docs_lab_table VALUES (generate_series(1,5000)); INSERT 0 5000
    3. Stellen Sie mithilfe der folgenden SQL Anweisung sicher, dass Daten in der Tabelle vorhanden sind.

      SELECT count(*) FROM docs_lab_table;
  2. Identifizieren Sie diesen für die SQL Postgre-DB-Instance wie folgt als Publisher-Knoten.

    SELECT pglogical.create_node( node_name := 'docs_lab_provider', dsn := 'host=source-instance.aws-region.rds.amazonaws.com port=5432 dbname=labdb'); create_node ------------- 3410995529 (1 row)
  3. Fügen Sie die Tabelle, die Sie replizieren möchten, zum Standardreplikationssatz hinzu. Weitere Informationen zu Replikationssätzen finden Sie unter Replikationssätze in der Dokumentation zur pglogical-Erweiterung.

    SELECT pglogical.replication_set_add_table('default', 'docs_lab_table', 'true', NULL, NULL); replication_set_add_table --------------------------- t (1 row)

Die Einrichtung des Herausgeberknotens ist abgeschlossen. Sie können jetzt den Abonnentenknoten einrichten, um die Updates vom Herausgeber zu erhalten.

So richten Sie den Abonnentenknoten ein und erstellen ein Abonnement für den Empfang von Updates

Bei diesen Schritten wird davon ausgegangen, dass der für die SQL Postgre-DB-Instance mit der pglogical Erweiterung eingerichtet wurde. Weitere Informationen finden Sie unter Einrichten der pglogical-Erweiterung.

  1. Verwenden Sie psql, um sich mit der Instance zu verbinden, die Updates vom Herausgeber erhalten soll.

    psql --host=target-instance.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=labdb
  2. Erstellen Sie auf dem für die SQL Postgre-DB-Instance dieselbe Tabelle, die auf dem Publisher vorhanden ist. In diesem Beispiel heißt die Tabelle docs_lab_table. Sie können die Tabelle wie folgt erstellen.

    CREATE TABLE docs_lab_table (a int PRIMARY KEY);
  3. Stellen Sie sicher, dass diese Tabelle leer ist.

    SELECT count(*) FROM docs_lab_table; count ------- 0 (1 row)
  4. Identifizieren Sie diesen für die SQL Postgre-DB-Instance wie folgt als Abonnentenknoten.

    SELECT pglogical.create_node( node_name := 'docs_lab_target', dsn := 'host=target-instance.aws-region.rds.amazonaws.com port=5432 sslmode=require dbname=labdb user=postgres password=********'); create_node ------------- 2182738256 (1 row)
  5. Erstellen Sie das Abonnement.

    SELECT pglogical.create_subscription( subscription_name := 'docs_lab_subscription', provider_dsn := 'host=source-instance.aws-region.rds.amazonaws.com port=5432 sslmode=require dbname=labdb user=postgres password=*******', replication_sets := ARRAY['default'], synchronize_data := true, forward_origins := '{}' ); create_subscription --------------------- 1038357190 (1 row)

    Wenn Sie diesen Schritt abschließen, werden die Daten aus der Tabelle des Herausgeberknotens in der Tabelle auf dem Abonnentenknoten erstellt. Mithilfe der folgenden SQL Abfrage können Sie überprüfen, ob dies der Fall ist.

    SELECT count(*) FROM docs_lab_table; count ------- 5000 (1 row)

Ab diesem Zeitpunkt werden Änderungen, die an der Tabelle auf dem Herausgeberknoten vorgenommen wurden, auf die Tabelle auf dem Abonnentenknoten repliziert.