创建和管理按需备份和自动备份

本页面介绍如何安排和停用自动备份、创建和管理按需备份,以及查看 Cloud SQL 实例的备份。

如需详细了解备份的工作原理,请参阅备份概览

创建按需备份

如需创建按需备份,请按如下所述操作:

控制台

  1. 转到 Google Cloud Console 中的“Cloud SQL 实例”页面。

    转到“Cloud SQL 实例”页面

  2. 点击实例打开其概览页面。
  3. 选择备份标签页。
  4. 点击创建备份
  5. 创建备份页面上,根据需要添加说明,然后点击创建

gcloud

创建备份:

gcloud sql backups create --async --instance [INSTANCE_NAME]

您可以使用 --description 参数提供备份的说明。

REST

在使用下面的请求数据之前,请先进行以下替换:

  • project-id:项目 ID
  • instance-id:实例 ID

HTTP 方法和网址:

POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns

如需发送您的请求,请展开以下选项之一:

您应会收到如下所示的 JSON 响应:

安排自动备份

如需为实例安排自动备份,请按如下所述操作:

控制台

  1. 转到 Google Cloud Console 中的“Cloud SQL 实例”页面。

    转到“Cloud SQL 实例”页面

  2. 点击实例打开其概览页面。
  3. 选择备份标签页。
  4. 点击管理自动备份
  5. 选择备份时间。
  6. 点击保存

gcloud

  1. 修改实例以指定备份开始时间:
    gcloud sql instances patch [INSTANCE_NAME] --backup-start-time [HH:MM]
    “backup-start-time”参数采用 UTC±00 时区的 24 小时制时间,用于指定一个 4 小时的备份时段开始时间, 备份可在该时段内随时启动。
  2. 确认所做的更改:
    gcloud sql instances describe [INSTANCE_NAME]
    backupConfiguration 下,您应会看到 enabled: true 和您指定的时间。

REST

在使用下面的请求数据之前,请先进行以下替换:

  • project-id:项目 ID
  • instance-id:实例 ID
  • start-time:采用“HH:MM”格式表示的时间

HTTP 方法和网址:

PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

请求 JSON 正文:

{
  "settings":
  {
    "backupConfiguration":
    {
      "startTime": "start-time",
      "enabled": true,
      "pointInTimeEnabled": true
    }
  }
}

如需发送您的请求,请展开以下选项之一:

您应会收到如下所示的 JSON 响应:

您可以同时启用二进制日志记录功能,方法是将 backupConfiguration 对象中的 pointInTimeEnabled 设置为 true

为备份设置自定义位置

只有在法规要求时,您才应该使用自定义备份位置。如果不要求,请使用默认的多区域备份位置。

您需要启用自动备份。

您可以将自定义位置用于按需备份和自动备份。如需查看有效位置值的完整列表,请参阅实例位置

如需使用自定义位置更新实例,请执行以下操作:

控制台

  1. 转到 Google Cloud Console 中的“Cloud SQL 实例”页面。

    转到“Cloud SQL 实例”页面

  2. 点击实例打开其概览页面。
  3. 配置图块中,点击修改配置
  4. 配置选项下,打开备份、恢复和高可用性
  5. 打开位置选项
  6. 点击多区域(默认)单区域
  7. 位置下拉菜单中选择相应位置。
  8. 点击保存

gcloud

如需了解参考信息,请参阅 gcloud sql instances patch

gcloud sql instances patch [INSTANCE_NAME] --backup-location=[BACKUP_LOCATION]
  
 

REST 按需

对于按需备份,请使用 backupRuns location 参数。

在使用下面的请求数据之前,请先进行以下替换:

  • region:项目区域
  • path:备份位置
  • project-id:项目 ID
  • instance-id:实例 ID

HTTP 方法和网址:

POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns

请求 JSON 正文:

{
  "location": "path",
}

如需发送您的请求,请展开以下选项之一:

您应会收到如下所示的 JSON 响应:

 

REST 自动

对于自动备份,请使用实例的 settings.backupConfiguration.location 参数。

在使用下面的请求数据之前,请先进行以下替换:

  • region:项目区域
  • backup-region:备份区域
  • project-id:项目 ID
  • instance-id:实例 ID

HTTP 方法和网址:

PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

请求 JSON 正文:

{
  "region": "region"
  "settings":
  {
    "backupConfiguration":
    {
      "location": "backup-region",
      "enabled": true,
    }
  }
}

如需发送您的请求,请展开以下选项之一:

您应会收到如下所示的 JSON 响应:

如需了解如何为此任务构建底层 REST API 请求,请参阅 instances:patch 页面上的 APIs Explorer

查看备份

Cloud Console 不会在备份历史记录中显示被跳过或失败的备份。如需查看被跳过的备份,请使用 gcloud 命令行工具或 API。

