発電情報をraspi3のinfluxdb v1に格納しているが、原因不明で過去1年分のデータが飛んだので、USBストレージにDBを移す作業をした。
■順序
- 再開したところから現在までのDBをエクスポート
- USBストレージをマウント
- /etc/influxdb/influxdb.confのDB格納場所を変更
- 以前のバックアップをUSBストレージにリストア
- 1でエクスポートしたDBのインポート
- バックアップ作成
■エクスポート・インポート
$ sudo influx_inspect export -waldir <wal_dir> -datadir <tada_dir> -out "<output_name>" -database <db_name> $ influx -import -path=<output_name>
■USBストレージ
M.2のSATAドライブのため、fdiskでパーティション作成、mkfsでフォーマット後、以下でマウント。
$ mount /dev/sda1 /mnt/<mount_point> -o noatime,discard
■influxdbバックアップ・リストア
$ influxd backup -portable -db <db_name> <output_path> $ influxd restore -portable -db <db_name> <input_path>
■確認クエリ
$ influx > show database > use <db_name> > show measurements > select * from <measurements> order by time desc limit 1 > quit
その後、Buffer I/O error on /dev/sda1, logical block 30965760, lost sync page write でDBが書き込みできなくなったので、以下対処を実行してみた。
■対処
$ sudo tune2fs -O ^has_journal /dev/sda1 $ sudo e2fsck -f /dev/sda1 $ sudo tune2fs -O has_journal /dev/sda1 $ sudo e2fsck -f /dev/sda1 $ sudo fstrim -v /mnt/<mount_point>
しばらくして、またBuffer I/O errorが出た。
一緒にLow Voltageが出ているが、3AのDC-DCで能力に問題ないハズで、USBへの給電が足りないことでSSDに問題が起きると考え、DC-DCから直接USBポートへ5Vを給電してみた。
いまのところ問題なし。