RDB 持久化简介

本页面简要介绍了 Memorystore for Redis 集群上的 RDB (Redis 数据库) 持久性。

如需了解如何启用、停用和监控 RDB 持久性,请参阅管理持久性

如需了解有关 RDB 持久性的最佳实践,请参阅持久性最佳实践

RDB 持久性功能通过将数据快照保存到持久性存储空间来保护数据。您可以选择快照时间间隔(最短 1 小时,最长 24 小时)来确定这些快照的拍摄频率。如果发生节点故障,即使无法进行故障切换,系统也会恢复数据。

具有副本的节点优先从副本恢复数据。不过,如果主节点和副本同时发生故障,节点会从最近的快照中恢复。

RDB 持久性不会增加额外的实例结算费用。此功能非常适合可以接受恢复后少量数据过时的用例。由于 Memorystore 使用快照进行自动恢复,因此快照无法用于手动恢复。另请注意,系统只会保留最近一次成功创建的快照。

Memorystore for Redis Cluster 也支持 AOF 持久化,但您必须选择 AOF 或 RDB 持久化模式,因为这两种模式不能同时启用。 如需了解如何在两种持久性模式之间进行选择,请参阅持久性概览。 为了尽可能提高可用性,我们建议您除了启用持久性之外,还使用高可用性实例

快照安排

快照时间表由两项设置决定:快照开始时间和快照间隔。您可以设置的时间间隔为 1h6h12h24h。例如,如果您将开始时间设置为凌晨 4 点,并将间隔设置为 1 小时,则快照会在启用当天凌晨 4 点开始,然后每隔 1 小时继续运行。

系统会以世界协调时间 (UTC) 时区评估快照时间表,因此采用夏令时的本地时区会遇到时间表调整。例如,在美国的 DST 开始和结束时,如果您的时区遵循 DST 变更,则快照时间表作业的本地开始时间会向前或向后移动 1 小时。

暂停拍摄快照

您可能会遇到这样的情况:您希望在一段时间内暂时暂停拍摄 RDB 快照。这可能是为了确保在关键事件期间不会出现性能影响,也可能是为了暂时停用快照以排查性能问题。

如需暂停快照,您必须将开始时间设置为未来的时间。如果这样做,则最后一个快照会保留,并在恢复时使用。如需恢复快照,请调整快照时间表,以指定您希望下次截取快照的时间。如需详细了解如何调整快照时间表,请参阅调整 RDB 快照时间间隔

恢复行为

Memorystore for Redis Cluster 节点会作为主要恢复机制故障切换到副本,而不是从快照进行加载。不过,如果节点发生故障且无法从副本恢复,则节点会从快照恢复。

恢复时的数据一致性

启用后,RDB 持久性会尽最大努力确保按指定间隔进行备份。 快照可能会因多种原因而失败。如果快照在多个时间间隔内连续失败,则最后一个可用备份可以任意过时。

从快照恢复的最坏情况数据陈旧度是自上一个良好快照开始以来指定时间间隔以及将下一个快照保存到存储空间的时间的总和。对于恢复突发事件,请使用 rdb_save_ages 指标查看数据过时的时间范围。

恢复时间

如果某个节点发生故障,需要从快照中恢复数据,则该节点在恢复期间不可用。恢复时间取决于快照的大小。

快照故障

系统会立即重试任何失败的快照,并使用指数退避算法,将重试间隔时间从 5 秒延长到 300 秒。连续快照故障会增加恢复时的数据过时程度。

恢复故障

恢复故障的情况很少见,但可能会发生。如果发生恢复失败,节点会反复重试,直到成功恢复。

监控快照

监控快照并针对失败的快照设置提醒非常重要。如需了解有关 RDB 持久性的最佳实践,请参阅 RDB 持久性最佳实践。失败的快照可能表明过载的节点可能仍然难以从快照恢复。

如需查看可用于监控快照的指标列表,请参阅持久性指标

管理性能影响

您可以通过 Cloud Monitoring 查看 CPU 使用率和内存使用率等指标,监控快照对 Memorystore 实例的性能影响。