7.1.1. grndb
¶
7.1.1.1. 概要¶
注釈
この実行ファイルは実験的な機能です。
バージョン 4.0.9 で追加.
grndb
はGroongaのデータベースを管理します。
機能は次の通りです。
データベースが壊れているかどうかをチェックする。
壊れたデータベースが復旧可能なら自動でデータベースを復旧する。
7.1.1.2. 構文¶
grndb
にはコマンドとデータベースのパスを渡します。:
grndb COMMAND [OPTIONS] DATABASE_PATH
利用可能なコマンドは以下の通りです。
check
- データベースが壊れているかどうかをチェックします。
recover
- データベースを復旧します。
7.1.1.3. 使い方¶
以下は /var/lib/groonga/db/db
にあるデータベースをチェックする例です:
% grndb check /var/lib/groonga/db/db
以下は /var/lib/groonga/db/db
にあるデータベースを復旧する例です:
% grndb recover /var/lib/groonga/db/db
7.1.1.4. コマンド一覧¶
このセクションでは利用可能なコマンドについて説明します。
7.1.1.4.1. check
¶
既存のGroongaデータベースをチェックします。もし、データベースが壊れていたら grndb
は詳細を報告し、 0
以外の終了ステータスで終了します。
注釈
このコマンドを他のプロセスが開いているデータベースに対しては使ってはいけません。もし、データベースが他のプロセスから開かれていると、このコマンドは間違った結果を報告する可能性があります。
check
にはいくつかオプションがあります。
7.1.1.4.1.1. --target
¶
バージョン 5.1.2 で追加.
チェック対象のオブジェクトを指定します。
もし、データベースが大きく、かつ、信頼できないオブジェクトがわかっているなら、このオプションが役に立つでしょう。 check
は大きなデータベースほど処理に時間がかかります。 --target
オプションでチェック対象を限定することでチェック時間を削減できます。
check
はチェック対象を再帰的にチェックします。なぜなら、信頼できないオブジェクトに関連するオブジェクトも信頼できないことが多いからです。
チェック対象がテーブルの場合、そのテーブルのすべてのカラムも再帰的にチェックします。
チェック対象がテーブルでテーブルのキーの型が他のテーブルの場合、他のテーブルも再帰的にチェックします。
チェック対象がカラムで値の型がテーブルの場合、そのテーブルも再帰的にチェックします。
チェック対象がインデックスカラムの場合、値の型に指定したテーブルとすべてのソースも再帰的にチェックします。
以下は Entries
テーブルとそのカラムだけをチェックする例です。:
% grndb check --target Entries /var/lib/groonga/db/db
以下は Entries.name
カラムだけをチェックする例です。:
% grndb check --target Entries.name /var/lib/groonga/db/db
7.1.1.4.2. recover
¶
既存の壊れたGroongaデータベースを復旧します。
もしデータベースが壊れていなかったら、 grndb
は何もせず終了ステータス 0
で終了します。
もしデータベースが壊れていて、壊れているのがインデックスカラムだけなら、 grndb
は壊れているインデックスカラムを復旧して終了ステータス 0
で終了します。インデックス対象のデータが大きい場合は復旧に長時間かかることもあります。
もしデータベースが壊れていて、壊れているのがテーブルまたはデータカラムの場合は、 grndb
は壊れている原因を報告して 0
以外の終了ステータスで終了します。データベースを復旧可能かどうかは check
コマンドで確認できます。
注釈
このコマンドを他のプロセスが開いているデータベースに対しては使ってはいけません。もし、データベースが他のプロセスから開かれていると、このコマンドはデータベースを壊してしまう可能性があります。