Nesta página, descrevemos como ativar o monitoramento de atraso de replicação ao migrar de uma instância de origem que executa versões do PostgreSQL anteriores à 9.6. Para ver as etapas completas de configuração do banco de dados de origem, consulte Configurar o banco de dados de origem.
Para instâncias de origem que executam versões do PostgreSQL anteriores à 9.6, a métrica de atraso de replicação não está disponível por padrão. Você pode usar as seguintes abordagens se quiser monitorar o atraso de replicação para essas origens.
Criar uma função de definidor de segurança
A opção recomendada para rastrear o atraso de replicação em origens que executam versões do PostgreSQL anteriores à 9.6 é criar uma função de definição de segurança que permita ao Database Migration Service consultar o atraso de replicação. Siga estas etapas:
- Defina a seguinte função usando uma conta de superusuário:
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; $$;
- Conceda permissão de execução ao usuário de migração:
REVOKE EXECUTE ON FUNCTION pg_stat_replication_user() FROM public; GRANT EXECUTE ON FUNCTION pg_stat_replication_user() TO <USER>;
Para instâncias autogerenciadas: use os privilégios SUPERUSER
Para instâncias autogerenciadas, é possível conceder o privilégio SUPERUSER
diretamente ao USER de migração dedicado.
Monitorar o atraso de replicação manualmente
Também é possível monitorar o atraso de replicação manualmente usando a seguinte 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%';
A seguir
Para ver tutoriais completos de migração, consulte Começar a usar as migrações do Cloud SQL para PostgreSQL.
Para planejar a conectividade de rede entre as instâncias de origem e de destino, consulte Visão geral da rede.