
我目前正在嘗試在 2 個 GCP CloudSQL Postgres 實例之間設定pglogical
複製,以便在區域之間快速遷移資料。
我按照 GCP 文件[1]創建了一個replicator
用戶,pglogical
以該用戶身份安裝了擴充功能並執行了所需的配置。
但是,每當我在目標服務上建立訂閱時,狀態最初會變成postgres` 日誌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
錯誤?
提前致謝。
加文