ページの先頭行へ戻る
Enterprise Postgres 17 SP1 運用ガイド

7.5 ストリーミングレプリケーション構成での設定

ストリーミングレプリケーションの場合は、プライマリサーバおよびスタンバイサーバの両方でポリシーが有効になります。

プロファイルの内容の変更、プロファイルの作成と割り当て、ロックの解除、パスワードの変更は、プライマリサーバのみで実施できます。

ここでは、ストリーミングレプリケーション構成での設定方法について説明します。

  1. ストリーミングレプリケーション用のユーザーに権限を付与します。

    スタンバイサーバはプライマリサーバへ接続して、スタンバイサーバで検出した状態変更をプライマリサーバに反映します。状態変更のための接続にはストリーミングレプリケーション用のユーザー(primary_conninfoに指定するユーザー)が使用されます。このユーザーに権限を付与します。そのユーザーがグループロールpgx_update_profile_statusに直接SET ROLEできるようにしてください。

    [実行例]

    # GRANT pgx_update_profile_status TO repluser WITH SET TRUE;

    この操作によってストリーミングレプリケーション用のユーザーはその他すべてのデータベースユーザーをロックしたり、ポリシー違反によるロック状態から解除することができるようになります。また、pgx_update_profile_statusグループロールのメンバ資格は、ストリーミングレプリケーション用のユーザーにだけ与えてください。

  2. pg_hba.confにレコードを追加します。

    スタンバイサーバからのコネクションを受け付けられるように、レコードを追加します。ストリーミングレプリケーションのためのレコードを複製し、userprofile_databaseパラメータのデータベース名を接続先データベース名として指定します。認証方式はパスワード認証以外を推奨します。

    host  replication  repluser  スタンバイサーバのアドレス  認証方式    # ストリーミングレプリケーション用
    host  postgres     repluser  スタンバイサーバのアドレス  認証方式    # 状態変更伝達用

参考

  • プライマリサーバとスタンバイサーバが切り離された場合でも、それぞれのサーバでプロファイルに基づく制限は適用されます。ただし、スタンバイサーバ単体ではパスワード変更や明示的なロックの解除が行えません。切り離された原因を取り除いてからプライマリサーバとの接続および業務を復旧し、パスワード変更や明示的なロックの解除を行ってください。

  • 状態変更をプライマリサーバまたはスタンバイサーバに反映するための接続情報が、pg_stat_replicationビューのapplication_nameに“User profile status sender”として出力されます。pg_stat_replicationビューでストリーミングレプリケーションの状態を監視している場合は、“User profile status sender”の行は監視対象から除外してください。