いんくらyochさんの日記

興味あることの備忘録

influxdbの場所移動

発電情報をraspi3のinfluxdb v1に格納しているが、原因不明で過去1年分のデータが飛んだので、USBストレージにDBを移す作業をした。
■順序

  1. 再開したところから現在までのDBをエクスポート
  2. USBストレージをマウント
  3. /etc/influxdb/influxdb.confのDB格納場所を変更
  4. 以前のバックアップをUSBストレージにリストア
  5. 1でエクスポートしたDBのインポート
  6. バックアップ作成

■エクスポート・インポート

$ 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を給電してみた。
いまのところ問題なし。