InfluxDB开源备份和恢复的新功能
作者:Adam Anthony / 产品,用例,开发者,公司
2018年3月15日
导航到
版本1.5新增功能,开源备份工具现在可以在运行中的数据库上运行备份和恢复功能。它还提供了备份和恢复单个或多个数据库的功能,以及基于数据点时间戳的可选过滤功能。最后,恢复工具支持从InfluxDB企业版集群导入数据,而备份工具现在可以生成可导入到企业数据库的备份文件。InfluxDB版本1.4及更早版本中提供的离线备份/恢复功能在版本1.5中未作更改,并在开源文档中详细说明。
关于文件格式
在1.5版本之前,开源备份工具创建的备份文件格式与InfluxDB企业版的格式不同。这种遗留格式仍然完全受支持,在某些情况下甚至可以作为新在线恢复功能输入。对于新用户,我们建议使用新的便携式备份格式,它占用的磁盘空间更少,还提供了InfluxDB企业版和开源版之间数据传输的清晰路径。
备份
改进的备份命令与InfluxDB先前版本相似,不同之处在于它可以选择生成便携式格式的备份,并提供一些新的筛选选项来限制导出到备份的数据点的范围。它通过使用influxd
二进制文件的-portable
标志来调用。
influxd backup -portable [options] <path-to-backup>
备份选项
-host <host:port>
- 连接到并执行快照的主机。默认为127.0.0.1:8088
。-database <name>
- 要备份的数据库。可选。如果没有提供,则备份所有数据库。-retention <name>
- 要备份的保留策略。可选。-shard <id>
- 要备份的碎片ID。可选。如果指定了,则必须提供-retention
。-since <2015-12-24T08:12:13Z>
- 从给定时间开始进行文件级备份。时间需要是RFC3339格式。可选。-start <2015-12-24T08:12:23Z>
- 所有早于此时间戳的点都将从导出中排除。与-since
不兼容。-end <2015-12-24T08:12:23Z>
- 所有晚于此时间戳的点都将从导出中排除。与-since
不兼容。-portable
- 生成与InfluxDB企业版使用的格式相同的备份文件。
示例:
备份现有系统中的所有数据库
[/tmp/backup_ex]$ influxd backup -portable /tmp/backup_ex
2018/03/15 12:55:26 backing up metastore to /tmp/backup_ex/meta.00
2018/03/15 12:55:26 No database, retention policy or shard ID given. Full meta store backed up.
2018/03/15 12:55:26 Backing up all databases in portable format
2018/03/15 12:55:26 backing up db=
2018/03/15 12:55:26 backing up db=collectd_db rp=autogen shard=1 to /tmp/backup_ex/collectd_db.autogen.00001.00 since 0001-01-01T00:00:00Z
2018/03/15 12:55:26 backing up db=telegraf rp=autogen shard=2 to /tmp/backup_ex/telegraf.autogen.00002.00 since 0001-01-01T00:00:00Z
2018/03/15 12:55:26 backing up db=telegraf rp=autogen shard=3 to /tmp/backup_ex/telegraf.autogen.00003.00 since 0001-01-01T00:00:00Z
2018/03/15 12:55:26 backing up db=telegraf rp=autogen shard=4 to /tmp/backup_ex/telegraf.autogen.00004.00 since 0001-01-01T00:00:00Z
2018/03/15 12:55:26 backing up db=telegraf rp=autogen shard=5 to /tmp/backup_ex/telegraf.autogen.00005.00 since 0001-01-01T00:00:00Z
2018/03/15 12:55:26 backing up db=telegraf rp=autogen shard=6 to /tmp/backup_ex/telegraf.autogen.00006.00 since 0001-01-01T00:00:00Z
2018/03/15 12:55:26 backing up db=telegraf rp=autogen shard=7 to /tmp/backup_ex/telegraf.autogen.00007.00 since 0001-01-01T00:00:00Z
2018/03/15 12:55:26 backing up db=telegraf rp=autogen shard=8 to /tmp/backup_ex/telegraf.autogen.00008.00 since 0001-01-01T00:00:00Z
2018/03/15 12:55:26 backing up db=mydb rp=forever shard=9 to /tmp/backup_ex/mydb.forever.00009.00 since 0001-01-01T00:00:00Z
2018/03/15 12:55:26 backing up db=mydb rp=forever shard=10 to /tmp/backup_ex/mydb.forever.00010.00 since 0001-01-01T00:00:00Z
2018/03/15 12:55:26 backing up db=tmp3 rp=autogen shard=11 to /tmp/backup_ex/tmp3.autogen.00011.00 since 0001-01-01T00:00:00Z
2018/03/15 12:55:26 backing up db=tmp3 rp=autogen shard=12 to /tmp/backup_ex/tmp3.autogen.00012.00 since 0001-01-01T00:00:00Z
2018/03/15 12:55:26 backing up db=tmp3 rp=autogen shard=13 to /tmp/backup_ex/tmp3.autogen.00013.00 since 0001-01-01T00:00:00Z
2018/03/15 12:55:26 backing up db=tmp3 rp=autogen shard=14 to /tmp/backup_ex/tmp3.autogen.00014.00 since 0001-01-01T00:00:00Z
2018/03/15 12:55:26 backing up db=_internal rp=monitor shard=15 to /tmp/backup_ex/_internal.monitor.00015.00 since 0001-01-01T00:00:00Z
2018/03/15 12:55:26 backup complete:
2018/03/15 12:55:26 /tmp/backup_ex/20180315T165526Z.meta
2018/03/15 12:55:26 /tmp/backup_ex/20180315T165526Z.s1.tar.gz
2018/03/15 12:55:26 /tmp/backup_ex/20180315T165526Z.s2.tar.gz
2018/03/15 12:55:26 /tmp/backup_ex/20180315T165526Z.s3.tar.gz
2018/03/15 12:55:26 /tmp/backup_ex/20180315T165526Z.s4.tar.gz
2018/03/15 12:55:26 /tmp/backup_ex/20180315T165526Z.s5.tar.gz
2018/03/15 12:55:26 /tmp/backup_ex/20180315T165526Z.s6.tar.gz
2018/03/15 12:55:26 /tmp/backup_ex/20180315T165526Z.s7.tar.gz
2018/03/15 12:55:26 /tmp/backup_ex/20180315T165526Z.s8.tar.gz
2018/03/15 12:55:26 /tmp/backup_ex/20180315T165526Z.s9.tar.gz
2018/03/15 12:55:26 /tmp/backup_ex/20180315T165526Z.s10.tar.gz
2018/03/15 12:55:26 /tmp/backup_ex/20180315T165526Z.s11.tar.gz
2018/03/15 12:55:26 /tmp/backup_ex/20180315T165526Z.s12.tar.gz
2018/03/15 12:55:26 /tmp/backup_ex/20180315T165526Z.s13.tar.gz
2018/03/15 12:55:26 /tmp/backup_ex/20180315T165526Z.s14.tar.gz
2018/03/15 12:55:26 /tmp/backup_ex/20180315T165526Z.s15.tar.gz
2018/03/15 12:55:26 /tmp/backup_ex/20180315T165526Z.manifest
恢复
恢复功能在两个方面进行了改进。首先,恢复过程不再需要系统停机时间。其次,数据恢复不再擦除目标系统上当前的数据。简要的技术解释是,旧的恢复过程停用了系统,并用备份数据替换了数据文件夹,而新的在线过程通过由influxd
程序提供的流式API导入数据。
无论您是否有支持遗留格式的现有备份自动化,还是您是新用户,您可能希望测试新的在线功能以获取上述优点。它可以通过使用-portable
或-online
标志来激活。标志表示输入为新的便携式备份格式(与企业版InfluxDB使用的格式相同),或分别为遗留备份格式。它具有以下选项
-host <host:port>
- 连接到并执行快照的主机。默认为127.0.0.1:8088
。-db <name>
- 识别要恢复的备份中的数据库。-newdb <name>
- 在目标系统上导入归档数据的数据库的名称。如果没有提供,则使用-db
的值。新数据库名称必须对目标系统唯一。-rp <name>
- 识别要恢复的备份中的保留策略。需要设置-db
。-newrp <name>
- 在目标系统上创建的保留策略的名称。需要设置-rp
。如果没有提供,则使用-rp
的值。-shard <id>
- 可选。如果指定,则必须提供-db
和-rp
。将恢复单个分片的数据。
示例
将上述备份恢复到新的、空的 InfluxDB 实例中(注意:默认情况下会跳过 _internal 数据库。虽然这样做并不常见,但可以使用上述描述的 -db 参数显式导入)
[/tmp/backup_ex]$ influxd restore -portable /tmp/backup_ex
2018/03/15 13:01:45 Restoring shard 13 live from backup 20180315T165526Z.s13.tar.gz
2018/03/15 13:01:45 Restoring shard 14 live from backup 20180315T165526Z.s14.tar.gz
2018/03/15 13:01:45 Restoring shard 5 live from backup 20180315T165526Z.s5.tar.gz
2018/03/15 13:01:45 Restoring shard 6 live from backup 20180315T165526Z.s6.tar.gz
2018/03/15 13:01:45 Restoring shard 11 live from backup 20180315T165526Z.s11.tar.gz
2018/03/15 13:01:45 Restoring shard 3 live from backup 20180315T165526Z.s3.tar.gz
2018/03/15 13:01:45 Restoring shard 10 live from backup 20180315T165526Z.s10.tar.gz
2018/03/15 13:01:45 Restoring shard 12 live from backup 20180315T165526Z.s12.tar.gz
2018/03/15 13:01:45 Meta info not found for shard 15 on database _internal. Skipping shard file 20180315T165526Z.s15.tar.gz
2018/03/15 13:01:45 Restoring shard 7 live from backup 20180315T165526Z.s7.tar.gz
2018/03/15 13:01:45 Restoring shard 8 live from backup 20180315T165526Z.s8.tar.gz
2018/03/15 13:01:46 Restoring shard 9 live from backup 20180315T165526Z.s9.tar.gz
2018/03/15 13:01:46 Restoring shard 1 live from backup 20180315T165526Z.s1.tar.gz
2018/03/15 13:01:46 Restoring shard 2 live from backup 20180315T165526Z.s2.tar.gz
2018/03/15 13:01:46 Restoring shard 4 live from backup 20180315T165526Z.s4.tar.gz