En esta página, se describe cómo habilitar la supervisión del retraso de replicación cuando migras desde una instancia de origen que ejecuta versiones de PostgreSQL anteriores a la 9.6 a AlloyDB para PostgreSQL. Para obtener instrucciones completas sobre la configuración de la base de datos de origen, consulta Configura la base de datos de origen.
En el caso de las instancias de origen que ejecutan versiones de PostgreSQL anteriores a la 9.6, la métrica de retraso de replicación no está disponible de forma predeterminada, ya que los usuarios que no son superusuarios no pueden acceder a las estadísticas de replicación en la vista pg_stat_replication. Puedes usar
los siguientes enfoques si deseas supervisar la demora de replicación de esas fuentes.
Crea una función de definidor de seguridad
La opción recomendada para hacer un seguimiento del retraso de la replicación en las fuentes que ejecutan versiones de PostgreSQL anteriores a la 9.6 es crear una función de definidor de seguridad que permita a Database Migration Service consultar las estadísticas de retraso de la replicación. Lleva a cabo los pasos siguientes:
- Conéctate a tu base de datos de origen con una cuenta de superusuario y define la
función
pg_stat_replication_user():CREATE OR REPLACE FUNCTION pg_stat_replication_user() RETURNS TABLE ( pid integer, usesysid oid, username name, application_name text, client_addr inet, client_hostname text, client_port integer, backend_start timestamp with time zone, backend_xmin xid, state text, sent_location pg_lsn, write_location pg_lsn, flush_location pg_lsn, replay_location pg_lsn, sync_priority integer, sync_state text ) LANGUAGE SQL SECURITY DEFINER AS $$ SELECT * FROM pg_catalog.pg_stat_replication; $$;
- Revoca los derechos de ejecución pública de la función y otorga permisos de ejecución
exclusivamente a tu cuenta de usuario de migración dedicada:
REVOKE EXECUTE ON FUNCTION pg_stat_replication_user() FROM public; GRANT EXECUTE ON FUNCTION pg_stat_replication_user() TO "MIGRATION_USER_ACCOUNT_NAME";
Para las instancias alojadas de forma independiente, usa los privilegios de SUPERUSER.
En el caso de las instancias de PostgreSQL autohospedadas, puedes otorgar el privilegio SUPERUSER
directamente a tu cuenta de usuario de migración dedicada:
ALTER USER MIGRATION_USER_ACCOUNT_NAME WITH SUPERUSER;
Supervisa el retraso de replicación de forma manual
También puedes supervisar el retraso de la replicación de forma manual en la instancia de origen con la siguiente consulta:
SELECT current_timestamp, application_name, pg_xlog_location_diff(pg_current_xlog_location(), pg_stat_replication.sent_location) AS sent_location_lag, pg_xlog_location_diff(pg_current_xlog_location(), pg_stat_replication.write_location) AS write_location_lag, pg_xlog_location_diff(pg_current_xlog_location(), pg_stat_replication.flush_location) AS flush_location_lag, pg_xlog_location_diff(pg_current_xlog_location(), pg_stat_replication.replay_location) AS replay_location_lag FROM pg_stat_replication;
¿Qué sigue?
Para obtener guías de migración completas y paso a paso, consulta Comienza a usar las migraciones de AlloyDB para PostgreSQL.
Para planificar la conectividad de red entre las instancias de origen y de destino, consulta Consideraciones sobre las redes.