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

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

ストリーミングレプリケーションの場合は、プライマリサーバおよびスタンバイサーバの両方でポリシーが有効になります。ユーザーのロック状態、ユーザーのパスワードの状態(有効期間、猶予期間、失効)はプライマリサーバまたはスタンバイサーバのいずれかで検出した場合、クラスタを構成するすべてのサーバに反映・共有されます。

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

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

  1. postgresql.confファイルのパラメータを設定します。

    userprofile_databaseパラメータに接続可能なデータベース名を指定します。省略した場合は、デフォルトのデータベース“postgres”を指定したものとみなされます。

    パラメータの詳細については、“ポリシーに基づいたパスワードの運用に関するパラメータ”を参照してください。

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

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

    [実行例]

    # GRANT pgx_update_profile_status TO repl-user;

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

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

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

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

参考

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

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