2017-12-24 7 views
1

私は最近、サーバがシャットダウンしたときにSQLiteを利用するいくつかのアプリケーションが破損の問題を抱えているという問題に遭遇しています。それがハードウェアの問題ではないことを知って、私は問題の根底に到達したいと思います。SQLiteにプラグマの整合性チェック用の冗長オプションはありますか?

これらのSQLiteデータベースのうち、破損が発生した後でスナップショットを撮ったので、何かを学ぶことができます。

データベースでpragma_integrityチェックを実行しましたが、「エラー:データベースディスクイメージが不正です」という結果が返されました。これはまさにアプリケーションログに出力されているものです。

このチェックには冗長モードがありますか?私はSQLiteのドキュメントで何も見ることができませんでした。

また、データベースを分析するために使用できるものがありますか?あなたが完了する前に、それが返すエラーの数を指定するためにintegrity_check(n)を使用することができますが

+0

PRAGMAは中止するべきではありません。このバグは最近修正されました。最新バージョンをお試しください。 –

+0

これはいつ修正されたのですか?私はFedora Rawhideとの出会いをかなり前にしています。私はSQLite 3.20.1にいるのですか? – dcrdev

+0

[3.21.0](http://www.sqlite.org/releaselog/3_21_0.html) –

答えて

1

integrity_check(デフォルトは(n)なし100すなわちである)、quick_checkと比較して冗長な形式です。

あなたのケースでは、単一のエラーが発生しているように見えるので、integrity_check(n)を使用すると違いはありません。

SQLite's - PRAGMA Statements

おそらく、これらのリンクは使用

であるかもしれない基本的に彼らは、SQLiteのツールを使用してデータベースをエクスポートしようとすると言います。

googleの場合はさらに多くの負荷がありますsqlite malformed database

興味のあるHow To Corrupt An SQLite Database Fileもあります。

関連する問題