Questa pagina descrive come abilitare il monitoraggio del ritardo di replica quando esegui la migrazione da un'istanza di origine che esegue versioni di PostgreSQL precedenti alla 9.6. Per i passaggi completi di 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. Puoi utilizzare i seguenti approcci se vuoi monitorare il ritardo di replica per queste origini.
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 sul ritardo di replica. Segui questi passaggi:
- Definisci la seguente funzione utilizzando un account super utente:
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; $$;
- Concedi l'autorizzazione di esecuzione all'utente della migrazione:
REVOKE EXECUTE ON FUNCTION pg_stat_replication_user() FROM public; GRANT EXECUTE ON FUNCTION pg_stat_replication_user() TO <USER>;
Per le istanze autogestite: utilizza i privilegi SUPERUSER
Per le istanze autogestite, puoi concedere il privilegio SUPERUSER direttamente alla USER di migrazione dedicata.
Monitora manualmente il ritardo di replica
Puoi anche monitorare manualmente il ritardo di replica 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 WHERE application_name LIKE 'cloudsql%';
Passaggi successivi
Per procedure dettagliate complete sulla migrazione, consulta Inizia a utilizzare le migrazioni di Cloud SQL per PostgreSQL.
Per pianificare la connessione di rete tra le istanze di origine e di destinazione, consulta la panoramica del networking.