pgpool-Ⅱ入門
- POST
pgpool-Ⅱ入門 pgpool-Ⅱとは アプリケーションと複数のPostgreSQLの間に介在し、 負荷分散や冗長化の機能を提供するOSSのプロキシソフトウェア。
複数のPostgreSQLノードに対して、参照クエリを振り分けなどが可能。
下記の機能を提供する。
コネクションプール 参照負荷分散 オンメモリクエリキャッシュ 自動フェイルオーバー オンラインリカバリ レプリケーション レプリケーション レプリケーションには、PostgreSQLがもともと提供しているレプリケーション機能と、 pgpoolが提供しているレプリケーションの2種類がある。
PostgreSQLのレプリケーション ストリーミングレプリケーション プライマリノードのWALを、リアルタイムでスタンバイノードに転送することで、 プライマリとスタンバイのDBの同期を取ることができる。
WAFの転送と、WAFからの複製処理に時間がかかると同期が遅延する https://www.fujitsu.com/jp/products/software/resources/feature-stories/streaming-replication1/?postgresql-inside
pgpool-Ⅱのレプリケーション ネイティブレプリケーション 更新クエリを全てのサーバに送信してレプリケーションを行う。
同期遅延なし 更新性能が50%に落ちる フェイルオーバー pgpool-ⅡがPostgreSQLを定期的に監視し、ダウンしたノードは自動的に切り離される
ノードがダウンした場合の処理はshell script形式で記述する。 オンラインリカバリ サービスを止めずに停止したノードを復帰させる機能。 マスタのバックアップから、リカバリする。
https://www.pgpool.net/docs/latest/ja/html/example-cluster.html https://www.sraoss.co.jp/prod_serv/support/cluster_option.php https://www.obci.jp/wp-content/uploads/2016/08/TIS_PostgreSQL.pdf
用語 データベースクラスタ DBサーバ内のにあるDBの集合体、およびDBのディスク上の保存領域を示す。 データベースクラスタのスナップショットは「ベースバックアップ」と言われる。
WAL(Write Ahead Log) DBに対して更新を実施する前に、作成される更新内容を記録したトランザクションログ。
WALのログを利用することで、DBの複製が可能。
WALログは、postgresのデータディレクトリ以下のpg_xlogディレクトリに、000000010000000000000000から始まるファイルとして配置される。
https://www.postgresql.jp/document/9.4/html/continuous-archiving.html
アーカイブログ WALのバックアップファイルを示す。 PostgreSQLの設定ファイルで指定した特定の条件を満たすと、WALファイルはログの切り替え(ログローテーション)を行う。 切り替え後の古いログはアーカイブログとして別ファイルに保存される。 アーカイブログの保存先は設定パラメータarchive_commandに指定する。
PITR(Point In Time Recovery) 特定の時点のDBをリストアする機能。