概要
InfluxDBのバックアップ・リストア手順です。
InfluxDBはコンテナで動作していることを想定しています。
ドキュメントを確認するとバックアップ方法は2つのようです。
差分・増分バックアップの方法は確認できませんでした。
- すべてのデータをバックアップする
- 特定のバケットをバックアップする
本手順では、すべてのデータをバックアップする方法を紹介します。
環境
本手順で取り扱う内容は、次の環境にて確認しています。
マシン:Amazon EC2
OS:Ubuntu 24.04
Docker:27.2.0
Docker Compose:v2.29.2
influxDB:2.7.10
コンテナイメージ:bitnami/influxdb
InfluxDBバックアップ
注意事項
バックアップを取得する前に、アプリケーションを停止して下さい。
バックアップを取得します。
※influxdbのコンテナ名は、本手順ではinfluxdb
としています。
$ docker compose exec influxdb influx backup /tmp/`date +%Y%m%d`/ -t <admin_user_token>
バックアップを格納するディレクトリが無い場合は作成することをお勧めします。
$ mkdir backup
バックアップデータをホストマシンのバックアップ格納用ディレクトリにコピーします。
$ docker compose cp influxdb:/tmp/`date +%Y%m%d`/ ./backup/`date +%Y%m%d`
バックアップファイルの権限を変更します。
非rootコンテナであるbitnamiのコンテナイメージを利用している都合上、このような操作が必要になります。
$ sudo chown 1001:root -R ./backup/`date +%Y%m%d`
コンテナ上のバックアップファイルを削除します。
$ docker compose exec influxdb rm -fr /tmp/`date +%Y%m%d`/
InfluxDBリストア
バックアックファイルをコンテナにコピーします。
<YYYYMMDD>
の箇所は、戻したい日付を指定して下さい。
$ sudo docker compose cp ./backup/<YYYYMMDD> influxdb:/tmp/
リストアを実行します。
$ docker compose exec influxdb influx restore -t <admin_user_token> --full /tmp/<YYYYMMDD>/
後片付けとして、コンテナ上に残っているバックアップファイルを削除します。
$ docker compose exec influxdb rm -fr /tmp/<YYYYMMDD>/
参考
https://docs.influxdata.com/influxdb/v2/admin/backup-restore/
https://docs.influxdata.com/influxdb/v2/reference/cli/influx/backup/
https://hub.docker.com/r/bitnami/influxdb