בדף הזה מוסבר איך להפעיל מעקב אחרי עיכוב ברפליקציה כשמעבירים ממכונת מקור שפועלת בגרסאות PostgreSQL שקודמות ל-9.6. כאן מוסבר איך מגדירים את מסד הנתונים של המקור.
במכונות מקור שפועלות בגרסאות PostgreSQL שקודמות ל-9.6, מדד העיכוב ברפליקציה לא זמין כברירת מחדל. אם אתם רוצים לעקוב אחרי עיכובים ברפליקציה במקורות כאלה, אתם יכולים להשתמש בגישות הבאות.
יצירת פונקציה להגדרת אבטחה
האפשרות המומלצת למעקב אחרי עיכוב ברפליקציה במקורות שפועלים בגרסאות PostgreSQL שקודמות ל-9.6 היא ליצור פונקציה של מגדיר אבטחה, שמאפשרת ל-Database Migration Service לשלוח שאילתות לגבי עיכוב ברפליקציה. איך לעשות את זה?
- מגדירים את הפונקציה הבאה באמצעות חשבון של משתמש-על:
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; $$;
- נותנים הרשאת הפעלה למשתמש ההעברה:
REVOKE EXECUTE ON FUNCTION pg_stat_replication_user() FROM public; GRANT EXECUTE ON FUNCTION pg_stat_replication_user() TO <USER>;
במכונות בניהול עצמי: משתמשים בהרשאות של SUPERUSER
במכונות בניהול עצמי, אפשר להעניק את ההרשאה SUPERUSER ישירות לUSER הייעודי להעברה.
מעקב ידני אחרי העיכוב ברפליקציה
אפשר גם לעקוב אחרי עיכוב הרפליקציה באופן ידני באמצעות השאילתה הבאה:
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%';
המאמרים הבאים
במאמר תחילת העבודה עם העברות של Cloud SQL ל-PostgreSQL תוכלו לקרוא מדריכים מפורטים להעברה.
כדי לתכנן את הקישוריות לרשת בין המכונות של המקור והיעד, קראו את הסקירה הכללית בנושא רשתות.