これは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'