第一次物联网项目中使用 InfluxDB 2.0,心里最没底的就是数据安全性问题。 而且在 WSL Ubuntu 中有重启之后,永远无法启动的问题,除非清空数据。 所以,必须在线上生产服务器上反复测试数据备份流程。
InfluxDB 数据备份
influx backup 命令格式:
influx backup <backup-path> -t <root-token>
root token 在哪里获取?
官方文档的说明是:
The root authorization token (the token created for the first user in the InfluxDB setup process).
但是这个说法太模糊了,我只知道创建的初始用户的账户名,但是并不知道其 token 在哪里获取?
$ influx backup \
> /home/zhongwei/backup_$(date '+%Y-%m-%d_%H-%M') \
> -t xxxxxxxxxxxxxx
2021-06-18T06:00:11.426764Z info Backing up KV store {"log_id": "0UoR7sdW000", "path": "/home/zhongwei/backup_2021-06-18_14-00/20210618T060011Z.bolt"}
Error: Failed to download KV backup: read:authorizations is unauthorized.
我从 InfluxDB UI 管理后台,创建了一个 All Access Token (Data -> Tokens -> Generate Token), 倒是导出时报错 read:authorizations is unauthorized。
想了一下,可能是因为用了后来创建的 org 的 token,于是切换 org 到第一个创建的 org,再到 Data - Tokens 界面, 就能看到一个与初始用户同名的 token,那个 token 有所有权限。再次导出就可以了。
备份文件目录清单:
$ ls -lah backup_2021-06-18_14-08
total 88K
drwxr-xr-x 1 zhongwei zhongwei 512 Jun 18 14:08 .
drwxr-xr-x 1 zhongwei zhongwei 512 Jun 18 14:08 ..
-rw-r--r-- 1 zhongwei zhongwei 56K Jun 18 14:08 20210618T060816Z.bolt
-rw------- 1 zhongwei zhongwei 1009 Jun 18 14:08 20210618T060816Z.manifest
-rw-r--r-- 1 zhongwei zhongwei 23 Jun 18 14:08 20210618T060816Z.s1.tar.gz
-rw-r--r-- 1 zhongwei zhongwei 652 Jun 18 14:08 20210618T060816Z.s2.tar.gz
-rw-r--r-- 1 zhongwei zhongwei 23 Jun 18 14:08 20210618T060816Z.s3.tar.gz
InfluxDB 数据恢复
如果只是恢复时序数据,指定备份数据目录即可:
influx restore /backups/2020-01-20_12-00/
如果既要恢复时序数据,还要恢复用户,token 等,加上 full 参数:
influx restore /backups/2020-01-20_12-00/ --full
restore 时报错
使用
influx restore /backups/2020-01-20_12-00/
恢复数据时报错:
Error: Failed to create bucket "sunzhongwei.com": bucket with name sunzhongwei.com already exists.
加上 full 参数,就可以了。
但是,WSL 下,InfluxDB 一直报错:
2021-06-19T00:52:01.112888Z warn Error while freeing cold shard resources {"log_id": "0UpR9k~G000", "service": "storage-engine", "service": "store", "error": "cannot allocate memory", "db_shard_id": 2}
得线上测试一下是否也有同样的问题。
参考
- https://docs.influxdata.com/influxdb/v2.0/backup-restore/backup/
- https://docs.influxdata.com/influxdb/v2.0/backup-restore/restore/
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式