Halaman ini menjelaskan cara mengaktifkan pemantauan penundaan replikasi saat Anda bermigrasi dari instance sumber yang menjalankan PostgreSQL versi sebelum 9.6 ke AlloyDB untuk PostgreSQL. Untuk mengetahui petunjuk konfigurasi database sumber yang lengkap, lihat Mengonfigurasi database sumber.
Untuk instance sumber yang menjalankan PostgreSQL versi sebelum 9.6, metrik penundaan replikasi tidak tersedia secara default karena non-superuser tidak dapat mengakses statistik replikasi dalam tampilan pg_stat_replication. Anda dapat menggunakan
pendekatan berikut jika ingin memantau penundaan replikasi untuk sumber tersebut.
Membuat fungsi pendefinisi keamanan
Opsi yang direkomendasikan untuk melacak penundaan replikasi untuk sumber yang menjalankan PostgreSQL versi sebelum 9.6 adalah membuat fungsi security definer yang memungkinkan Database Migration Service mengkueri statistik penundaan replikasi. Ikuti langkah-langkah berikut:
- Hubungkan ke database sumber Anda menggunakan akun superuser dan tentukan fungsi
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; $$;
- Cabut hak eksekusi publik dari fungsi dan berikan izin eksekusi
secara eksklusif ke akun pengguna migrasi khusus Anda:
REVOKE EXECUTE ON FUNCTION pg_stat_replication_user() FROM public; GRANT EXECUTE ON FUNCTION pg_stat_replication_user() TO "MIGRATION_USER_ACCOUNT_NAME";
Untuk instance yang dihosting sendiri: gunakan hak istimewa SUPERUSER
Untuk instance PostgreSQL yang dihosting sendiri, Anda dapat memberikan hak istimewa SUPERUSER
langsung ke akun pengguna migrasi khusus:
ALTER USER MIGRATION_USER_ACCOUNT_NAME WITH SUPERUSER;
Memantau penundaan replikasi secara manual
Anda juga dapat memantau penundaan replikasi secara manual pada instance sumber menggunakan kueri berikut:
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;
Langkah berikutnya
Untuk panduan migrasi langkah demi langkah yang lengkap, lihat Memulai migrasi AlloyDB untuk PostgreSQL.
Untuk merencanakan konektivitas jaringan antara instance sumber dan tujuan, lihat Pertimbangan jaringan.