
Atualmente estou tentando configurar pglogical
a replicação entre duas instâncias do GCP CloudSQL Postgres, para migrar dados rapidamente entre regiões.
Estou seguindo os documentos do GCP [1] criando um replicator
usuário, instalando a pglogical
extensão como esse usuário e executando a configuração necessária.
Porém sempre que eu crio a assinatura no serviço de destino, o status inicialmente vai initializing
e depois muda para down. Looking at the
os logs do postgres, posso ver o seguinte erro no lado do destino:
db=api,user=replicator ERROR: permission denied for function pg_replication_origin_session_setup
Posso ver a função mencionada no banco de dados de destino, porém sempre que tento fazer GRANT EXECUTE
isso, recebo um aviso conforme abaixo.
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
Alguém já conseguiu configurar pglogical
antes no CloudSQL? Ou viu o permission denied
erro acima?
Desde já, obrigado.
Gavin