InfluxDB数据管理
InfluxDB提供了数据的备份和恢复方法,在实际工作中,可以通过这些方法来实现数据的高可用。
本地备份
备份元数据
influxDB本地备份元数据的语法如下,这只会备份InfluxDB的的internal库数据,包含那些最基本的系统信息、用户信息等。
influxd backup <path-to-backup>
示例:
$ influxd backup /tmp/backup
2016/02/01 17:15:03 backing up metastore to /tmp/backup/meta.00
2016/02/01 17:15:03 backup complete
备份数据库
可以通过 -database 参数来指定备份的数据库。
语法:
influxd backup -database <mydatabase> <path-to-backup>
其他可选参数:
-retention <retention policy name>
-shard <shard ID>
-since <date>
注:日期为RFC3339 格式,例如:2015-12-24T08:12:23Z
示例:
$ influxd backup -database telegraf -retention autogen -since 2016-02-01T00:00:00Z /tmp/backup
2016/02/01 18:02:36 backing up rp=default since 2016-02-01 00:00:00 +0000 UTC
2016/02/01 18:02:36 backing up metastore to /tmp/backup/meta.01
2016/02/01 18:02:36 backing up db=telegraf rp=default shard=2 to /tmp/backup/telegraf.default.00002.01 since 2016-02-01 00:00:00 +0000 UTC
2016/02/01 18:02:36 backup complete
远程备份
InfluxDB可以使用 -host 参数实现数据的远程备份,端口一般是8088
示例:
$ influxd backup -database mydatabase -host 10.0.0.1:8088 /tmp/mysnapshot
注,上文所有参数在远程备份中均可使用。
数据恢复
语法:
influxd restore [ -metadir | -datadir ] <path-to-meta-or-data-directory> <path-to-backup>
必要参数:
-metadir <path-to-meta-directory>
或
-datadir <path-to-data-directory>
可选参数:
-database <database>
-retention <retention policy>
-shard <shard id>
示例,恢复数据库:
$ influxd restore -database telegraf -datadir /var/lib/influxdb/data /tmp/backup
Restoring from backup /tmp/backup/telegraf.*
unpacking /var/lib/influxdb/data/telegraf/default/2/000000004-000000003.tsm
unpacking /var/lib/influxdb/data/telegraf/default/2/000000005-000000001.tsm