Abilita il monitoraggio del ritardo di replica per le versioni di PostgreSQL precedenti alla 9.6

Questa pagina descrive come attivare il monitoraggio del ritardo di replica quando esegui la migrazione da un'istanza di origine che esegue versioni di PostgreSQL precedenti alla 9.6 ad AlloyDB per PostgreSQL. Per istruzioni complete sulla configurazione del database di origine, consulta Configura il database di origine.

Per le istanze di origine che eseguono versioni di PostgreSQL precedenti alla 9.6, la metrica del ritardo di replica non è disponibile per impostazione predefinita perché gli utenti non super utenti non possono accedere alle statistiche di replica nella vista pg_stat_replication. Se vuoi monitorare il ritardo di replica per queste origini, puoi utilizzare i seguenti approcci.

Crea una funzione con definer di sicurezza

L'opzione consigliata per monitorare il ritardo di replica per le origini che eseguono versioni di PostgreSQL precedenti alla 9.6 è creare una funzione di definizione della sicurezza che consenta a Database Migration Service di eseguire query sulle statistiche del ritardo di replica. Segui questi passaggi:

  1. Connettiti al database di origine utilizzando un account super utente e definisci la funzione 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;
    $$;
  2. Revoca i diritti di esecuzione pubblica dalla funzione e concedi le autorizzazioni di esecuzione esclusivamente al tuo account utente di migrazione dedicato:
    REVOKE EXECUTE ON FUNCTION pg_stat_replication_user() FROM public;
    GRANT EXECUTE ON FUNCTION pg_stat_replication_user() TO "MIGRATION_USER_ACCOUNT_NAME";

Per le istanze in hosting autonomo: utilizza i privilegi SUPERUSER

Per le istanze PostgreSQL in hosting autonomo, puoi concedere il privilegio SUPERUSER direttamente al tuo account utente dedicato per la migrazione:

ALTER USER MIGRATION_USER_ACCOUNT_NAME WITH SUPERUSER;

Monitora manualmente il ritardo di replica

Puoi anche monitorare manualmente il ritardo di replica nell'istanza di origine utilizzando la seguente query:

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;

Passaggi successivi