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

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

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

创建按需备份

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

控制台

  1. 在 Google Cloud Console 中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 点击实例名称,打开其概览页面。
  3. 从 SQL 导航菜单中选择备份
  4. 点击创建备份
  5. 创建备份页面上,根据需要添加说明,然后点击创建

gcloud

创建备份:

gcloud sql backups create \
--async \
--instance=INSTANCE_NAME

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

要在自定义位置创建备份,请执行以下操作:

gcloud sql backups create \
--async \
--instance=INSTANCE_NAME \
--location=BACKUP_LOCATION

REST v1

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

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

HTTP 方法和网址:

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns

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

您应该收到类似以下内容的 JSON 响应:

REST v1beta4

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

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

HTTP 方法和网址:

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

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

您应该收到类似以下内容的 JSON 响应:

安排自动备份

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

控制台

  1. 在 Google Cloud Console 中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 点击实例名称,打开其概览页面。
  3. 从 SQL 导航菜单中选择备份
  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 v1

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

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

HTTP 方法和网址:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

请求 JSON 正文:

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

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

您应该会收到类似以下内容的 JSON 响应:

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

REST v1beta4

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

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

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

HTTP 方法和网址:

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

请求 JSON 正文:

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

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

您应该会收到类似以下内容的 JSON 响应:

为备份设置自定义位置

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

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

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

控制台

  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 v1

使用实例的 settings.backupConfiguration.location 参数作为备份位置。

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

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

HTTP 方法和网址:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

请求 JSON 正文:

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

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

您应该会收到类似以下内容的 JSON 响应:

REST v1beta4

使用实例的 settings.backupConfiguration.location 参数作为备份位置。

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

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

HTTP 方法和网址:

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

请求 JSON 正文:

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

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

您应该会收到类似以下内容的 JSON 响应:

查看备份列表

如需查看备份列表以及备份详情,请使用以下选项。

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

控制台

  1. 在 Google Cloud Console 中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 点击实例名称,打开其概览页面。
  3. 从 SQL 导航菜单中选择备份,查看最近的备份、备份创建时间和备份类型。

gcloud

  • 列出实例的备份:
    gcloud sql backups list \
    --instance INSTANCE_NAME
    

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

  • 通过从 backups list 命令的输出中指定备份 ID 来查看备份的详细信息。
    gcloud sql backups describe BACKUP_ID \
    --instance INSTANCE_NAME
        

REST v1

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

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

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

HTTP 方法和网址:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns

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

您应该收到类似以下内容的 JSON 响应:

REST v1beta4

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

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

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

HTTP 方法和网址:

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

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

您应该收到类似以下内容的 JSON 响应:

在服务中断期间查看备份列表

如果某个实例位于发生服务中断的区域中,则您只能将通配符 (-) 与 backupRuns.list API 结合使用来查看该实例的备份。该通配符会返回项目中的所有备份。请参阅恢复到其他实例

如果某个区域中的一个实例启用了客户管理的加密密钥 (CMEK),则在该区域发生服务中断时,您无法将该实例的备份恢复到其他区域。这是因为在实例上启用 CMEK 后,Cloud SQL 会使用区域 Cloud KMS 密钥进行加密。若要恢复一个 CMEK 实例的备份,Cloud SQL 必须有权访问 CMEK 密钥。在发生区域性服务中断时,无法访问相应区域中的 Cloud KMS 密钥。

gcloud

  1. 列出项目中每个实例的备份:
    gcloud sql backups list --instance -

    该命令会返回类似于以下的信息:

    {
          "kind": "sql#backupRun",
          "status": "SUCCESSFUL",
          "enqueuedTime": "2020-01-21T11:25:33.818Z",
          "id": "backup-id",
          "startTime": "2020-01-21T11:25:33.858Z",
          "endTime": "2020-01-21T11:26:18.663Z",
          "type": "AUTOMATED",
          "windowStartTime": "2020-01-21T10:00:00.479Z",
          "instance": "instance-id",
          "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns/backup-id",
          "location": "us"
          "backupKind": "SNAPSHOT"
        }
  2. 找到所需实例的备份。如需恢复此备份,请参阅恢复到其他实例

