无法恢复 Google Cloud SQL 实例

无法恢复 Google Cloud SQL 实例

我正在尝试将我的 Google Cloud SQL 实例恢复到之前某个日期的备份:

gcloud sql backups restore 1504554300110 --restore-instance=[MY-DB-INSTANCE]

最终,它一直给出错误:

ERROR: (gcloud.sql.backups.restore) HTTPError 503: Service temporarily unavailable.

我已经尝试了一周,但仍然收到相同的错误消息。我尝试了 Web UI 和命令,gcloud但似乎都不起作用。有人有什么建议吗?

答案1

要从同一实例还原备份:

gcloud sql backups restore [BACKUP_ID] --restore-instance=[INSTANCE_NAME]

要从不同实例还原备份:

gcloud sql backups restore [BACKUP_ID] --restore-instance=[TARGET_INSTANCE_NAME] \
                                      --backup-instance=[SOURCE_INSTANCE_NAME]

在执行上述操作之前,请确保运行:

gcloud sql backups list --instance [INSTANCE_NAME]

找到要使用的备份,记录其 ID 值,然后选择标记为“成功”的备份

以下是有关的完整文档恢复实例

答案2

这个答案对你来说可能太晚了,但我在这里留下一个答案,以防它可以帮助别人。

正如@Kenworth 指出的那样,关于恢复 Cloud SQL 实例包含与如何实现这一目标以及其含义相关的所有信息。

gcloud然而,似乎安慰方法对您不起作用,因此您需要尝试其他方法,即通过 API 调用来恢复所需的备份。您可以通过两种方式执行此操作:

使用curl 获取访问令牌,然后列出实例的可用备份,最后恢复它。

echo "Getting Access Token"
ACCESS_TOKEN="$(gcloud auth print-access-token)"

echo "List available backups for the instance [INSTANCE_NAME] in [PROJECT_ID]"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     -X GET \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT_ID]/instances/[INSTANCE_NAME]/backupRuns

echo "Restore backup [BACKUP_ID] in instance [INSTANCE_NAME] in [PROJECT_ID]"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{ "restoreBackupContext": {"backupRunId": "[BACKUP_ID]"}}' \
     -X POST \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/restoreBackup

使用API 探索器 它与 CURL 命令相同,但您有一个 Web UI 来执行 API 调用。首先列出可用的备份,然后选择要恢复的,最后恢复它

如果您在 Cloud SQL 实例中恢复备份时仍然遇到问题,则应该联系 Google 云端平台支持以便我们能够进一步帮助您。

相关内容