Habilita la supervisión del retraso de replicaciones para las versiones de PostgreSQL anteriores a la 9.6

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:

  1. 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;
    $$;
  2. 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?