自動で横手市のアメダスデータをチラ見してsqlite3のデータベースファイルに蓄積しているんですが
$ ls -l measure.db
-rw-r--r-- 1 pi pi 44851200 4月 6 08:00 measure.db
4月6日 08:00 を最後にデータを取得出来ていないことに気付いた
-rw-r--r-- 1 pi pi 44851200 4月 6 08:00 measure.db
4月6日 08:00 を最後にデータを取得出来ていないことに気付いた
取得するスクリプトを手動で実行してみると
database disk image is malformed
と出る
database disk image is malformed
と出る
sqlite3のデータベースファイルが論理的に壊れているぽい
再度確認してみると
$ sqlite3 measure.db "PRAGMA integrity_check"
Error: database disk image is malformed
やっぱり壊れている
$ sqlite3 measure.db "PRAGMA integrity_check"
Error: database disk image is malformed
やっぱり壊れている
$ ls -l measure.*
-rw-r--r-- 1 pi pi 44851200 4月 6 08:00 measure.db
44MBytesか、ずいぶん大きくなったな 汗
下記で修復
$ sqlite3 measure.db ".recover" | sqlite3 temp.db
このくらいのサイズのデータベースファイルだと60秒かかった
$ sqlite3 measure.db ".recover" | sqlite3 temp.db
このくらいのサイズのデータベースファイルだと60秒かかった
修復して出来た temp.db ファイルを正規のファイル名に変更して復旧した
$ mv temp.db measure.db
$ mv temp.db measure.db
$ ls -l measure.*
-rw-r--r-- 1 pi pi 31346688 6月 13 08:46 measure.db
作り直しでサイズが小さくなった
以上
0 件のコメント:
コメントを投稿