2016-06-07 611 views
0

即时通讯在相对较小的设备上运行influxdb实例,以收集时间序列物联网传感器数据。有时需要重新启动该设备(更新或类似的东西),我注意到,重新启动后,如果我查询一些数据,influxdb历史记录中会有一个数据信息。使用我当前的配置,由于重新启动,我丢失了大约16个小时的数据。 如何确保设备重新启动后所有数据仍然存在?如何防止重启influxdb服务器的数据丢失?

谢谢!

+0

你正在使用什么版本的InfluxDB?是否使用了任何非标准配置参数? InfluxDB默认存储磁盘上的所有点。 – Gunnar

+0

进出口使用0.13版本和一个配置,其是默认大多数值除外: 报告禁用=真 缓存最大存储器大小= 5242880 缓存快照存储器大小= 512 [碎片-precreation] 启用=假 和一些数据存储路径以及将http接口绑定到localhost。 – p0fi

+0

所有数据存储路径([meta]目录,[data]目录和wal-dir)是否映射到磁盘存储上?此外,“cache-snapshot-memory-size”非常低(单位是字节)。 – Gunnar

回答

0

在InfluxDB中,持久性数据存储在/wal/data/meta目录中。 /wal目录包含提前写入日志,该日志充当最近写入的点的存储区域,以便在/data目录中将其压缩为时间序列合并文件以便长期存储之前进行存储。

在Unix系统上,/tmp directory有时会在重新启动时清除。由于wal-dir配置设置指定为/tmp/.influxdb/wal,写入提前日志中的持久数据可能会在重新启动时清除。这就解释了为什么你只看到最近数据的数据丢失。旧数据将刷新到/data目录,该目录在重新引导时不会被清除。

总之,wal-dir配置设置需要设置为/data/.influxdb/wal或另一个目录,在重新启动时不清除。

相关问题