これはPGroonga 2.X and 3.X用のドキュメントです。古いPGroongaを使っているならPGroonga 1.xのドキュメントを見てください。

pgroonga_standby_maintainer モジュール

2.4.2で追加。

お知らせ

PostgreSQL 15以上であれば、このモジュールの代わりにpgroonga_wal_resource_managerモジュールをご利用ください。

概要

pgroonga_standby_maintainer モジュールは、 pgroonga_wal_apply() 関数pgroonga_vacuum() 関数 をスタンバイのデータベース上で自動的に実行します。

通常、PGroongaとストリーミングレプリケーションを一緒に使っている場合、PGroongaのWALはスタンバイのデータベースには適用されません。

したがって、例えば、スタンバイのデータベースをプライマリーのデータベースに切り替えた後の最初の"SELECT"は遅い可能性があります。 切り替わった後のプライマリーのデータベースに未適用のPGroongaのWALを適用する時間があるためです。

また、スタンバイのデータベース上で定期的に pgroonga_vacuum() 関数 を使って不要なGroongaの内部テーブル、カラム、レコードを削除する必要があります。 スタンバイのデータベースでは、 VACUUM が実行されないためです。

前者のケースでは、 pgroonga_wal_applier モジュール を使って自動的にPGroongaのWALをスタンバイのデータベースに適用できますが、後者のケースでは、 pgroonga_vacuum() 関数をスタンバイのデータベースで自動的に実行することができません。

pgroonga_standby_maintainer モジュールを使うことで、スタンバイのデータベースで pgroonga_wal_apply() 関数pgroonga_vacuum() 関数 を自動的に実行できます。

したがって、 pgroonga_standby_maintainerモジュールを使えば、スタンバイのデータベース上で、 pgroonga_wal_applier モジュールpgroonga_vacuum() 関数 を使う必要がありません。

使い方

pgroonga_standby_maintainer モジュールを使うには、以下のパラメーターを設定しなければなりません。

例:

shared_preload_libraries = 'pgroonga_standby_maintainer'

パラメーター

参考