Selbstverwaltete PostgreSQL-Datenbank für CDC konfigurieren

Mit Datastream können Sie Change Data Capture-Updates (CDC) aus einer selbstverwalteten PostgreSQL- oder AlloyDB Omni-Datenbank in ein unterstütztes Ziel wie BigQuery oder Cloud Storage streamen. Zum Vorbereiten der Quelldatenbank aktivieren Sie die logische Replikation, erstellen eine Veröffentlichung und einen Replikationsslot und konfigurieren einen Datastream-Nutzer mit Replikationsberechtigungen.

Logische Replikation für die Datenbank aktivieren

  1. Legen Sie den Parameter wal_level in Ihrer Datenbank fest, indem Sie wal_level=logical in die Datei postgresql.conf einfügen.

  2. Starten Sie den Server neu.

Publikation und Replikationsslot erstellen

  1. Melden Sie sich als Superuser in einer PostgreSQL-Konsole an.

  2. Erstellen Sie eine Publikation. Wir empfehlen, eine Publikation nur für die Tabellen zu erstellen, die Sie replizieren möchten. So kann Datastream nur mit Lesezugriff auf die relevanten Daten zugreifen und die Last für die Datenbank und Datastream wird reduziert:

    CREATE PUBLICATION PUBLICATION_NAME
    FOR TABLE SCHEMA1.TABLE1, SCHEMA2.TABLE2;

    Ersetzen Sie Folgendes:

    • PUBLICATION_NAME: Der Name Ihrer Publikation. Sie müssen diesen Namen angeben, wenn Sie einen Stream im Assistenten zum Erstellen von Datastream-Streams erstellen.
    • SCHEMA: Name des Schemas, das die Tabelle enthält
    • TABLE: Der Name der Tabelle, die Sie replizieren möchten.

    Sie können eine Publikation für alle Tabellen in einem Schema erstellen. Mit diesem Ansatz können Sie Änderungen für Tabellen in der angegebenen Liste von Schemas replizieren, einschließlich Tabellen, die Sie in Zukunft erstellen:

    CREATE PUBLICATION PUBLICATION_NAME
    FOR TABLES IN SCHEMA SCHEMA1, SCHEMA2;

    Sie können auch eine Publikation für alle Tabellen in Ihrer Datenbank erstellen. Beachten Sie, dass dieser Ansatz die Last sowohl auf der Quelldatenbank als auch auf Datastream erhöht:

    CREATE PUBLICATION PUBLICATION_NAME FOR ALL TABLES;
    
  3. Erstellen Sie mit dem folgenden SQL-Befehl einen Replikationsslot:

    SELECT PG_CREATE_LOGICAL_REPLICATION_SLOT('REPLICATION_SLOT_NAME', 'pgoutput');

    Ersetzen Sie Folgendes:

    • REPLICATION_SLOT_NAME: Der Name Ihres Replikations-Slots. Sie müssen diesen Namen angeben, wenn Sie einen Stream im Assistenten zum Erstellen von Datastream-Streams erstellen.

Datastream-Nutzer erstellen

  1. Geben Sie die folgenden SQL-Befehle ein, um einen Datastream-Nutzer zu erstellen:

    CREATE USER USER_NAME WITH ENCRYPTED PASSWORD 'USER_PASSWORD';

    Ersetzen Sie Folgendes:

    • USER_NAME: Der Name des Datastream-Nutzers, den Sie erstellen möchten.
    • USER_PASSWORD: Das Anmeldepasswort für den Datastream-Nutzer, den Sie erstellen möchten.
  2. Gewähren Sie dem erstellten Nutzer die folgenden Berechtigungen:

    ALTER ROLE USER_NAME WITH REPLICATION;
    GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO USER_NAME;
    GRANT USAGE ON SCHEMA SCHEMA_NAME TO USER_NAME;
    ALTER DEFAULT PRIVILEGES IN SCHEMA SCHEMA_NAME
      GRANT SELECT ON TABLES TO USER_NAME;
    

    Ersetzen Sie Folgendes:

    • USER_NAME: Der Nutzer, dem Sie die Berechtigungen gewähren möchten.
    • SCHEMA_NAME: Der Name des Schemas, für das Sie die Berechtigungen gewähren möchten.

Nächste Schritte