Cette page explique comment activer la surveillance du délai de réplication lorsque vous migrez depuis une instance source exécutant des versions de PostgreSQL antérieures à la version 9.6. Pour connaître la procédure complète de configuration de la base de données source, consultez Configurer la base de données source.
Pour les instances sources exécutant des versions de PostgreSQL antérieures à 9.6, la métrique de délai de réplication n'est pas disponible par défaut. Vous pouvez utiliser les approches suivantes si vous souhaitez surveiller le délai de réplication pour ces sources.
Créer une fonction de définition de sécurité
Pour suivre le délai de réplication pour les sources exécutant des versions de PostgreSQL antérieures à 9.6, l'option recommandée consiste à créer une fonction de définition de sécurité permettant à Database Migration Service d'interroger le délai de réplication. Procédez comme suit :
- Définissez la fonction suivante à l'aide d'un compte de super-utilisateur :
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; $$;
- Accordez l'autorisation d'exécution à l'utilisateur de migration :
REVOKE EXECUTE ON FUNCTION pg_stat_replication_user() FROM public; GRANT EXECUTE ON FUNCTION pg_stat_replication_user() TO <USER>;
Pour les instances autogérées : utilisez les droits SUPERUSER.
Pour les instances autogérées, vous pouvez accorder le droit SUPERUSER directement à l'utilisateur de migration dédié USER.
Surveiller manuellement le délai de réplication
Vous pouvez également surveiller manuellement le délai de réplication à l'aide de la requête suivante :
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%';
Étapes suivantes
Pour obtenir des instructions de migration complètes, consultez Premiers pas avec les migrations Cloud SQL pour PostgreSQL.
Pour planifier la connectivité réseau entre vos instances source et de destination, consultez Présentation de la mise en réseau.