このページでは、9.6 より前のバージョンの PostgreSQL を実行しているソース インスタンスから AlloyDB for PostgreSQL に移行するときに、レプリケーション遅延モニタリングを有効にする方法について説明します。ソース データベースの構成手順の詳細については、 ソース データベースを構成するをご覧ください。
9.6 より前の PostgreSQL バージョンを実行しているソース インスタンスの場合、スーパーユーザー以外は pg_stat_replication ビューのレプリケーション統計にアクセスできないため、デフォルトではレプリケーション遅延の指標を使用できません。このようなソースのレプリケーション遅延をモニタリングする場合は、次の方法を使用できます。
セキュリティ定義関数を作成する
9.6 より前のバージョンの PostgreSQL を実行しているソースのレプリケーション遅延を追跡するには、Database Migration Service がレプリケーション遅延の統計情報をクエリできるように、セキュリティ定義関数を作成することをおすすめします。手順は次のとおりです。
- スーパーユーザー アカウントを使用してソース データベースに接続し、
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; $$;
- 関数からパブリック実行権限を取り消し、専用の移行ユーザー アカウントにのみ実行権限を付与します。
REVOKE EXECUTE ON FUNCTION pg_stat_replication_user() FROM public; GRANT EXECUTE ON FUNCTION pg_stat_replication_user() TO "MIGRATION_USER_ACCOUNT_NAME";
セルフホスト インスタンスの場合: SUPERUSER 権限を使用します。
セルフホスト型の PostgreSQL インスタンスの場合は、専用の移行ユーザー アカウントに SUPERUSER 権限を直接付与できます。
ALTER USER MIGRATION_USER_ACCOUNT_NAME WITH 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;
次のステップ
移行手順の詳細については、 AlloyDB for PostgreSQL への移行を開始するをご覧ください。
移行元インスタンスと移行先インスタンス間のネットワーク接続を計画するには、 ネットワーキングに関する考慮事項をご覧ください。