Cloud SQL 备份简介

本页面介绍了 Cloud SQL 实例备份的工作原理。

如需查看有关安排备份或创建按需备份的分步说明,请参阅创建和管理按需备份与自动备份

如需简要了解如何将备份将数据恢复到实例,请参阅实例恢复概览

备份的用途

备份可帮助您将丢失的数据恢复到 Cloud SQL 实例。 此外,如果某个实例出现问题,则可以通过使用备份覆盖该实例,将其恢复到先前状态。为包含必要数据的任何实例启用自动备份。备份可防止数据丢失或损坏。

备份费用

默认情况下,除了按需备份之外,Cloud SQL 还为每个实例保留七个自动备份。您可以配置要保留的自动备份数量(从 1 个到 365 个)。 与其他类型的实例相比,我们的备份存储费用更低。

您可以保留更多自动备份,但不能少于七个。

如果您停止或删除实例,Cloud SQL 不会获取实例备份。如果您删除实例,数据会保留 4 天。

如需了解详情,请参阅价格页面

备份与导出

备份由 Cloud SQL 根据保留政策进行管理,并与 Cloud SQL 实例分开存储。Cloud SQL 备份与导出的数据不同,后者会上传到 Cloud Storage,您可以在其中管理其生命周期。备份包含整个数据库。对于导出操作,您可以选择特定的内容。

备份和恢复操作不能用于将数据库升级到更高版本。您只能将备份恢复到具有相同数据库版本的实例。

如需升级到更高版本,您可以导出数据库,然后导入到新的 Cloud SQL 实例。

关于备份大小

Cloud SQL 备份是增量备份。这些备份仅包含自上次备份以来发生了更改的数据。最早备份的大小与数据库大小相似,但后续备份的大小取决于数据的更改速率。删除最早的备份后,下一个最早备份的大小将会增加,因此仍然存在完整备份。

备份类型

Cloud SQL 执行两种类型的备份:

按需备份

您可以随时创建备份。如果您要对数据库执行有风险的操作,或者您需要备份但不想等到备份时段再执行,则自动备份非常有用。您可以为任何实例创建按需备份,无论实例是否启用了自动备份。

按需备份不像自动备份那样自动删除。 此类备份会一直留存到您删除它们或其实例被删除为止。由于按需备份不会自动删除,因此可能会对您的结算费用产生长期影响。

自动备份

自动备份每天进行一次,备份时段不超过 4 小时。备份会在该时段内启动。尽量将备份安排在实例活动最少的时候。

在备份时段内,系统每天在实例运行时进行一次自动备份。实例停止后,系统会再执行一次自动备份,以保护实例停止前的所有更改。默认情况下,最多保留七个最新备份。如果实例停止超过 36 小时,则自动备份会停止。您可以配置要保留的自动备份数量,但不能少于默认值(七)。

备份的存储位置

备份位置包括:

默认备份位置

如果未指定存储位置,则备份将存储地理位置最靠近 Cloud SQL 实例位置的多区域中。例如,如果 Cloud SQL 实例位于 us-central1,则默认情况下,备份存储在 us 多区域中。但是,像 australia-southeast1 这样的默认位置不在多区域范围之内。最接近的多区域是 asia

自定义备份位置

Cloud SQL 可让您为备份数据选择自定义位置。如果您的组织需要遵守的数据驻留法规要求您将备份保留在特定地理边界内,那么这项功能就非常有用。如果您的组织有此类要求,它可能会使用资源位置限制组织政策。启用此政策后,如果您尝试使用的地理位置不符合此政策,您会在备份页面上看到提醒。如果您看到此提醒,则需要将备份位置更改为该政策允许的位置。

如需查看有效地区值的完整列表,请参阅实例位置。如需查看多地区值的完整列表,请参阅多地区位置

请参阅为备份设置自定义位置查看备份的位置

自动备份保留

自动备份保留可以设置为更多,但不能少于默认值(七)。

请参阅设置自动备份保留

能否导出备份?

