これはPGroonga 2.0.0以降用のドキュメントです。PGroonga 1.Xを使っているならPGroonga 1.Xのドキュメントを見てください。
pgroonga_crash_saferモジュール2.3.3で追加。
まだ実験的な機能です。
pgroonga_crash_saferモジュールはクラッシュセーフ機能を提供します。
内部で使っている壊れたGroongaのデータベースをGroongaのWALを使って自動的に復旧します。
内部で使っている壊れたGroongaのデータベースをREINDEXを使って自動的に復旧します。
pgroonga_crash_saferモジュールはPostgreSQLがクラッシュ後に最初にPGroongaの機能が使われたときに自動リカバリー処理を開始します。PostgreSQL起動時ではないことに注意してください。PostgreSQL起動時にこの自動リカバリー処理を実行したい場合はPostgreSQLがスタートした直後にSELECT pgroonga_command('status')などでPGroongaの機能を使うシンプルなSQLを実行してください。
pgroonga_crash_saferモジュールを使うにはpgroonga.enable_crash_safeパラメーターにonを指定しなければいけないことに注意してください。
pgroonga_crash_saferモジュールを使うには次のパラメーターを設定しなければいけません。
例:
shared_preload_libraries = 'pgroonga_crash_safer'
pgroonga.enable_crash_safer = on
max_worker_processesパラメーターの値を増やさないといけないかもしれません。pgroonga_crash_saferモジュールは常に1つワーカープロセスを実行します。さらに、pgroonga_crash_saferモジュールはPGroongaを使っているデータベースごとに1つあるいは2つワーカープロセスを実行します。たとえば、もしPGroongaを使っているデータベースが3つあった場合は、pgroonga_crash_saferモジュールは最大で7ワーカープロセスを実行します。
max_worker_processes = 15 # 8 (the default) + 7 (for pgroonga_crash_safer)