本页面介绍如何使用备份恢复您的实例。
如需了解恢复操作的相关信息、最佳做法和要求,请参阅实例恢复概览 。
从备份恢复实例
您可以使用备份恢复最初获得该备份的同一实例,也可以使用备份恢复同一项目中的不同实例。 使用备份恢复实例要求备份和目标实例位于同一时区 。
恢复到不同实例
当您使用备份恢复到不同实例时,即是让目标实例上的数据更新为进行备份时源实例的状态。如需了解详情,请参阅关于执行恢复操作的一般提示 以及关于恢复到不同实例的提示和要求 。
如果您需要项目的备份列表,但因出现服务中断而无法在实例概览页面上查看这些备份,则可以将 backupRuns.list
API 与通配符 (-
) 结合使用。通配符选项可以检索项目中所有实例的所有备份列表。如需了解详情,请参阅在服务中断期间查看备份 。
警告:恢复过程会覆盖实例上的所有当前数据,包括之前的时间点恢复日志。被覆盖的数据无法恢复。
控制台
在 Google Cloud 控制台中,转到 Cloud SQL 实例 页面。
转到“Cloud SQL 实例”
如果目标实例具有任何读取副本,请使用最右侧的“更多操作”菜单 删除这些副本。
如需打开实例的概览 页面,请点击实例名称。
从 SQL 导航菜单中选择备份 。
找到要恢复的备份,然后选择恢复 。
在使用备份恢复实例 页面中,确认在查看备份详情 中选择了正确的备份。
在选择恢复目标位置 中,选择覆盖现有实例 。
从实例 下拉菜单中,选择要用于恢复的实例。您选择的实例及其所有数据都会被覆盖。
要确认您的选择,请在目标实例 ID 字段中输入要覆盖的实例的名称。
如需开始恢复过程,请点击恢复 。
转到目标实例的操作 标签页,检查恢复操作的状态。
恢复操作完成后,重新创建您之前删除的所有副本。
gcloud
描述目标 实例,以查看它是否有任何副本:
gcloud sql instances describe TARGET_INSTANCE_NAME
请记下 replicaNames
中列出的任何实例。
删除所有副本:
gcloud sql instances delete REPLICA_NAME
对每个副本重复此操作。
列出源实例的备份:
gcloud sql backups list \
--instance SOURCE_INSTANCE_NAME
找到您要使用的备份,并记录它的 ID
值。
注意 :请选择标记为 SUCCESSFUL
的备份。
使用指定的备份恢复到目标实例:
gcloud sql backups restore BACKUP_ID \
--restore-instance=TARGET_INSTANCE_NAME \
--backup-instance=SOURCE_INSTANCE_NAME
恢复完成后,重新创建您之前删除的所有副本。
REST v1
列出目标 实例的所有副本。
在使用任何请求数据之前,请先进行以下替换:
project-id :项目 ID
instance-id :实例 ID
HTTP 方法和网址:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=replicaNames
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
执行以下命令:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=replicaNames"
PowerShell (Windows)
执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=replicaNames" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"replicaNames": [
"replica-name "
]
}
删除所有副本。
在使用任何请求数据之前,请先进行以下替换:
project-id :项目 ID
replica-id :副本 ID
HTTP 方法和网址:
DELETE https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
执行以下命令:
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id "
PowerShell (Windows)
执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id " | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "DELETE_BACKUP",
"name": "operation-id ",
"targetId": "replica-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
对每个副本重复此操作。
列出来源 实例的备份,以获取您要使用的备份的 ID。
在使用任何请求数据之前,请先进行以下替换:
project-id :项目 ID
instance-id :实例 ID
HTTP 方法和网址:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
执行以下命令:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns"
PowerShell (Windows)
执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"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"
}
-OR-
如果实例位于服务中断的区域,请列出项目中的所有备份:
在使用任何请求数据之前,请先进行以下替换:
project-id :项目 ID
instance-id :实例 ID,或 -
(对于项目中所有备份的列表)
HTTP 方法和网址:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/-/backupRuns
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
执行以下命令:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/-/backupRuns"
PowerShell (Windows)
执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/-/backupRuns" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"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"
}
找到您需要恢复的实例的备份。
使用备份恢复目标实例。
在使用任何请求数据之前,请先进行以下替换:
project-id :项目 ID
target-instance-id :目标实例 ID
source-instance-id :源实例 ID
backup-id :备份 ID
HTTP 方法和网址:
POST https://sqladmin.googleapis.com/v1/projects/project-id /instances/target-instance-id /restoreBackup
请求 JSON 正文:
{
"restoreBackupContext":
{
"backupRunId": backup-id ,
"instanceId": "source-instance-id "
}
}
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/target-instance-id /restoreBackup"
PowerShell (Windows)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/target-instance-id /restoreBackup" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
恢复操作完成后,重新创建您之前删除的所有副本。
REST v1beta4
列出目标 实例的所有副本。
在使用任何请求数据之前,请先进行以下替换:
project-id :项目 ID
instance-id :实例 ID
HTTP 方法和网址:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=replicaNames
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
执行以下命令:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=replicaNames"
PowerShell (Windows)
执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=replicaNames" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"replicaNames": [
"replica-name "
]
}
删除所有副本。
在使用任何请求数据之前,请先进行以下替换:
project-id :项目 ID
replica-id :副本 ID
HTTP 方法和网址:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
执行以下命令:
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id "
PowerShell (Windows)
执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id " | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "DELETE_BACKUP",
"name": "operation-id ",
"targetId": "replica-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
对每个副本重复此操作。
列出来源 实例的备份,以获取您要使用的备份的 ID。
在使用任何请求数据之前,请先进行以下替换:
project-id :项目 ID
instance-id :实例 ID
HTTP 方法和网址:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
执行以下命令:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns"
PowerShell (Windows)
执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"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/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
}
使用备份恢复目标实例。
在使用任何请求数据之前,请先进行以下替换:
project-id :项目 ID
target-instance-id :目标实例 ID
source-instance-id :源实例 ID
backup-id :备份 ID
HTTP 方法和网址:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/target-instance-id /restoreBackup
请求 JSON 正文:
{
"restoreBackupContext":
{
"backupRunId": backup-id ,
"instanceId": "source-instance-id "
}
}
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/target-instance-id /restoreBackup"
PowerShell (Windows)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/target-instance-id /restoreBackup" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
恢复操作完成后,重新创建您之前删除的所有副本。
恢复到同一实例
当您将备份恢复到相同实例时,即是让该实例上的数据返回到进行备份时的状态。如需详细了解如何恢复实例,请参阅关于执行恢复操作的一般提示 。
警告:恢复过程会覆盖实例上的所有当前数据,包括之前的时间点恢复日志。被覆盖的数据无法恢复。不建议在生产环境中使用此恢复过程。
控制台
在 Google Cloud 控制台中,转到 Cloud SQL 实例 页面。
转到“Cloud SQL 实例”
如果目标实例具有任何读取副本,请使用最右侧的“更多操作”菜单 删除这些副本。
如需打开实例的概览 页面,请点击实例名称。
从 SQL 导航菜单中选择备份 。
找到要使用的备份,然后选择恢复 。
在使用备份恢复实例 页面中,确认在查看备份详情 中选择了正确的备份。
在选择恢复目标位置 中,选择覆盖源实例 。检查括号中是否指定了源实例的名称。
要确认您的选择,请在目标实例 ID 字段中输入实例名称。
如需开始恢复过程,请点击恢复 。
转到实例的操作 页面,检查恢复操作的状态。
恢复操作完成后,重新创建您在第一步中删除的所有副本。
gcloud
描述实例,以查看它是否有任何副本:
gcloud sql instances describe INSTANCE_NAME
请记下 replicaNames
中列出的任何实例。
删除所有副本:
gcloud sql instances delete REPLICA_NAME
对所有副本重复此操作。
列出实例的备份:
gcloud sql backups list --instance INSTANCE_NAME
找到您要使用的备份,并记录它的 ID
值。
注意 :请选择标记为 SUCCESSFUL
的备份。
使用指定的备份恢复实例:
gcloud sql backups restore BACKUP_ID \
--restore-instance=INSTANCE_NAME
恢复操作完成后,重新创建您在第一步中删除的所有副本。
REST v1
列出实例的备份,以获取您要使用的备份的 ID。
在使用任何请求数据之前,请先进行以下替换:
project-id :项目 ID
instance-id :实例 ID
HTTP 方法和网址:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
执行以下命令:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns"
PowerShell (Windows)
执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"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"
}
使用备份恢复实例。
在使用任何请求数据之前,请先进行以下替换:
project-id :项目 ID
instance-id :实例 ID
backup-id :备份 ID
HTTP 方法和网址:
POST https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /restoreBackup
请求 JSON 正文:
{
"restoreBackupContext":
{
"backupRunId": "backup-id ",
}
}
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /restoreBackup"
PowerShell (Windows)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /restoreBackup" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
恢复操作完成后,重新创建您之前删除的所有副本。
REST v1beta4
列出实例的备份,以获取您要使用的备份的 ID。
在使用任何请求数据之前,请先进行以下替换:
project-id :项目 ID
instance-id :实例 ID
HTTP 方法和网址:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
执行以下命令:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns"
PowerShell (Windows)
执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"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/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
}
使用备份恢复实例。
在使用任何请求数据之前,请先进行以下替换:
project-id :项目 ID
instance-id :实例 ID
backup-id :备份 ID
HTTP 方法和网址:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /restoreBackup
请求 JSON 正文:
{
"restoreBackupContext":
{
"backupRunId": "backup-id ",
}
}
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /restoreBackup"
PowerShell (Windows)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /restoreBackup" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
恢复操作完成后,重新创建您之前删除的所有副本。
恢复到其他项目中的实例
您可以使用 project
参数将数据恢复到与最初用于创建备份的实例不属于同一项目的实例。使用 project
参数时,请在项目中以及对要将数据恢复到的实例调用 restoreBackup
。当您使用备份恢复到不同实例时,会将目标实例上的数据更新为之前创建备份时源实例所处的状态。
权限
恢复到其他项目的用户必须具备目标项目的 cloudsql.instances.restoreBackup
权限和源实例的 cloudsql.backupRuns.get
权限。这些权限包含在 Cloud SQL Admin
角色中。
警告:恢复过程会覆盖实例上的所有当前数据,包括之前的时间点恢复日志。被覆盖的数据无法恢复。
如需将数据恢复到其他项目中的实例,请按如下所述操作:
REST v1
如需获取 backupId
,请运行以下命令。
在使用任何请求数据之前,请先进行以下替换:
project-id :项目 ID
instance-id :实例 ID
HTTP 方法和网址:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
执行以下命令:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns"
PowerShell (Windows)
执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"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"
}
将备份恢复到其他项目中的实例:
在使用任何请求数据之前,请先进行以下替换:
source-project-id :源项目 ID
target-project-id :目标项目 ID
target-instance-id :目标实例 ID
source-instance-id :源实例 ID
backup-id :备份 ID
HTTP 方法和网址:
POST https://sqladmin.googleapis.com/v1/projects/target-project-id /instances/target-instance-id /restoreBackup
请求 JSON 正文:
{
"restoreBackupContext":
{
"backupRunId": backup-id ,
"project": "source-project-id ",
"instanceId": "source-instance-id "
}
}
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/target-project-id /instances/target-instance-id /restoreBackup"
PowerShell (Windows)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/target-project-id /instances/target-instance-id /restoreBackup" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/target-project-id /instances/target-instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_VOLUME",
"name": "operation-id ",
"targetId": "target-instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/target-project-id /operations/operation-id ",
"targetProject": "target-project-id "
}
如需详细了解 project
属性,请参阅 restoreBackup
REST v1beta4
如需获取 backupId
,请运行以下命令。
在使用任何请求数据之前,请先进行以下替换:
project-id :项目 ID
instance-id :实例 ID
HTTP 方法和网址:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
执行以下命令:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns"
PowerShell (Windows)
执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"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/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
}
将备份恢复到其他项目中的实例:
在使用任何请求数据之前,请先进行以下替换:
source-project-id :源项目 ID
target-project-id :目标项目 ID
target-instance-id :目标实例 ID
source-instance-id :源实例 ID
backup-id :备份 ID
HTTP 方法和网址:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id /instances/target-instance-id /restoreBackup
请求 JSON 正文:
{
"restoreBackupContext":
{
"backupRunId": backup-id ,
"project": "source-project-id ",
"instanceId": "source-instance-id "
}
}
如需发送您的请求,请展开以下选项之一:
curl(Linux、macOS 或 Cloud Shell)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id /instances/target-instance-id /restoreBackup"
PowerShell (Windows)
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id /instances/target-instance-id /restoreBackup" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
响应
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id /instances/target-instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_VOLUME",
"name": "operation-id ",
"targetId": "target-instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id /operations/operation-id ",
"targetProject": "target-project-id "
}
如需详细了解 project
属性,请参阅 restoreBackup
执行时间点恢复
如需执行时间点恢复,请参阅时间点恢复 。
后续步骤