Monitoring der Replikationsverzögerung für PostgreSQL-Versionen vor 9.6 aktivieren

Auf dieser Seite wird beschrieben, wie Sie das Monitoring der Replikationsverzögerung aktivieren, wenn Sie von einer Quellinstanz mit PostgreSQL-Versionen vor 9.6 zu AlloyDB for PostgreSQL migrieren. Eine vollständige Anleitung zur Konfiguration der Quelldatenbank finden Sie unter Quelldatenbank konfigurieren.

Für Quellinstanzen mit PostgreSQL-Versionen vor 9.6 ist der Messwert für die Replikationsverzögerung standardmäßig nicht verfügbar, da Nicht-Superuser nicht auf Replikationsstatistiken in der Ansicht pg_stat_replication zugreifen können. Sie können die folgenden Ansätze verwenden, wenn Sie die Replikationsverzögerung für solche Quellen überwachen möchten.

Sicherheitsdefiniererfunktion erstellen

Die empfohlene Option zum Erfassen der Replikationsverzögerung für Quellen mit PostgreSQL-Versionen vor 9.6 besteht darin, eine Sicherheitsdefinitionsfunktion zu erstellen, mit der Database Migration Service Statistiken zur Replikationsverzögerung abfragen kann. Gehen Sie so vor:

  1. Stellen Sie über ein Superuser-Konto eine Verbindung zur Quelldatenbank her und definieren Sie die Funktion 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. Entziehen Sie der Funktion die öffentlichen Ausführungsrechte und gewähren Sie die Ausführungsberechtigungen ausschließlich Ihrem dedizierten Migrationsnutzerkonto:
    REVOKE EXECUTE ON FUNCTION pg_stat_replication_user() FROM public;
    GRANT EXECUTE ON FUNCTION pg_stat_replication_user() TO "MIGRATION_USER_ACCOUNT_NAME";

Für selbst gehostete Instanzen: SUPERUSER-Berechtigungen verwenden

Bei selbst gehosteten PostgreSQL-Instanzen können Sie die Berechtigung SUPERUSER direkt Ihrem dedizierten Migrationsnutzerkonto gewähren:

ALTER USER MIGRATION_USER_ACCOUNT_NAME WITH SUPERUSER;

Replikationsverzögerung manuell überwachen

Sie können die Replikationsverzögerung auch manuell auf der Quellinstanz mit der folgenden Abfrage überwachen:

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;

Nächste Schritte