closed
logo logo
关于我们

技术分享

技术分享 influxdb 数据保留与备份恢复

influxdb 数据保留与备份恢复

2018-01-07

一、    influxdb数据保留策略

influxdb作为时序数据库,主要用于和grafana以及telegraf结合部署监控系统;在监控项比较多的时候,数据保存多久就成了运维人员需要思考的问题,influxdb的数据保留策略(RP)就是用来定义数据在库中保留时间的。

1.1、    硬盘空间足够大,数据一直保留

influxdb默认的数据保留策略

influxdb 数据保留与备份恢复

name:autogen (策略名)
duration:0s(0为一直保存,最小保存1小时)
shardGroupDuration:168h (大于168小时查询速度降低)
replicaN :1(在集群中存储每个点的独立副本的数量,其中1是数据节点的数量。)
default:是否是默认策略
influxdb默认的策略便是一直保存数据,大于1周的数据查询会变慢,但是在生产环境中会出现一个问题,就是influxdb库的每个表默认只能存储100000条数据,表满之后新的数据便无法入库(max-values-per-tag limit exceeded)

influxdb 数据保留与备份恢复

当表写满100000条时,如果我们想数据一直保留,需要修改influxdb配置文件中max-values-per-tag的参数为0,表示无限制

influxdb 数据保留与备份恢复

1.2、    硬盘空间有限,保留一段时间内的数据

设置新的数据保留策略或修改默认的策略

二、    influxdb数据保留策略的使用

每一个数据库都可以设置单独的数据保留策略,策略可以有多个,dafault为true的策略为默认生效策略,新建或修改策略的生效时间一般为半个小时,因为influxdb会每半个小时检查一遍数据保留策略

2.1、创建新的数据保留策略

use run_status
CREATE RETENTION POLICY "oneday" ON "run_status" DURATION 24h REPLICATION 1 DEFAULT

Ps:Name为oneday,库名为run_status,保留时间为24小时,设置为默认策略
Note:POLICY需大写

2.2、查看策略

show retention policies on run_status

Ps:run_status为数据库名

2.3、删除策略

drop retention POLICY "oneday" ON "run_status"

2.4、修改策略

ALTER RETENTION POLICY "autogen" ON "run_status" DURATION 168h DEFAULT

Note:duration(数据保留时间)需大于等于shardGroupDuration时间,不然会报以下错误

influxdb 数据保留与备份恢复

三、数据备份

从1.5版本后,influxdb提供备份:

         在在线(实时)数据库上运行备份和还原功能的选项。
         单个或多个数据库的备份和还原功能,以及可选的时间戳过滤。
         可以从InfluxDB Enterprise群集导入数据
             可以导入InfluxDB Enterprise数据库的备份文件。

3.1、为备份和还原服务启用端口

在配置文件的root 级别,启用远程节点上的bind-address配置

influxdb 数据保留与备份恢复

默认配置为127.0.0.1:8088,可根据实际情况修改

官网示例
influxd backup -portable -database mydatabase -host <remote-node-IP>:8088 /tmp/mysnapshot

3.2、backup命令参数

格式:

influxd backup -portable [ arguments ] <path-to-backup>

参数:

    [ -database <db_name> ] :指明要备份的数据库,如果未指定,则备份所有数据库。
    [ -portable ] :以较新的InfluxDB Enterprise兼容格式生成备份文件。
note:如果未指定-portable,则使用默认的旧备份实用程序 - 仅备份主机Metastore,除非指定了-database。

    [ -host <host:port> ] :指明主机与端口,默认值为“127.0.0.1:8088”。 远程连接所必需的。 示例:-host 127.0.0.1:8088

    [-retention <rp_name>]:备份的保留策略。 如果未指定,则默认使用所有保留策略。 如果指定,则需要-database。
    [-shard <ID>]:要备份的分片ID。 如果指定,则需要-retention <name>。
    [-start <timestamp>]:包括以指定时间戳(RFC3339格式)开头的所有点。 与-since不兼容。 示例:-start 2015-12-24T08:12:23Z
    [-end <timestamp>]]:排除指定时间戳(RFC3339格式)后的所有结果。 与-since不兼容。 如果在没有-start的情况下使用,则将从1970-01-01开始备份所有数据。 示例:-end 2015-12-31T08:12:23Z
    [-since <timestamp>]:在指定的时间戳RFC3339格式之后执行增量备份。 除非传统备份支持需要,否则请使用-start。

3.3、全量数据库本机备份

influxd backup -portable /home/influxdb_backup

influxdb 数据保留与备份恢复

四、数据还原

通过将restore命令与-portable参数(表示新的Enterprise兼容备份格式)或-online标志(表示旧备份格式)一起启动联机还原过程

格式

influxd restore [ -db <db_name> ]
    -portable | -online
    [ -host <host:port> ]
    [ -newdb <newdb_name> ]
    [ -rp <rp_name> ]
    [ -newrp <newrp_name> ]
    [ -shard <shard_ID> ]
    <path-to-backup-files>    <path-to-backup-files>

参数

 -portable:为InfluxDB OSS使用新的与Enterprise兼容的备份格式。建议使用而不是-online。在InfluxDB Enterprise上创建的备份可以恢复到InfluxDB OSS实例。

    -online:使用旧版备份格式。仅在不能使用较新的便携式选项时使用。

    [-host <host:port>]:InfluxDB OSS实例的主机和端口。默认值为“127.0.0.1:8088”。远程连接所必需的。示例:-host 127.0.0.1:8088

    [-db <db_name> | -database <db_name>]:要从备份还原的数据库的名称。如果未指定,则将还原所有数据库。

    [-newdb <newdb_name>]:将在目标系统上导入存档数据的数据库的名称。如果未指定,则使用-db的值。新数据库名称必须对目标系统是唯一的。

    [-rp <rp_name>]:要还原的备份中的保留策略的名称。需要设置-db。如果未指定,将使用所有保留策略。

    [-newrp <newrp_name>]:要在目标系统上创建的保留策略的名称。需要设置-rp。如果未指定,则使用-rp值。

    [-shard <shard_ID>]:要还原的分片ID。如果指定,则需要-db和-rp![](https://s1.51cto.com/images/blog/201906/11/400909a34a1c65241b4f0171a65f5e16.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

全量数据库本机还原

influxd restore -portable /home/influxdb_backup


云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 容灾备份

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载

请添加好友为您提供支持
jia7jia_7

请拨打电话
为您提供支持

400-9955-698