本頁面說明如何從執行 9.6 以下版本 PostgreSQL 的來源執行個體遷移,並啟用複製延遲監控功能。如需完整的來源資料庫設定步驟,請參閱「 設定來源資料庫」。
如果來源執行個體執行的 PostgreSQL 版本低於 9.6,系統預設不會提供複製延遲指標。如要監控這類來源的複製延遲時間,可以採用下列方法。
建立安全性定義者函式
如要追蹤 PostgreSQL 9.6 之前版本來源的複製延遲,建議建立安全性定義函式,允許資料庫遷移服務查詢複製延遲。步驟如下:
- 使用超級使用者帳戶定義下列函式:
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%';
後續步驟
如需完整的逐步遷移操作說明,請參閱「 開始使用 PostgreSQL 適用的 Cloud SQL 遷移作業」。
如要規劃來源和目的地執行個體之間的網路連線,請參閱「 網路總覽」。