もちろん、破損の可能性がないのが望ましいので、それを避けるためにできるあらゆることを行っています。
コーパスの破損は、POPFile のプログラムを強制終了させ、コーパスの構造をディスクに中途半端な状態で残してしまったときに起こることがあります。これは、あなたのコンピュータをきちんとシャットダウンせず電源を切ったり再起動したりすると起こることがあります。
コーパスが破損したときの症状は下記のようなものがあります;
POPFile を停止し、 SQLite コマンドラインユーティリティーを使用してデータベース (popfile.db) をチェックします。
SQLite コマンドラインユーティリティーを使う場合には気をつけてください - これはデータベースの内容を変更することができる強力なユーティリティなので、これを使ってミスをするとデータベースが破損して POPFile が動作しなくなってしまいます!
Windows 版のユーザ には いくつかのオプションがあります:
A. POPFile SQLite Database Status Check ( 小さな Windows プログラム ) を使って、データベースをチェックし、 結果 を確認します。0.22.3 (またはそれ以降)のインストーラーは、このプログラムをインストールし、スタートメニューに下記を追加します:
スタート –> プログラム –> POPFile –> Support –> Check database status
0.22.3より前のバージョンを使用している場合、 POPFile SQLite Database Status Check を個別にダウンロードできます。(175 KB zipファイル) このプログラムはどのフォルダからでも実行することができます。POPFile のデータベースを自動的に見つけることができるでしょう(あなたがしなければならないことはプログラムを実行するだけです。何も入力する必要はありません)。
B. 0.22.3(またはそれ以降)の Windows 版のインストーラーが 'User Data' フォルダに作成する “Check database status” ショートカットを使用します。このショートカットは、 'User Data' フォルダにあるデータベースをチェックするために使います。
C. Windows 版のインストーラが 'User Data' フォルダに作成する “Run SQLite utility” ショートカットを実行します。このショートカットは SQLite ユーティリティを実行し、POPFile のデータベースがどこにあるかを伝えます。DOS 窓が開いたら、下記のクロスプラットフォーム版の説明のステップ 4 以降に従ってください。
D. 手動で 'User Data' フォルダ(POPFile のデータが保存されているフォルダで、すなわち popfile.db ファイルのあるディレクトリ)に移動して SQLite コマンドラインユーティリティを実行し、下記のクロスプラットフォーム版のステップ 3 以降に従ってください。('User Data' フォルダが POPFile プログラムと同じフォルダにない場合には、sqlite.exe プログラムへのパスを指定する必要があるでしょう - Windows 9x を使用しているのでなければ、%POPFILE_ROOT%\sqlite が使えるでしょう)
Windows 版のインストーラは 'User Data' フォルダの位置を表示するショートカットをスタートメニューに作成します(スタート –> プログラム –> POPFile –> Support –> PFI Diagnostic utility (simple))。POPFile 0.22.1 またはそれ以降では、ユーザーデータフォルダへのショートカットをスタートメニューに作成することができます。 (スタート –> プログラム –> POPFile –> Support –> Create 'User Data' shortcut)
Cross-platform 版のユーザ は以下のようにして SQLite データベースをチェックすることができます:
1. コマンドプロンプト (DOS 窓) またはシェルを起動します
2. POPFile のデータが格納されているディレクトリ(すなわち、popfile.db を含むディレクトリ)に移動します
3. SQLite ユーティリティーで、データベースを開きます
sqlite popfile.db 'SQLite version 2.8.12' Enter ".help" for instructions sqlite>
4. そして、整合性チェックを実施します(コマンドの最後のセミコロンを忘れないでください)
pragma integrity_check; ok sqlite>
5. .q コマンドを入力して、ユーティリティを終了します。
いったん popfile.db が破損してしまったら、この状況を修正するために下記の選択肢があります:
sqlite popfile.db .dump >popback.sql rename popfile.db corrupt.db sqlite popfile.db < popback.sql
これはコーパスのサイズに依存して時間がかかる処理ですから、SQLite を強制終了したり、killしたりしないで辛抱してください。さもないとまた破損したコーパスを作ってしまうことになります。
0.20.xからのバージョンアップに問題を抱えている場合は、バージョン 0.20.x のコーパスの破損を参照してください。
Should you find anything in the documentation that is incomplete, unclear, outdated or just plain wrong, please let us know and leave a note in the Documentation Forum.