控制台

  1. 转到 Google Cloud Console 中的“Cloud SQL 实例”页面。

    转到“Cloud SQL 实例”页面

  2. 点击实例打开其概览页面。
  3. 选择备份标签页,查看最近的备份、备份创建时间和备份类型。

gcloud

  1. 列出实例的备份:
    gcloud sql backups list --instance [INSTANCE_NAME]
    

    您可以使用标准列表参数过滤和控制结果。 如需查看完整列表,请参阅 gcloud sql backups list 命令参考页面。

  2. 如需列出一个备份的详情,请使用 backups list 命令输出中的 ID
    gcloud sql backups describe [BACKUP_ID] --instance [INSTANCE_NAME]
    

REST

您还可以使用 BackupRuns:list 页面上的 APIs Explorer 发送 REST API 请求。

在使用下面的请求数据之前,请先进行以下替换:

  • project-id:项目 ID
  • instance-id:实例 ID

HTTP 方法和网址:

GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns

如需发送您的请求,请展开以下选项之一:

您应会收到如下所示的 JSON 响应:

查看备份位置

如需查看实例备份的位置,请使用 backupRuns

控制台

  1. 转到 Google Cloud Console 中的“Cloud SQL 实例”页面。

    转到“Cloud SQL 实例”页面

  2. 点击实例打开其概览页面。
  3. 点击备份标签页。
  4. 在备份列表中,位置列列出了位置类型(多区域或单区域)以及每个备份所在的具体多区域或单区域。

gcloud

如需了解参考信息,请参阅 gcloud sql instances describe

  1. 列出实例的备份:
    gcloud sql backups list --instance [INSTANCE_NAME]
    

    您可以使用标准列表参数过滤和控制结果。 如需查看完整列表,请参阅 gcloud sql backups list 命令参考页面。

  2. 如需列出一个备份的详情,请使用 backups list 命令输出中的 ID
    gcloud sql backups describe [BACKUP_ID] --instance [INSTANCE_NAME]
    

REST

在使用下面的请求数据之前,请先进行以下替换:

  • project-id:项目 ID
  • instance-id:实例 ID

HTTP 方法和网址:

GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns

如需发送您的请求,请展开以下选项之一:

您应会收到如下所示的 JSON 响应:

在前面的几个示例中
  • REGION 是原始实例所在的区域。
  • BACKUP_REGION 是您希望 Cloud SQL 存储备份的区域。

删除备份

您可以删除自动和按需备份。

对于 MySQL 实例,删除备份时释放的空间可能不等于备份大小。因为这是增量式备份,删除较旧的备份也许会将其中的部分内容转移到较新的备份中,从而使较新备份保持完整性。

控制台

  1. 转到 Google Cloud Console 中的“Cloud SQL 实例”页面。

    转到“Cloud SQL 实例”页面

  2. 点击实例打开其概览页面。
  3. 选择备份标签页。
  4. 点击要删除的备份对应的“更多操作”菜单 更多操作图标。
  5. 选择删除
  6. 在“删除备份”窗口的文本框中输入 Delete,然后点击删除

gcloud

删除 Cloud SQL 实例的备份:

gcloud beta sql backups delete [BACKUP_ID] --instance [INSTANCE_NAME]
      

如需查看完整的参数列表,请参阅 gcloud beta sql backups delete 命令参考页面。

REST

  1. 列出备份以获取待删除备份的 ID:

    在使用下面的请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID

    HTTP 方法和网址:

    GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns

    如需发送您的请求,请展开以下选项之一:

    您应会收到如下所示的 JSON 响应:

  2. 删除备份:

    在使用下面的请求数据之前,请先进行以下替换:

    • project-id:项目 ID
    • instance-id:实例 ID
    • backup-id:备份 ID

    HTTP 方法和网址:

    DELETE https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns/backup-id

    如需发送您的请求,请展开以下选项之一:

    您应会收到如下所示的 JSON 响应:

停用自动备份

如需为实例停用自动备份,请按如下所述操作:

控制台

  1. 转到 Google Cloud Console 中的“Cloud SQL 实例”页面。

    转到“Cloud SQL 实例”页面

  2. 点击实例打开其概览页面。
  3. 选择备份标签页。
  4. 点击管理自动备份
  5. 取消选中自动备份
  6. 点击保存并重启

gcloud

修改实例以停用备份:

gcloud sql instances patch [INSTANCE_NAME] --no-backup

REST

在使用下面的请求数据之前,请先进行以下替换:

  • project-id:项目 ID
  • instance-id:实例 ID
  • start-time:采用“HH:MM”格式表示的时间

HTTP 方法和网址:

PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

请求 JSON 正文:

{
  "settings":
  {
    "backupConfiguration":
    {
      "startTime": "start-time",
      "enabled": false,
      "pointInTimeEnabled": false
    }
  }
}

如需发送您的请求,请展开以下选项之一:

您应会收到如下所示的 JSON 响应:

后续步骤