influxdb基础(五)——数据的备份与恢复(influxd backup/influxd restore)

举报
徐同学呀 发表于 2022/02/22 22:59:58 2022/02/22
【摘要】 文章目录 一、前言二、备份和恢复元数据1、备份元数据2、恢复元数据 三、备份和恢复DB数据1、备份DB数据2、恢复DB数据 四、总结 一、前言 influxdb中有两种数据可以备份...

一、前言

influxdb中有两种数据可以备份,一种是元数据meta,一种是db数据。meta元数据的备份是整个备份,不能拆分,而db数据的备份,可完整备份,也可为某个数据库或某个数据库的保留策略甚至为某个shard的数据备份,也可增量备份即备份一段时间范围内的数据。

二、备份和恢复元数据

元数据包含系统状态的内部信息,包括用户信息、数据库/分片元数据、CQs、RPs和订阅等。其只能一整个备份,不能拆分,恢复时也是一整个恢复,实际生产中需要注意恢复备份元数据会覆盖旧元数据,谨慎操作。

1、备份元数据

基本语法:

influxd backup <path-to-backup>

  
 
  • 1

备份元数据,没有任何其他参数,备份将只转移当前状态的系统元数据到path-to-backuppath-to-backup为备份保存的目录,不存在会自动创建。

示例:

#将元数据备份到  ~/tmp/influx_backup_meta/ 
influxd backup  ~/tmp/influx_backup_meta/

  
 
  • 1
  • 2

backup

2、恢复元数据

基本语法:

influxd restore -metadir <path-to-meta-or-data-directory> <path-to-backup>

  
 
  • 1

示例:

为了展示备份和恢复元数据的效果,当备份元数据成功后,从/var/lib/influxdb/ 目录下删除meta目录,即rm -rf /var/lib/influxdb/meta,然后重启influxdbservice influxdb restart。此时再数据influx连接客户端,验证用户名密码,查看databases时报了没有权限:
在这里插入图片描述

说明元数据删除了,接下来恢复之前备份的元数据:

# 转移tmp/influx_backup_meta下的备份数据到元数据原来的目录
#`-metadir`  原来元数据的路径
influxd restore -metadir /var/lib/influxdb/meta/ tmp/influx_backup_meta

  
 
  • 1
  • 2
  • 3

重启influxdb,再次连接influx客户端,发现可以验证权限,并查看databsesmeasurements等元数据。

三、备份和恢复DB数据

备份DB数据是包含元数据的。

1、备份DB数据

基本语法:

通过influxd backup -h查看backup有哪些可选参数。
在这里插入图片描述

Usage: influxd backup [options] PATH
    -portable   # 在线备份,必选
    -host <host:port> # 需要备份的influxdb服务机器地址,可选,Defaults to 127.0.0.1:8088.
    -db <name> # 需要备份的db名称,可选,若没有指定,将备份所有数据库
    -rp <name> # 备份某个保留策略的数据,未指定,则备份所有rp的数据。
    -shard <id> # 需要备份的shard id,可选,若指定了备份shard,必须先选择rp
    -start # 需要备份的数据的起始时间,timestamp (RFC3339 format). 不能和-since一起使用
    -end # 需要备份的数据的结束时间,timestamp (RFC3339 format). 不能和-since一起使用
    -since # 备份这个timestamp之后的数据,建议用-start <timestamp>代替
    -skip-errors # 可选,当备份shards时,跳过备份失败的shard,继续备份其他shard。

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

此时influxdb中有数据库monitor
在这里插入图片描述

示例1:

备份monitor库的所有数据。

influxd backup -portable  -db monitor  ~/tmp/influx_backup/

  
 
  • 1

在这里插入图片描述
可以看到命令执行的过程中备份了元数据,两个shard为28、29的数据,34和35 没有数据不备份。

示例2:

备份monitor库昨天的数据。

需要注意填写的时间需要是RFC3339格式。

influxd backup -portable  -db monitor  -start 2020-11-01T13:24:52.085243953Z  -end 2020-11-02T13:24:52.085243953Z  ~/tmp/influx_backup_yesterday/

  
 
  • 1

在这里插入图片描述

示例3:

只备份monitorshard=28的数据。

influxd backup -portable  -db monitor  -rp rp_3_days -shard 28 ~/tmp/influx_backup_28/

  
 
  • 1

在这里插入图片描述

2、恢复DB数据

influxd restore -h查看restore可选参数:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1cDAdrej-1604415145939)(C:\Users\stefan\AppData\Roaming\Typora\typora-user-images\image-20201102235253418.png)]

Usage: influxd restore -portable [options] PATH
Options:
    -portable #
    -host  <host:port>
    -db    <name> # 从备份数据的哪个库恢复数据Name of database to be restored from the backup
    -newdb <name>
            # 数据恢复到新库名称,若没有指定,选择-db <name>的名称。newdb必须不存在,恢复时会自动创建
    -rp    <name> # 从备份数据的哪个rp恢复数据,指定了-rp,必须指定-db
    -newrp <name> #恢复数据新的rp名称,newrp必须存在。指定了-rp,未指定-newrp则使用-rp
    -shard <id> # 需要恢复的shard,如果指定了'-db <db_name>' and '-rp <rp_name>',必须-shard<id>
    PATH #备份数据文件list


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

示例1:

恢复~/tmp/influx_backup/monitor库数据到新库new_monitor

influxd restore -portable  -db monitor -newdb new_monitor  ~/tmp/influx_backup/

  
 
  • 1

在这里插入图片描述

示例2:

恢复~/tmp/influx_backup/monitor库,rprp_3_days数据到新库new_monitor1

 influxd restore -portable  -db monitor -rp rp_3_days -newdb new_monitor1  ~/tmp/influx_backup/

  
 
  • 1

在这里插入图片描述

示例3:

恢复~/tmp/influx_backup/monitor库,rprp_30_daysshard为29的数据到新库new_monitor1,并重命名rp的名称为rp_30days

 influxd restore -portable  -db monitor -rp rp_30_days -shard 29  -newdb new_monitor2   -newrp rp_04_days ~/tmp/influx_backup/

  
 
  • 1

经测试,恢复数据不能指定新的rp,不能恢复到已经存在的数据库。如真有这样的需求,可以先将数据恢复到一个临时不存在的库,然后通过insert into将数据迁移到已经存在的库,最后删除临时库。

四、总结

  1. influxdb中可备份的数据有两种,一种是元数据meta,一种是db数据。
  2. 记不住参数可通过influxd backup -hinfluxd restore -h查看参数。
  3. 恢复数据不能修改旧数据的保留策略。
  4. 恢复数据只能恢复到不存在的库,无法恢复到已经存在的库。

PS: 如若文章中有错误理解,欢迎批评指正,同时非常期待你的评论、点赞和收藏。我是徐同学,愿与你共同进步!

参考:

官方文档:https://docs.influxdata.com/influxdb/v1.4/administration/backup_and_restore/

文章来源: blog.csdn.net,作者:徐同学呀,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_36586120/article/details/109481345

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。