InfluxDB Cloud数据持久性
InfluxDB Cloud 在云区域的存储层中跨两个可用区复制所有数据,自动创建备份,并验证复制的数据是一致的且可读的。
在此页面上
数据复制
InfluxDB Cloud 在写入层和存储层中复制数据。
- 写入层: 所有写入到InfluxDB的数据都通过一个持久化消息队列进行处理。消息队列根据序列键对每批点进行分区,然后在消息队列的其他物理节点上复制每个分区。
- 存储层级:底层存储层中的所有数据都在云区域的两个可用区之间进行了复制。
备份流程
InfluxDB Cloud 以以下方式备份所有数据:
写入时备份
所有针对 InfluxDB Cloud 的传入写入请求都被添加到一个持久化消息队列中。消息队列执行以下操作:
- 缓存每个写请求的 行协议。
- 将数据写入存储层。
- 定期将缓存的行协议持久化到对象存储作为带外备份。
消息队列备份提供了原始行协议,可以用于从存储层的灾难性故障或意外删除中恢复。消息队列的持久性为96小时,这意味着InfluxDB Cloud可以在没有任何数据丢失的情况下承受其底层存储层或对象存储服务长达96小时的故障。
为了减少由于在InfluxDB云服务中引入缺陷而导致的潜在数据丢失,我们最小化数据摄取和备份过程之间使用的代码。
压缩后的备份
InfluxDB 存储引擎随着时间的推移压缩数据,这一过程称为 compaction。 每次压缩周期完成时,InfluxDB Cloud 会将压缩后的 TSM 文件存储在对象存储中。
周期性TSM快照
为了提供多个数据恢复点,InfluxDB Cloud 每周对上传到对象存储的 TSM 文件进行快照。TSM 快照在创建时包括所有(未删除)数据的副本。这些快照将保留 100 天。
恢复
InfluxDB Cloud使用以下存储在对象存储中的带外备份来恢复数据:
- 消息队列备份: 在过去96小时内,来自入站写请求的线协议
- 压缩备份: TSM 文件
- TSM 快照: 对象存储中 TSM 文件的每周快照
恢复点目标 (RPO) 是任何被接受的写入。恢复时间目标 (RTO) 更难以明确预测,因为潜在的失败模式可能会有所不同。虽然大多数常见的失败模式可以在几分钟或几小时内解决,关键的失败模式可能会需要更长时间。例如,如果我们需要从 TSM 快照和消息队列备份中重建所有数据,可能需要 24 小时或更长时间。
数据验证
InfluxDB Cloud始终运行两个数据验证服务:
- 熵检测:确保复制的数据是一致的
- 数据验证: 验证写入InfluxDB的数据是可读取的
InfluxDB Cloud 状态
InfluxDB Cloud区域及其基础服务始终处于监控之中。有关InfluxDB Cloud当前状态的信息,请参见 InfluxDB Cloud状态页面.