4.3. Pgpool-IIの設定

4.3.1. pgpool.confの設定

pgpool.confPgpool-IIのメインの設定ファイルです。 Pgpool-IIの起動時には-fオプションでこのファイルのパスを指定する必要があります。 デフォルトではpgpool.conf$prefix/etc/pgpool.confに配置されます。

4.3.2. Pgpool-IIの動作モード

Pgpool-IIにはストリーミングレプリケーションモード、マスタースレーブモード、ネイティブレプリケーションモード、rawモードの4つの動作モードがあります。 いずれのモードにおいても、Pgpool-IIはコネクションプーリング、自動フェイルオーバ、オンラインリカバリの機能を提供します。 各モードのためのサンプルの設定ファイルが提供されています。 これらは$prefix/etc/以下に配置されており、$prefix/etc/pgpool.confとしてコピーして使用することができます。

これらのモードは互いに排他的であり、サーバ起動後は変更することができません。 システム設計の初期の段階でどのモードを使うか決めなければなりません。 どれを使えばわからない場合は、ストリーミングレプリケーションモードを使うことを推奨します。

ストリーミングレプリケーションモードはストリーミングレプリケーションを使用するPostgreSQLサーバと一緒に使うことができます。 このモードでは、PostgreSQLがデータベースを同期する責任を持ちます。 このモードは広く使われており、最も推奨されるPgpool-IIの使用法です。 このモードでは負荷分散が可能です。 サンプルの設定ファイルは$prefix/etc/pgpool.conf.sample-streamです。

ロジカルレプリケーションモードはロジカルレプリケーションを使用するPostgreSQLサーバと一緒に使うことができます。 このモードでは、PostgreSQLがテーブルを同期する責任を持ちます。 このモードでは負荷分散が可能です。 ロジカルレプリケーションは必ずしもすべてのテーブルをレプリケーションしないので、負荷分散させるテーブルがレプリケーションされるようにするのはユーザの責任です。 サンプルの設定ファイルは$prefix/etc/pgpool.conf.sample-logicalです。

マスタスレーブモードはSlonyを使用するPostgreSQLサーバと一緒に使うことができます。 このモードでは、Slony/PostgreSQLがデータベースを同期する責任を持ちます。 Slonyはストリーミングレプリケーションの登場により廃れつつあるため、Slonyを使う特別な理由が無い限りこのモードの使用を推奨しません。 このモードでは負荷分散が可能です。 サンプルの設定ファイルは$prefix/etc/pgpool.conf.sample-master-slaveです。

ネイティブレプリケーションモードでは、Pgpool-IIがデータベースを同期する責任を持ちます。 このモードの利点は同期が同期的に行われることです。 すなわち、データベースへの書き込みは全てのPostgreSQLサーバが書き込み操作を完了するまでに返ってきません。 ただし、読み込みスナップショットの制御は行われていないため、このモードでは一貫性のある可視性は保証されていないことに注意してください。 このモードでは負荷分散が可能です。 サンプルの設定ファイルは$prefix/etc/pgpool.conf.sample-replicationです。

rawモードでは、Pgpool-IIはデータベースの同期に関しては関与しません。 システム全体に意味の有る動作をさせるのはユーザの責任となります。 このモードでは負荷分散はできません。 サンプルの設定ファイルは$prefix/etc/pgpool.conf.sampleです。