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. Para conocer los pasos completos de 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. 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 el retraso de la replicación. Lleva a cabo los pasos siguientes:
- Define la siguiente función con una cuenta de superusuario:
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; $$;
- Otorga permiso de ejecución al usuario de migración:
REVOKE EXECUTE ON FUNCTION pg_stat_replication_user() FROM public; GRANT EXECUTE ON FUNCTION pg_stat_replication_user() TO <USER>;
Para instancias autoadministradas, usa privilegios de SUPERUSER
En el caso de las instancias autoadministradas, puedes otorgar el privilegio SUPERUSER
directamente a la USER de migración dedicada.
Supervisa el retraso de replicación de forma manual
También puedes supervisar el retraso de la replicación de forma manual 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 WHERE application_name LIKE 'cloudsql%';
¿Qué sigue?
Para obtener guías de migración completas y paso a paso, consulta Comienza a usar las migraciones de Cloud SQL para PostgreSQL.
Para planificar la conectividad de red entre tus instancias de origen y de destino, consulta Descripción general de las herramientas de redes.