基礎指令:
influx 打開influxdb命令行控制工具。 顯示當擁有哪些數據庫 show databases
轉載地址:https://blog.csdn.net/qq_37674858/article/details/85759126
//***
備份
influxd backup -portable -database bstar ./
恢復
influxd.exe restore -portable -db bstar -newdb bstar ..\influxdbBackpu\temp
//***
I. 備份
備份命令
influxd backup
[ -database <db_name> ] --> 指定需要備份的數據庫名
[ -portable ] --> 表示在線備份
[ -host <host:port> ] --> influxdb服務所在的機器,端口號默認為8088
[ -retention <rp_name> ] | [ -shard <shard_ID> -retention <rp_name> ] --> 備份的保留策略,注意shard是掛在rp下的;我們需要備份的就是shard中的數據
[ -start <timestamp> [ -end <timestamp> ] | -since <timestamp> ] --> 備份指定時間段的數據
<path-to-backup> --> 備份文件的輸出地址
a. 備份所有的數據庫
將influxdb中的所有的數據庫都備份下來,不加任何的參數
influxd backup -portable /tmp/data/total
b. 備份指定數據庫
如果只想要備份上面的yhhblog數據庫, 添加 -database 參數指定即可
# influxd backup -portable -database yhhblog /tmp/data/yhhblog
2018/07/27 10:38:15 backing up metastore to /tmp/data/yhhblog/meta.00
2018/07/27 10:38:15 backing up db=yhhblog
2018/07/27 10:38:15 backing up db=yhhblog rp=autogen shard=10 to /tmp/data/yhhblog/yhhblog.autogen.00010.00 since 0001-01-01T00:00:00Z
2018/07/27 10:38:15 backup complete:
2018/07/27 10:38:15 /tmp/data/yhhblog/20180727T023815Z.meta
2018/07/27 10:38:15 /tmp/data/yhhblog/20180727T023815Z.s10.tar.gz
2018/07/27 10:38:15 /tmp/data/yhhblog/20180727T023815Z.manifest
c. 備份數據庫中指定時間段的數據
對上面的數據,只備份部分時間滿足要求的數據,可以添加start/end參數
# influxd backup -portable -database yhhblog -start 2018-07-27T2:31:57Z -end 2018-07-27T2:32:59Z /tmp/data/yhhblog_per
2018/07/27 10:42:14 backing up metastore to /tmp/data/yhhblog_per/meta.00
2018/07/27 10:42:14 backing up db=yhhblog
2018/07/27 10:42:14 backing up db=yhhblog rp=autogen shard=10 to /tmp/data/yhhblog_per/yhhblog.autogen.00010.00 with boundaries start=2018-07-27T02:31:57Z, end=2018-07-27T02:32:59Z
2018/07/27 10:42:14 backup complete:
2018/07/27 10:42:14 /tmp/data/yhhblog_per/20180727T024214Z.meta
2018/07/27 10:42:14 /tmp/data/yhhblog_per/20180727T024214Z.s10.tar.gz
2018/07/27 10:42:14 /tmp/data/yhhblog_per/20180727T024214Z.manifest
II. 恢復
命令如下
influxd restore
[ -db <db_name> ] --> 待恢復的數據庫(備份中的數據庫名)
-portable | -online
[ -host <host:port> ] --> influxdb 的服務器
[ -newdb <newdb_name> ] --> 恢復到influxdb中的數據庫名
[ -rp <rp_name> ] --> 備份中的保留策略
[ -newrp <newrp_name> ] --> 恢復的保留策略
[ -shard <shard_ID> ]
<path-to-backup-files>
1. 恢復到不存在的database
下面演示下將前面的導出的備份,恢復到一個新的數據庫 yhhblog_bk上,執行命令如下
influxd restore -portable -db yhhblog -newdb yhhblog_bk yhhblog_per
2. 恢復到存在的DB
看官網恢復的文檔中,如果想將備份恢復到一個已經存在的database中時,並不是上面那么簡單的就可以了,這里采用的一個策略是先備份到一個臨時的db中;然后將臨時DB中的數據寫入已存在的db中
具體的演示步驟如下 (注意本小結的執行可以直接依賴前面恢復的備份數據庫中)
將備份恢復到已經存在的數據庫 yhhblogNew 中
# 首先是將備份恢復到一個不存在的數據庫 yhhblog_bk 中
influxd restore -portable -db yhhblog -newdb yhhblog_bk yhhblog_per
進入 influx 控制台,執行拷貝和刪除臨時數據庫
# 准備 yhhblogNew 數據庫
> create database yhhblogNew
# 將臨時數據庫中的數據導入已存在的數據庫中
> use yhhblog_bk
> SELECT * INTO yhhblogNew..:MEASUREMENT FROM /.*/ GROUP BY *
> drop yhhblog_bk
3. 保留策略已存在時,恢復
influxd restore -portable -db yhhblog -newdb yhhblog_tmp -rp autogen -newrp autogen_tmp yhhblog
進入influx控制台,執行拷貝
> user yhhblog_tmp
> SELECT * INTO yhhblogNew.autogen.:MEASUREMENT FROM /yhhblog_tmp.autogen_tmp.*/ GROUP BY *
> drop database yhhblog_tmp
---------------------
作者:周子青
來源:CSDN
原文:https://blog.csdn.net/qq_37674858/article/details/85759126
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
新版本恢復元數據不可用: 下方
轉載:https://www.linuxdaxue.com/influxdb-backup-and-restore.html
InfluxDB提供了數據的備份和恢復方法,在實際工作中,可以通過這些方法來實現數據的高可用。
本文就為大家介紹下InfluxDB的本地數據備份恢復和遠程備份恢復。
更多InfluxDB技術請加入《InfluxDB技術交流群:580487672(點擊加入)》
本地備份
1、備份元數據
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
2、備份數據庫
可以通過 -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
