これはPGroonga 2.X and 3.X用のドキュメントです。古いPGroongaを使っているなら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)