1. ホーム
  2. database

[解決済み] 破損したSQLite3データベースを復旧する方法

2023-05-02 13:21:08

質問

これは、以前に回答した記事に対するフォローアップの質問です。 Linux で SQLite データベースを検証するためのコマンドライン ユーティリティはありますか?

データベースが以下のようなエラーを出す場合。

$ sqlite3 mydata.db "PRAGMA integrity_check"
Error: database disk image is malformed

データベースを使用可能な状態に回復するために、何かクリーンアップ処理はありますか?たとえ、いくつかの破損したレコードを失う可能性があっても?

ありがとうございます。

どのように解決するのですか?

UPDATE: 現在では 自動メソッド は、SQLite に組み込まれています: .recover

破損の原因がインデックスのみ、またはその大部分にある場合もあり、その場合は、データベース全体を .dump でデータベース全体をダンプし、これらのコマンドを使用して新しいデータベースを作成します。

$ sqlite3 mydata.db ".dump" | sqlite3 new.db

しかし、これは常に可能なことではありません。

最も簡単で信頼できる方法は、バックアップからデータベース ファイルを復元することです。