Pglogical-Replikation zwischen 2 GCP CloudSQL-Instanzen kann nicht eingerichtet werden

Pglogical-Replikation zwischen 2 GCP CloudSQL-Instanzen kann nicht eingerichtet werden

Ich versuche derzeit, die Replikation zwischen zwei GCP CloudSQL Postgres-Instanzen einzurichten pglogical, um Daten schnell zwischen Regionen zu migrieren.

Ich bin den GCP-Dokumenten[1] gefolgt, indem ich einen replicatorBenutzer erstellt, die pglogicalErweiterung als dieser Benutzer installiert und die erforderliche Konfiguration durchgeführt habe.

Wenn ich jedoch das Abonnement beim Zieldienst erstelle, wechselt der Status zunächst zu initializingund dann zu down. Looking at the„postgres‘ logs“. Auf der Zielseite wird mir der folgende Fehler angezeigt:

db=api,user=replicator ERROR:  permission denied for function pg_replication_origin_session_setup

Ich kann die erwähnte Funktion in der Zieldatenbank sehen, aber immer wenn ich versuche, GRANT EXECUTEsie aufzurufen, erhalte ich die folgende Warnung.

postgres=> \df+ pg_replication_origin_session_setup

      List of functions
   Schema   |                Name                 | Result data type | Argument data types | Type | Volatility | Parallel |     Owner     | Securi
ty |         Access privileges         | Language |             Source code             |                                     Description

------------+-------------------------------------+------------------+---------------------+------+------------+----------+---------------+-------
---+-----------------------------------+----------+-------------------------------------+---------------------------------------------------------
-----------------------------
 pg_catalog | pg_replication_origin_session_setup | void             | text                | func | volatile   | unsafe   | cloudsqladmin | invoke
r  | cloudsqladmin=X/cloudsqladmin    +| internal | pg_replication_origin_session_setup | configure session to maintain replication progress track
ing for the passed in origin
            |                                     |                  |                     |      |            |          |               |
   | cloudsqlsuperuser=X/cloudsqladmin |          |                                     |
(1 row)

postgres=> \du replicator
                 List of roles
 Role name  | Attributes  |      Member of
------------+-------------+---------------------
 replicator | Replication | {cloudsqlsuperuser}

postgres=> GRANT EXECUTE ON FUNCTION pg_catalog.pg_replication_origin_session_setup TO replicator;
WARNING:  no privileges were granted for "pg_replication_origin_session_setup"
GRANT

Konnte jemand die Einrichtung pglogicalzuvor auf CloudSQL durchführen? Oder ist ihm der obige permission deniedFehler aufgefallen?

Vielen Dank im Voraus.
Gavin

[1]https://cloud.google.com/sql/docs/postgres/replication/configure-logical-replication#configure-your-postgresql-instance

verwandte Informationen