DB

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をリストアする機能。