influxdb不停機遷移擴容

背景:原先influxdb1.6.4只有一臺服務器,現在需要擴容到三臺

總的步驟:

1.將數據庫通過備份還原到另外兩臺服務器

2.修改數據庫代理 influxdb relay 將數據寫入三臺服務器

3. 補齊遷移期間丟失的數據

詳細步驟

1.在原來的服務器上備份所有數據庫:influxd backup -host 127.0.0.1:8088 -portable /tmp/data/

   備份完成後將數據壓縮(zip data.zip ./data/*),然後傳輸到另外兩臺服務器,解壓縮(unzip data.zip)

   還原所有數據庫: influxd restore -portable /tmp/data/ ,在還原的時候可能因爲數據庫綁定ip的原因,需要添加參數命令-host

2.修改數據庫代理,將最新的數據寫入三臺服務器

3.新的兩臺服務器會缺失一部分數據(從開始備份還原到修改代理寫入數據),這部分數據通過指定時間段備份還原的方式將數據補上,示例:

備份指定時間段的數據(時間段爲缺失數據的那部分時間間隔,可以比缺失的時間間隔略微大一點,還原的時候如果數據重複,會將重複數據覆蓋)

原服務器上執行:

influxd backup -portable -host 127.0.0.1:8088 -database test -start 2019-12-17T5:30:00Z -end 2019-12-17T6:05:00Z /tmp/data/test/

新服務器上執行:

因爲通過第一步,新的服務器上已經存在test數據庫,所以此次備份將數據還原到test_bk數據庫
influxd restore -portable -host 127.0.0.1:8088 -db test -newdb test_bk /tmp/data/test

登錄influx,  切換到test_bk數據庫,詳細操作如下:
# influx
> use test_bk
> SELECT * INTO test..:MEASUREMENT FROM /.*/ GROUP BY *


//如果上述操作提示元信息已經存在,可以執行保留策略備份
//influxd restore -portable -host 127.0.0.1:8088 -db test -newdb test_bk -rp rp_6_month -newrp rp_6_month  /tmp/data/test
//SELECT * INTO test.rp_6_month.:MEASUREMENT FROM /test_bk.rp_6_month.*/ GROUP BY *


 

參考自:https://www.cnblogs.com/yihuihui/p/9379214.html

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章