ブログを検索

2024/06/13

【復旧済】 アメダスデータ取得が止まっていたので復旧させた

 自動で横手市のアメダスデータをチラ見してsqlite3のデータベースファイルに蓄積しているんですが

$ ls -l measure.db
-rw-r--r-- 1 pi pi 44851200  4月  6 08:00 measure.db
4月6日 08:00 を最後にデータを取得出来ていないことに気付いた
取得するスクリプトを手動で実行してみると
database disk image is malformed
と出る

sqlite3のデータベースファイルが論理的に壊れているぽい

再度確認してみると
$ 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秒かかった


修復して出来た temp.db ファイルを正規のファイル名に変更して復旧した
$ mv temp.db measure.db

$ ls -l measure.*
-rw-r--r-- 1 pi pi 31346688  6月 13 08:46 measure.db

作り直しでサイズが小さくなった

以上

0 件のコメント:

コメントを投稿

MySQL で SELECT into outfile 出来なくてハマった件

 Windows上の MySQL で SELECT into outfile で CSVファイルをエクスポートしようとしてハマったので残しておく 環境 Windows10 Pro バージョン 1809 MySQL 8.4.0 という環境で SELECT * FROM table1...