このページでは、9.6 より前のバージョンの PostgreSQL を実行しているソース インスタンスから移行するときに、レプリケーション遅延モニタリングを有効にする方法について説明します。ソース データベースの構成手順の詳細については、 ソース データベースを構成するをご覧ください。
9.6 より前の PostgreSQL バージョンを実行しているソース インスタンスの場合、デフォルトではレプリケーション遅延の指標を使用できません。このようなソースのレプリケーション遅延をモニタリングする場合は、次の方法を使用できます。
セキュリティ定義関数を作成する
9.6 より前のバージョンの PostgreSQL を実行しているソースのレプリケーション遅延を追跡するには、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 権限を使用します。
セルフマネージド インスタンスの場合は、専用の移行 USER に SUPERUSER 権限を直接付与できます。
レプリケーションの遅延を手動でモニタリングする
次のクエリを使用して、レプリケーションの遅延を手動でモニタリングすることもできます。
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 for PostgreSQL への移行を開始するをご覧ください。
移行元インスタンスと移行先インスタンス間のネットワーク接続を計画するには、 ネットワーキングの概要をご覧ください。