不可以,您无法导出备份。只能导出实例数据。请参阅从 Cloud SQL 导出数据

关于特殊备份用户

Cloud SQL 会为每个实例创建一个特殊数据库用户 cloudsqladmin,并为其生成唯一的实例专用密码。Cloud SQL 会以 cloudsqladmin 用户身份登录来执行自动备份。

备份对实例操作的影响

写入和其他操作不受备份操作的影响。

备份速率限制

Cloud SQL 限制数据磁盘上的备份操作的速率。每个项目每个实例每 50 分钟最多执行五项备份操作。如果备份操作失败,则不计入此配额。如果达到限制,操作将失败并显示错误消息,指示何时可以重试。

我们来看看 Cloud SQL 如何对备份执行速率限制。

Cloud SQL 使用存储桶中的令牌来确定任一时段内可以执行多少次备份操作。每个实例都有一个存储桶。存储桶中最多有五个令牌可用于备份操作。每隔 10 分钟,系统就会向存储桶添加一个新令牌。如果存储桶已满,则令牌会溢出。

每次您发出备份操作时,系统都会从存储桶授予令牌。如果操作成功,则系统会从存储桶中移除令牌。如果失败,令牌会返回到存储桶。 下图展示了其工作原理:

令牌的工作原理

问题排查

问题 问题排查
您无法查看当前操作的状态。 Google Cloud Console 仅在操作完成后报告成功或失败,而不会显示警告或其他更新。

运行 gcloud sql operations list 命令以列出给定 Cloud SQL 实例的所有操作。

您想要了解发起按需备份操作的人员。 界面未显示开始操作的用户。

查看日志并按文本进行过滤以查找用户。您可能需要对私密信息使用审核日志。相关日志文件包括:

  • cloudsql.googleapis.com/sqlagent.out
  • cloudsql.googleapis.com/sqlserver.err
  • 如果启用了 Cloud Audit Logs,并且您具有查看这些日志的必要权限,那么 cloudaudit.googleapis.com/activity 也可以使用。
删除实例后,您无法执行备份。 Cloud SQL 实例完全清除的宽限期为四天,读取副本除外,后者会立即完全清除。在此期间,客户服务可以重新创建实例。如果重新创建实例,则其备份也会重新创建。清除实例后,将无法恢复数据。

如果您已完成导出操作,则可以创建新实例,然后执行导入操作以重新创建数据库。导出数据将写入 Cloud Storage,导入数据从此处进行读取。

自动备份停滞了数小时,无法取消。 备份可能需要很长时间,具体取决于数据库大小。

如果您确实需要取消该操作,可以要求客户服务对实例执行 force restart

如果 SQL 转储文件中引用的一个或多个用户不存在,恢复操作可能会失败。 在恢复 SQL 转储之前,拥有对象或获得了对转储数据库中的对象权限的所有数据库用户都必须存在于目标数据库中。否则,恢复操作将无法使用原始所有权或权限重新创建对象。

在恢复 SQL 转储之前,先创建数据库用户

您想要将自动备份的天数从 7 天增加到 30 天,或更长时间。 系统仅保留 7 个备份。由于保留备份的费用和空间占用,备份会定期进行清除。遗憾的是,这也意味着当前可见的备份是所有可以用于恢复的自动备份。

如需无限期地保留备份,您可以创建按需备份,因为它们的删除方式与自动备份不同。按需备份会无限期保留。也就是说,按需备份会一直保留,直到被删除或它们所属的实例被删除为止。由于该类型的备份不会自动删除,因此可能会影响结算。

自动备份失败,但您未收到电子邮件通知。 备份失败时不支持通知。

如果自动备份失败,Cloud SQL 实例的 Details 页面中将显示 Operation error 消息。

您可以通过 REST APIgcloud 命令查找备份的状态。例如,首先列出实例的备份,然后按 ID 描述特定备份:


gcloud sql backups list \
--project=PROJECT_ID \
--instance=INSTANCE_ID
   

gcloud sql backups describe BACKUP-ID \
--instance=INSTANCE_ID
    

后续步骤