复制备份

Spanner 备份和恢复可让您将 Spanner 数据库的备份从一个实例复制到另一个区域或项目中的另一个实例,以提供额外的数据保护和合规性功能。复制的备份具有与原始备份相同的主要功能。此外,您可以在复制的备份所在的实例中恢复复制的备份,以支持跨区域和跨项目的备份和恢复用例。

您可以通过以下方式复制备份:

如需简要了解备份和恢复,请参阅备份和恢复简介

常见的跨区域使用场景

以下是复制备份的一些常见跨区域使用场景包括:

  • 在其他区域中维护一个备份,以满足合规性和监管要求。

    例如,您可以将数据库的备份复制到与生产数据相距最小的区域内的实例,以满足合规性要求。

  • 请在单独的区域中维护备份,以便实现灾难恢复和确保业务连续性。

    例如,您可以使用非零恢复时间目标 (RTO) 和恢复点目标 (RPO) 将备份数据库复制到目标实例,以进行灾难恢复。然后,在需要时,您可以使用目标实例中复制的备份恢复数据库。(如果您的应用具有零 RTO 和零 RPO 要求,我们建议您针对灾难恢复计划使用 Spanner 多区域配置。)

常见的跨项目用例

以下是复制备份的一些常见跨项目用例包括:

  • 在单独的项目中维护备份副本,以满足运营、安全性或合规性要求。
  • 在开发项目、测试项目和生产项目之间复制和移动数据。

    例如,如果要将数据从生产项目移动到测试项目,您可以创建生产数据的备份,然后将备份复制到测试项目。复制操作完成后,您可以将复制的备份恢复到测试项目中的实例。

  • 将数据库从一个项目移动到另一个项目(请注意,迁移过程中可能会发生一些停机)。

复制备份功能的运作方式

您可以将备份复制到其他区域或项目中的目标实例,只需指定源备份、目标备份和到期日期(最长为从源备份创建一年后算起)。这意味着,expiration_date 的值必须至少为从处理当前复制请求之时算起的 6 小时,并且在来源备份 create_time 之后的 366 天内。

在副本备份请求开始时,Spanner 会创建备份资源和长时间运行的备份操作,以帮助跟踪备份进度。该备份会复制到目标实例中的每个读写可用区和只读可用区。如果某个可用区暂时不可用,那么直到该可用区恢复在线状态后,备份复制才会完成。您无法在复制过程中删除目标实例。如需跟踪复制备份操作的进度和完成状态,请按照显示备份进度中的步骤操作。复制完成后,如果您不再需要来源备份,则可以将其删除。复制完成后,您可以对复制的备份使用 GetBackupUpdateBackupDeleteBackup 等操作。

启动备份副本的前提条件

如果要将备份复制到其他区域或项目中的实例,您需要先设置和配置目标实例。目标实例是备份副本所在的实例。它可以小至 100 个处理单元,而且无需与源实例(源备份所在的实例)具有相同的实例配置。在恢复之前,请确保目标实例已根据每个节点的 4TB 存储空间限制预配了足够的节点或处理单元来支持数据库大小(例如,您需要至少 2 个节点才能恢复 8TB 的备份)。如需创建新的目标实例,请参阅创建和管理实例

其他注意事项

其他注意事项包括:

  • 当您将备份从源实例复制到目标实例时,复制的备份与其源备份是分开存在的。复制操作完成后,源实例中有一个备份,目标实例中有一个备份。如果您不再需要源实例中的备份,可以将其删除。
  • 当您将备份复制到区域实例时,备份数据会分别复制到目标实例中的三个读写地区。
  • 当您将备份复制到多区域实例时,备份数据将复制到实例中包含读写副本或只读副本的每个可用区。
  • 您可以同时复制多个备份。
  • 在复制过程中,您可以更新或删除目标备份。如果您删除目标备份,则正在进行的复制操作将因此取消。
  • 在进行复制操作时,您可以在源实例中恢复备份。
  • 您可以在复制操作完成之前将其取消。

在复制过程中不允许进行以下操作:

  • 复制操作正在进行中时,您无法删除源备份。
  • 当复制仍在进行中时,您无法对复制的目标备份启动新复制或恢复。完成复制后,可以再次复制或恢复。

加密

默认情况下,复制的备份使用相同的加密配置(Google 管理的加密或客户管理的 (CMEK))作为其来源备份加密。您可以在复制备份时指定不同的加密配置,以替换此行为。如果您希望在跨区域复制时使用 CMEK 加密复制的备份,请指定与目标区域对应的 KMS 密钥。

复制时间和效果

复制备份所需的时间取决于某些因素,例如来源备份的大小以及为复制的备份选择的目标区域。通常,大多数复制操作会在 1-4 小时内完成。某些复制可能需要更长时间,具体取决于备份大小和目标区域。复制备份不会对源实例或数据库产生任何性能影响。 您可以为不同区域中的实例创建多个源备份副本,而不会产生任何性能影响问题。

访问控制 (IAM)

如需复制备份,您必须拥有源备份的 spanner.backups.copy 权限以及目标实例的 spanner.backups.create 权限。spanner.backupAdminspanner.backupWriter 角色包含这些权限,因此如果您在源实例上具有 spanner.backupAdminspanner.backupWriter 角色,则可以对源备份调用复制备份请求。

价格

备份副本与原始备份会产生相同的存储费用。备份副本完成后,您需要支付目标实例上的备份存储空间的费用。如果您在位于不同区域的两个实例之间创建了副本,则需要支付数据传输费用

例如,如果您将数据库从源多区域实例配置 nam7 复制到目标多区域实例配置 nam-eur-asia3,则会产生以下费用:

  • 针对重叠的 us-central1 区域免费
  • 见证者 us-central2 区域免费
  • 洲际数据传输费用两次:每个新大陆(欧洲和亚洲)一次
  • 同一大洲内区域之间的数据传输会针对 us-east1 收取一次费用
  • 在欧洲,收取同一大洲区域之间的数据传输费用一次

Spanner 会优化复制过程,以最大限度地减少跨区域转移的次数。这有助于最大限度地降低数据传输费用,同时提供快速复制备份体验。

后续步骤