Невозможно настроить pglogical репликацию между 2 экземплярами GCP CloudSQL

Невозможно настроить pglogical репликацию между 2 экземплярами GCP CloudSQL

В настоящее время я пытаюсь настроить pglogicalрепликацию между двумя экземплярами GCP CloudSQL Postgres, чтобы быстро переносить данные между регионами.

Я следовал документации GCP[1], создал replicatorпользователя, установил pglogicalрасширение от имени этого пользователя и выполнил необходимую настройку.

Однако всякий раз, когда я создаю подписку на целевой службе, статус сначала переходит в initializing, а затем меняется на down. Looking at theжурналы postgres, и я вижу следующую ошибку на целевой стороне:

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

Я вижу указанную функцию в целевой базе данных, однако всякий раз, когда я пытаюсь GRANT EXECUTEее использовать, я получаю предупреждение, как показано ниже.

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

Кто-нибудь уже смог настроить pglogicalCloudSQL? Или видел указанную выше permission deniedошибку?

Спасибо заранее.
Гэвин

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

Связанный контент