REST v1

  1. 列出项目中的所有备份:

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

    • project-id:项目 ID
    • instance-id:实例 ID,或 -(对于项目中所有备份的列表)

    HTTP 方法和网址:

    GET https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances/-/backupRuns

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

    您应该收到类似以下内容的 JSON 响应:

  2. 找到所需实例的备份。如需恢复此备份,请参阅恢复到其他实例

REST v1beta4

  1. 列出项目中的所有备份:

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

    • project-id:项目 ID
    • instance-id:实例 ID,或 -(对于项目中所有备份的列表)

    HTTP 方法和网址:

    GET https://sqladmin.googleapis.com/v2/projects/project-id/instances/-/backupRuns

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

    您应该收到类似以下内容的 JSON 响应:

  2. 找到所需实例的备份。如需恢复此备份,请参阅恢复到其他实例

查看备份位置

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

控制台

  1. 在 Google Cloud Console 中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 点击实例名称,打开其概览页面。
  3. 从 SQL 导航菜单中选择备份
  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 v1

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

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

HTTP 方法和网址:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns

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

您应该收到类似以下内容的 JSON 响应:

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

REST v1beta4

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

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

HTTP 方法和网址:

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

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

您应该收到类似以下内容的 JSON 响应:

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

设置自动备份保留

如需设置要保留的自动备份的数量,请按如下所述操作:

控制台

  1. 在 Google Cloud Console 中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 点击实例名称,打开其概览页面。
  3. 从 SQL 导航菜单中选择备份
  4. 点击修改
  5. 自动备份部分中,展开高级选项
  6. 输入一次要存储的备份数量
  7. 点击保存

gcloud

修改实例以设置要保留的自动备份数。该数字不能小于默认值(七)。

gcloud sql instances patch instance-name 
--retained-backups-count=num-to-retain

REST v1beta4

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

  • unit:可选:保留单位可以是整数或字符串。目前支持的(默认)值为 1 或“COUNT”。
  • num-to-retain:要保留的自动备份的数量(1 到 365)
  • project-id:项目 ID
  • instance-id:实例 ID

HTTP 方法和网址:

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

请求 JSON 正文:

{
  "settings":
  {
    "backupConfiguration":
    {
      "backupRetentionSettings":
      {
        "retentionUnit": unit,
        "retainedBackups": "num-to-retain"
      }
    }
  }
}

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

您应该会收到类似以下内容的 JSON 响应:

删除备份

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

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

控制台

  1. 在 Google Cloud Console 中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

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

gcloud

删除 Cloud SQL 实例的备份:

gcloud beta sql backups delete BACKUP_ID \
--instance INSTANCE_NAME
      

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

REST v1

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

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

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

    HTTP 方法和网址:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns

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

    您应该收到类似以下内容的 JSON 响应:

  2. 删除备份:

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

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

    HTTP 方法和网址:

    DELETE https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/backupRuns/backup-id

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

    您应该收到类似以下内容的 JSON 响应:

REST v1beta4

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

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

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

    HTTP 方法和网址:

    GET https://sqladmin.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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/backupRuns/backup-id

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

    您应该收到类似以下内容的 JSON 响应:

停用自动备份

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

控制台

  1. 在 Google Cloud Console 中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 点击实例名称,打开其概览页面。
  3. 从 SQL 导航菜单中选择备份
  4. 点击管理自动备份
  5. 取消选中自动备份
  6. 点击保存并重启

gcloud

修改实例以停用备份:

gcloud sql instances patch INSTANCE_NAME 
--no-backup

REST v1

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

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

HTTP 方法和网址:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

请求 JSON 正文:

{
  "settings":
  {
    "backupConfiguration":
    {
      "enabled": false,
      "binaryLogEnabled": false
    }
  }
}

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

您应该会收到类似以下内容的 JSON 响应:

REST v1beta4

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

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

HTTP 方法和网址:

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

请求 JSON 正文:

{
  "settings":
  {
    "backupConfiguration":
    {
      "enabled": false,
      "binaryLogEnabled": false
    }
  }
}

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

您应该会收到类似以下内容的 JSON 响应:

时间点恢复

详细了解时间点恢复

后续步骤