InfluxDB开源备份和恢复的新功能

导航到

版本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