
Actualmente estoy intentando configurar pglogical
la replicación entre 2 instancias de GCP CloudSQL Postgres para poder migrar datos rápidamente entre regiones.
Seguí los documentos de GCP [1] creando un replicator
usuario, instalando la pglogical
extensión como ese usuario y realizando la configuración requerida.
Sin embargo, cada vez que creo la suscripción en el servicio de destino, el estado inicialmente cambia initializing
y luego cambia a down. Looking at the
los registros de postgres, puedo ver el siguiente error en el lado de destino:
db=api,user=replicator ERROR: permission denied for function pg_replication_origin_session_setup
Puedo ver la función mencionada en la base de datos de destino, sin embargo, cada vez que intento hacerlo GRANT EXECUTE
, aparece la siguiente advertencia.
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
¿Alguien ha podido configurar pglogical
antes en CloudSQL? ¿O has visto el error anterior permission denied
?
Gracias de antemano.
gavín