ページの先頭行へ戻る
Enterprise Postgres 15 クラスタ運用ガイド(データベース多重化編)

A.2 スタンバイサーバで設定するパラメータ

スタンバイサーバで設定するファイルおよびパラメータの内容について、説明します。

postgresql.confファイルの以下のパラメータを編集したあと、インスタンスを起動してください。

表A.2 postgresql.confファイル

パラメータ

設定値

説明

wal_level

replicaまたはlogical

トランザクションログの出力レベルを指定します。

ロジカルデコーディングも使用する場合にはlogicalを指定します。

max_wal_senders

2以上

Mirroring Controllerのクラスタシステムを構築する場合は、2を指定します。

また、クラスタシステムに非同期スタンバイサーバを追加で接続する場合には、これらのスタンバイサーバからの同時接続数を加算してください。

synchronous_standby_names

'プライマリサーバ名'

プライマリサーバを識別する任意の名前を半角シングルクォートで囲んで指定します。

この名前は、プライマリサーバを切り替えたあとに、旧プライマリサーバを新しくスタンバイサーバとして組み込むときに必要です。

Mirroring Controller起動中は、本パラメータを変更しないでください。

Mirroring Controllerが管理できるスタンバイサーバは1つであるため、本パラメータに複数の名前を指定しないでください。

hot_standby

on

スタンバイサーバ上で問い合わせを実行できるかどうかを指定します。

onを指定してください。

wal_keep_size

WALの保存サイズ(メガバイト)

本パラメータの設定値を越える遅延が発生した場合、プライマリサーバはスタンバイサーバが今後必要とするWALセグメントを削除する可能性があります。

また、保守作業などでスタンバイサーバを停止させる場合、停止時間を考慮してWALセグメントが削除されない値を設定してください。

WALの保存サイズの見積もりの詳細は、“導入ガイド(サーバ編)”の“トランザクションログの容量の見積り”を参照してください。

wal_log_hints

on

スタンバイサーバの復旧時にpg_rewindコマンドを使用する場合には、本パラメータを設定するかまたはinitdbコマンド実行時にチェックサムを有効にしてください。

wal_sender_timeout

タイムアウト時間(ミリ秒数)

プライマリサーバ側でのトランザクションログの受信プロセス(walreceiver)が異常な状態になったと判断する時間を指定します。

指定値は、スタンバイサーバのpostgresql.confファイルに設定するwal_receiver_status_intervalパラメータの値より大きくする必要があります。

データベースプロセスの生死監視時間と合わせることで、異常と判断する時間を統一できます。

wal_receiver_timeout

タイムアウト時間(ミリ秒数)

スタンバイサーバ側でのトランザクションログの受信に異常が発生したと判断する時間を指定します。

データベースプロセスの生死監視時間と合わせることで、異常と判断する時間を統一できます。

backup_destination

バックアップデータ格納先ディレクトリ名

バックアップデータ格納先ディレクトリ名を指定します。

指定するディレクトリは、インスタンス管理者ユーザーのみがアクセスできるように権限を設定してください。

他のサーバのバックアップデータを使ってリカバリを正しく行うために、すべてのサーバで同じパスになるように指定してください。

archive_mode

on

アーカイブログモードを指定します。

archive_command

'インストールディレクトリ/bin/pgx_walcopy.cmd "%p" "バックアップデータ格納先ディレクトリ/archived_wal/%f"'

トランザクションログを保存するコマンドと格納先パス名を指定します。

listen_addresses

スタンバイサーバのIPアドレス、ホスト名、または‘*’

スタンバイサーバのIPアドレスまたはホスト名を指定します。ログ転送用ネットワークに接続するIPアドレスまたは対応するホスト名を指定します。

指定内容は、クライアントアプリケーションからの接続を許可する場合にも使用されます。

任意のクライアントやスタンバイサーバからの受付を行う場合は、‘*’を指定することができます。

詳細は“PostgreSQL Documentation”の“Connections and Authentication”を参照してください。

max_connections

インスタンスへのクライアントの同時接続数+superuser_reserved_connectionsの値

指定値は、クライアントアプリケーションからの接続数とインスタンス管理のための接続数を制限するためにも使用されます。

詳細は、“導入ガイド(サーバ編)”の“initdbコマンドでインスタンスを作成した場合”、および、“PostgreSQL Documentation”の“Connections and Authentication”を参照してください。

superuser_reserved_connections

mc_ctl statusの同時実行数(注)+2を加算

データベーススーパーユーザーからの接続のために予約されている接続数を指定します。

Mirroring Controllerプロセスからの接続数を加算します。また、加算した値はmax_connectionsパラメータにも反映してください。

restart_after_crash

off

restart_after_crash パラメータにonを指定またはデフォルトの場合、一部のサーバプロセスがダウンした際に、クラッシュリカバリを含めたEnterprise Postgresの再起動に相当する動作が行われます。

しかし、データベース多重化運用による監視の機能で一部のサーバプロセスがダウンした時点で異常を検知してフェイルオーバが発生し、再起動途中のサーバプロセスが強制停止されます。このような意味なく再起動して途中でキャンセルされるという複雑な動作を抑止するためにoffを設定します。

synchronous_commit

onまたはremote_apply

トランザクションのコミット処理がクライアントに正常終了の応答を返す前に、スタンバイサーバへのWAL送信をどこまで行うかを指定します。

切り替えや切り替え直後のOSやサーバのダウンからのデータ損失を防ぐために、onまたはremote_applyを推奨します。

primary_conninfo

‘ストリーミングレプリケーションの接続先情報’

ストリーミングレプリケーションの接続先情報を半角シングルクォートで囲んで指定します。本パラメータのデフォルト値は、インスタンスのセットアップのpg_basebackupを実行する手順において、自動的にpostgresql.auto.confに設定されます。

recovery_target_timeline

latest

切り替え発生時に、新スタンバイサーバ(旧プライマリサーバ)が新プライマリサーバに追随するために、latestを指定します。

本パラメータの指定は、プライマリサーバの切り替え後、旧プライマリサーバを新しくスタンバイサーバとして組み込む時に必要です。

注) mc_ctlコマンドのstatusモードでの同時実行数です。