
В настоящее время я пытаюсь настроить 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
Кто-нибудь уже смог настроить pglogical
CloudSQL? Или видел указанную выше permission denied
ошибку?
Спасибо заранее.
Гэвин