时间点恢复

概览

Cloud Spanner 时间点恢复 (PITR) 可防范意外删除或写入。例如,如果运维人员意外写入数据或应用发布损坏数据库,您可以使用 PITR 从过去某个时间点无缝恢复数据(最多 7 天)。如果您需要长期保留数据,可以使用备份与和恢复导入和导出功能。

PITR 要求您配置数据库的 version_retention_period,以保留所有数据和架构的版本(最少 1 小时,最多 7 天)。Cloud Spanner 存储微秒粒度的旧版数据,数据库维护着 earliest_version_time,后者表示过去可以恢复旧版数据的最早时间。

恢复数据的方法

您可以通过以下两种方式恢复数据:

  • 如需恢复数据库的一部分,请执行过时读取操作,指定查询条件在过去的时间戳,然后将结果写回到实时数据库。这通常用于对实时数据库执行手术操作。例如,如果您不小心删除了某一行或者错误地更新了一部分数据,您可以使用此方法恢复该数据。有关说明,请参阅恢复数据库的一部分

  • 恢复整个数据库,请备份导出指定过去时间戳的数据库,然后将其恢复或导入到新数据库。当您必须将整个数据库恢复到损坏发生之前的时间点,这通常用于在发生数据损坏问题后进行恢复。请注意,备份或导出数据库可能需要几小时,您无法恢复或导入到现有数据库。有关说明,请参阅恢复整个数据库

性能考虑因素

保留期限较长的数据库(特别是那些频繁重写数据的数据库)使用更多的系统资源。这可能会影响数据库性能,特别是在实例没有预配足够多的节点的情况下。如果您的数据库具有非常高的改写率(例如,如果数据库每天都会被多次覆盖),则可考虑逐步提高保留期限并监控系统。请注意以下事项:

  • 增大的存储空间用量。建议您设置存储空间提醒,确保未超出每个节点 2 TB 存储空间的限制。当您延长保留期限时,请注意,随着数据库累积旧版数据,存储空间用量将逐渐增大。这是因为在之前的保留期限内已过期的旧数据将不再过期。因此,例如,如果您将保留期限从 3 天增加到 7 天,则需要等待 4 天,等到数据库存储空间用量稳定下来。我们还提供用于估算存储空间增加的说明。

  • 增加的 CPU 使用率和延迟时间。Cloud Spanner 使用其他计算资源来压缩和维护旧版数据。监控实例和数据库,以确保延迟时间和 CPU 利用率保持在可接受的水平。

  • 增加的执行架构更新的时间。保留期限延长意味着架构版本必须保留更长时间,这可能会导致在等待服务器资源时架构更新为 throttled。请确保您遵循架构更新最佳做法,并且符合架构更新限制