本文档介绍了灾难恢复工具和技术,可帮助您保护数据免遭丢失和停机。
Spanner 灾难恢复功能
Spanner 旨在具备可伸缩性和全球分布式特点。 Spanner 提供以下功能来帮助确保 数据可用性:
多区域配置:Spanner 可以在单个区域或多个区域内的不同可用区中维护数据的副本,以确保即使某个可用区或区域发生故障,数据也能保持可用。
数据库删除保护:您可以防止具有必要 Identity and Access Management (IAM) 权限来删除数据库的用户或服务账号意外删除现有数据库。
数据库备份和恢复: 您可以创建 Spanner 数据库并恢复它们,以帮助保护 以防范运营商和应用错误 所有备份都具备高可用性、加密状态, 自创建之日起最长保留一年时间。 您可以按需创建完整备份,也可以使用备份时间表创建完整备份。您只能使用备份时间表创建增量备份。
导出和导入:您可以 将 Spanner 数据库导出到 采用 CSV 或 Avro 格式的 Cloud Storage。
时间点恢复 (PITR): Spanner 时间点 恢复 (PITR) 可保护 逻辑数据损坏,以及意外删除或写入数据库。例如: 如果操作员无意中写入了数据,或者应用启动后损坏了 数据库中的数据,您可以恢复数据中 过去(最多 7 天)。
跨区域复制: 您可以将备份复制到其他地理位置 保护您的数据免受区域级故障的影响,或满足 来满足组织的合规要求
选择备份或导出数据库
在决定使用哪种方法之前,请先比较数据库备份与数据库导出。例如,备份的最长保留期限为 1 年。如果您希望将保留期限延长到一年以上,可以考虑导出数据库。下表介绍了 备份和恢复与导入和导出:
备份和恢复 | 导入和导出 | |
---|---|---|
数据一致性 | 备份和导出的数据库具有事务一致性和外部一致性。 | |
性能影响 | 备份对实例性能没有影响。Spanner 使用不会占用实例的服务器资源的专用作业来执行备份。 | 导出操作作为中优先级任务运行,以最大限度地减少对数据库性能的影响。如需了解详情,请参阅任务优先级。 |
存储格式 | 使用专为快速恢复设计的专有加密格式。 | 支持 CSV 和 Avro 文件格式。 |
可移植性 | 您可以在与源数据库位于同一实例中创建备份。 创建备份后,如果您需要跨区域或跨项目备份,可以将备份复制到其他区域或项目中的实例。然后,您可以将备份恢复为新数据库,并恢复到同一项目中的任何实例。要恢复到的实例应具有与存储备份的实例相同的实例配置。 |
导出的数据库位于 Cloud Storage,并且数据可以迁移到支持 CSV 或 Avro 的任何系统。 |
保留 | 备份最长可保留一年。 | 导出的数据库存储在 Cloud Storage 中,默认情况下,这些数据库会保留在此处,直到删除为止。您可以自定义生命周期和保留政策。 |
价格 | 备份费用根据每单位时间使用的存储空间向 Spanner 项目收取。如需了解详情,请参阅价格部分。 | 由于使用 Cloud Storage 和 Dataflow,导入和导出结算更加复杂。如需了解详情,请参阅数据库导出和导入价格。 |
恢复时间 | 恢复操作分为两种:恢复和优化。恢复操作提供快速首字节时间,因为数据库直接装载备份而不复制数据。恢复操作完成后,数据库便可以使用,但在优化过程中,读取延迟可能会略高。如需了解详情,请参阅恢复的工作原理。 | 导入速度较慢。您需要等待所有数据写入数据库。 |
灾难恢复技术
Spanner 提供了灾难恢复技术, 以应对以下灾难:
- 可用区级故障:Spanner 区域性配置可自动防范可用区级故障,确保如果某个区域内的可用区发生故障,您的应用仍可正常运行。
- 区域故障:如果您的应用需要更高的数据可用性并防范区域故障,请使用可提供 99.999% 可用性的多区域配置。
- 重大地理灾难:使用 Spanner 跨区域备份副本 备份在不同区域可用
- 逻辑损坏:使用以下灾难恢复
不同保留期限的技巧:
- 设置时间点恢复 (PITR),以便在过去 7 天内的任意时间点恢复数据。
- 设置备份时间表,以便按符合您要求的频率创建完整备份或增量备份。所有备份最长可保留一年。
- 将数据库导出到 Cloud Storage,以便保留数据以满足合规性要求、进行分析或生成报告。
- 意外删除数据库:使用数据库删除保护功能,可防止具有必要 IAM 权限的用户或服务账号意外删除现有数据库。
优化灾难恢复策略的费用
您可以通过以下方式优化 Spanner 灾难恢复费用:
- 多区域配置:仅对需要 99.999% 可用性的应用使用多区域配置。对于需要只读延迟时间的应用,请考虑在其他区域部署只读副本。
- 备份频率:仅根据需要安排备份频率,以满足您的要求。
- 备份类型:使用增量备份时间表可节省存储费用。
- 备份保留期限:确定并设置备份保留期限,使其尽可能短,以满足您的恢复和合规性需求。
- 导出大量数据:对于导出大量数据,请考虑使用 Spanner Data Boost 从实例中分流计算资源,以免对事务性能产生负面影响。
测试灾难恢复策略
请考虑测试和验证灾难恢复计划的以下组成部分:
- 模拟以下事件最有可能导致数据丢失的事件: 。
- 练习从创建的备份恢复数据库。有关恢复您的 请参阅恢复概览。
- 评估灾难恢复计划对存储空间利用率的影响。
- 评估备份流程对应用性能的影响。
- 模拟可用区级或区域级故障,以测试故障切换和 恢复过程。