InfluxDB 开源备份和恢复的新功能
作者:Adam Anthony / 产品, 用例, 开发者, 公司
2018 年 3 月 15 日
导航至
1.5 版本的新功能,开源备份实用程序提供了在实时数据库上运行备份和恢复功能的选项。它还提供了备份和恢复单个或多个数据库的功能,以及基于数据点时间戳的可选过滤。最后,恢复工具支持从 InfluxDB Enterprise 集群导入数据,而备份工具现在可以生成可导入到 Enterprise 数据库中的备份文件。 InfluxDB 1.4 及更早版本中提供的离线备份/恢复功能在 1.5 版本中保持不变,并在开源文档中详细说明。
关于文件格式
在 1.5 版本之前,开源备份工具创建的备份文件格式与 InfluxDB 的 Enterprise 版本不同。 此旧格式仍然完全受支持,在某些情况下甚至可以用作新的在线恢复功能的输入。 对于新用户,我们建议使用新的便携式备份格式,该格式占用更少的磁盘空间,并且还为 Enterprise 和开源版本的 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 Enterprise 使用的格式生成备份文件。
示例:
备份现有系统中的所有数据库
[/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
标志激活。 这些标志指示输入是新的便携式备份格式(与 Enterprise 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