さまざまな理由で、稼働中の運用システムからコピーしたsqlite version3 db3ファイルをいくつか持っています(悪いsysadmin悪いsysadminを知っています)。これらのファイルからすべてのデータを読み取ることができることを確認するために実行できるsqliteコマンドはありますか(時間がかかってもかまいません)。
すべてのデータをダンプし、それを新しいファイルに再インポートするPerlをハックアップすることを検討していました。破損したデータが検出されると、sqliteは例外をスローすると思います。もっと良い方法はありますか?
私はCentOS 5.3とsqlite-3.3.6-2です
あなたが試してみたいと思います:
pragma integrity_check;
ドキュメント から:
このプラグマは、データベース全体の整合性チェックを実行します。 integer_checkプラグマは、順不同のレコード、ページの欠落、不正なレコード、欠落したインデックスエントリ、UNIQUEおよびNOT NULL制約エラーを探します。 integer_checkプラグマが問題を検出すると、問題を説明する文字列が返されます(行ごとに1つの列を持つ複数の行)。 [...]
PRAGMA quick_check コマンドも参照してください。これは、PRAGMA integer_checkのチェックのほとんどを実行しますが、はるかに高速に実行されます。