即時通訊在相對較小的設備上運行influxdb實例,以收集時間序列物聯網傳感器數據。有時需要重新啓動該設備(更新或類似的東西),我注意到,重新啓動後,如果我查詢一些數據,influxdb歷史記錄中會有一個數據信息。使用我當前的配置,由於重新啓動,我丟失了大約16個小時的數據。 如何確保設備重新啓動後所有數據仍然存在?如何防止重啓influxdb服務器的數據丟失?
謝謝!
即時通訊在相對較小的設備上運行influxdb實例,以收集時間序列物聯網傳感器數據。有時需要重新啓動該設備(更新或類似的東西),我注意到,重新啓動後,如果我查詢一些數據,influxdb歷史記錄中會有一個數據信息。使用我當前的配置,由於重新啓動,我丟失了大約16個小時的數據。 如何確保設備重新啓動後所有數據仍然存在?如何防止重啓influxdb服務器的數據丟失?
謝謝!
在InfluxDB中,持久性數據存儲在/wal
,/data
和/meta
目錄中。 /wal
目錄包含提前寫入日誌,該日誌充當最近寫入的點的存儲區域,以便在/data
目錄中將其壓縮爲時間序列合併文件以便長期存儲之前進行存儲。
在Unix系統上,/tmp
directory有時會在重新啓動時清除。由於wal-dir
配置設置指定爲/tmp/.influxdb/wal
,寫入提前日誌中的持久數據可能會在重新啓動時清除。這就解釋了爲什麼你只看到最近數據的數據丟失。舊數據將刷新到/data
目錄,該目錄在重新引導時不會被清除。
總之,wal-dir
配置設置需要設置爲/data/.influxdb/wal
或另一個目錄,在重新啓動時不清除。
你正在使用什麼版本的InfluxDB?是否使用了任何非標準配置參數? InfluxDB默認存儲磁盤上的所有點。 – Gunnar
進出口使用0.13版本和一個配置,其是默認大多數值除外: 報告禁用=真 緩存最大存儲器大小= 5242880 緩存快照存儲器大小= 512 [碎片-precreation] 啓用=假 和一些數據存儲路徑以及將http接口綁定到localhost。 – p0fi
所有數據存儲路徑([meta]目錄,[data]目錄和wal-dir)是否映射到磁盤存儲上?此外,「cache-snapshot-memory-size」非常低(單位是字節)。 – Gunnar