使用備份還原執行個體

您可以從備份還原執行個體,並將其復原至特定時間點,然後還原至新的或現有的執行個體。您可以還原使用中或已刪除的執行個體。如要進一步瞭解還原作業的運作方式,請參閱「還原總覽」。

如要使用備份還原執行個體,請務必完成下列操作:

  1. 找出要還原的備份
  2. 使用備份還原執行個體

備份位置取決於執行個體的備份選項。

還原線上執行個體

您可以透過下列方式還原備份:

還原至相同執行個體

從備份還原至相同執行個體時,該執行個體的資料也會回到當初建立備份時的狀態。

如要使用備份將執行個體還原至同一個執行個體,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Cloud SQL Backups」(Cloud SQL 備份) 頁面。

    前往 Cloud SQL 備份

  2. 在「Backups」(備份) 頁面中,依據執行個體的備份選項,點選「Standard tier」(標準級) 或「Enhanced tier」(進階級)。

  3. 如果執行個體使用標準備份,請選取要查看備份的執行個體。

如果執行個體使用進階級備份,請依序選取「Enhanced tier」(進階級) 和「Backup vault」(backup vault),其中包含您要使用的備份。系統會顯示所選執行個體的 backup vault 中所有可用的備份。

  1. 找出要還原的備份名稱,然後按一下「還原」。
  1. 在「選擇還原目的地」部分,選取「覆寫來源執行個體」。

  2. 在「Destination instance ID」(目的地執行個體 ID) 欄位中,輸入要覆寫的執行個體名稱,確認所選項目。

  3. 按一下「還原」。

Cloud SQL 會將備份還原至相同執行個體。如要查看還原作業的狀態,請前往執行個體的「Operations」(作業) 頁面。

還原作業完成後,即可建立任何副本。

gcloud

  1. 還原前,必須從執行個體中刪除所有副本。

    使用 gcloud sql instances describe 指令,判斷執行個體是否有任何唯讀副本:

    gcloud sql instances describe INSTANCE_NAME
    

    更改下列內容:

    • INSTANCE_NAME:執行個體的名稱。

    如果執行個體含有副本,請使用 gcloud sql instances delete 指令刪除副本:

    gcloud sql instances delete REPLICA_NAME
    

    更改下列內容:

    • REPLICA_NAME:副本名稱。
  2. 找出要使用的備份。

    如果執行個體使用標準備份,請使用 gcloud sql backups list 指令尋找備份,並記錄其 ID 值:

    gcloud sql backups list --instance=INSTANCE_NAME
    

    更改下列內容:

    • INSTANCE_NAME:執行個體的名稱。

    如果執行個體使用進階級備份,請參閱「列出 backup vault 中的所有備份」。

  3. 如要從指定備份還原執行個體,請使用 gcloud sql backups restore 指令:

    gcloud sql backups restore BACKUP_ID \
    --restore-instance=INSTANCE_NAME
    

    更改下列內容:

    • BACKUP_ID:要還原的備份 ID。
    • INSTANCE_NAME:執行個體的名稱。
  4. 還原作業完成後,請重新建立您在此程序中刪除的所有副本。

REST v1

  1. 如要判斷執行個體是否有任何唯讀副本,並取得其 ID,請列出執行個體的所有副本:

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  2. 刪除執行個體的所有副本:

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID
    • REPLICA_ID:副本 ID

    HTTP 方法和網址:

    DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_ID

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  3. 取得要使用的備份 ID。

    • 如果執行個體使用標準級備份,請執行下列指令:

    使用任何要求資料之前,請先修改下列項目的值:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

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

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  4. 從備份還原執行個體:

    使用任何要求資料之前,請先修改下列項目的值:

    • 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",
      }
    }
    

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  5. 還原作業完成後,請重新建立您在此程序中刪除的所有副本。

REST v1beta4

  1. 如要判斷執行個體是否有任何唯讀副本,並取得其 ID,請列出執行個體的所有副本:

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  2. 刪除執行個體的所有副本:

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID
    • REPLICA_ID:副本 ID

    HTTP 方法和網址:

    DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_ID

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  3. 取得要使用的備份 ID。

    • 如果執行個體使用標準級備份,請執行下列指令:

    使用任何要求資料之前,請先修改下列項目的值:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

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

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  4. 從備份還原執行個體:

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID
    • BACKUP_RUN_ID:Cloud SQL 從備份還原執行個體的日期和時間戳記

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/restoreBackup

    JSON 要求主體:

    {
      "restoreBackupContext":
      {
        "backupRunId": "BACKUP_RUN_ID",
      }
    }
    

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  5. 還原作業完成後,請重新建立您在此程序中刪除的所有副本。

還原至新的或現有執行個體

從備份還原至不同的執行個體時,目標執行個體中的資料會更新為當初建立備份時的來源執行個體狀態。

如果您需要專案的備份清單,但因服務中斷而無法在執行個體總覽頁面查看,可以使用 backupRuns.list API 搭配萬用字元 (-)。萬用字元選項會擷取專案中所有執行個體的備份清單。詳情請參閱「在服務中斷期間查看備份」。

如要將執行個體還原至新的或現有執行個體,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Cloud SQL Backups」(Cloud SQL 備份) 頁面。

    前往 Cloud SQL 備份

  2. 在「Backups」(備份) 頁面中,按一下「Standard tier」(標準級) 或「Enhanced tier」(增強級),具體取決於執行個體的備份選項。

  3. 如果執行個體使用標準備份,請選取要查看備份的執行個體。

如果執行個體使用進階級備份,請依序選取「Enhanced tier」(進階級) 和「Backup vault」(backup vault),其中包含您要使用的備份。系統會顯示所選執行個體的 backup vault 中所有可用的備份。

  1. 找出要還原的備份名稱,然後按一下「還原」。

  2. 在「Choose restore destination」(選擇還原目的地) 中:

    • 如要將執行個體還原至新的執行個體,請選取「Restore to a new instance」(還原至新的執行個體),然後更新下列項目:

    • 在「Region」(區域) 下方確認區域。區域應與新執行個體的區域相符。

    • 在「Instance ID」(執行個體 ID) 方塊中,為新執行個體命名。這個名稱一經設定即無法變更。

    • 如要將執行個體還原至現有執行個體,請選取「Overwrite an existing instance」(覆寫現有執行個體),然後執行下列操作:

    • 在「Instance to be overwritten」(要覆寫的執行個體) 選單中,選取要用於還原作業的執行個體。您選取的執行個體和所有資料都會遭到覆寫。

    • 在「Destination instance ID」(目的地執行個體 ID) 欄位中,輸入要覆寫的執行個體名稱,確認所選項目。

  3. 按一下「還原」。

    Cloud SQL 會根據您的選擇,將備份還原至新的或現有的執行個體。如要查看還原作業的狀態,請前往執行個體的「Operations」(作業) 頁面。

    還原作業完成後,即可建立任何副本。

gcloud

  1. 如要還原至現有執行個體,則必須先從目標執行個體刪除所有副本,才能進行還原。

    使用 gcloud sql instances describe 指令,判斷執行個體是否有任何唯讀副本:

    gcloud sql instances describe TARGET_INSTANCE_NAME
    

    更改下列內容:

    • TARGET_INSTANCE_NAME:執行個體的名稱。

    如果執行個體含有副本,請使用 gcloud sql instances delete 指令刪除副本:

    gcloud sql instances delete REPLICA_NAME
    

    更改下列內容:

    • REPLICA_NAME:副本名稱。
  2. 找出要使用的備份。

    如果執行個體使用標準備份,請使用 gcloud sql backups list 指令尋找備份,並記錄其 ID 值:

    gcloud sql backups list --instance=INSTANCE_NAME
    

    更改下列內容:

    • INSTANCE_NAME:執行個體的名稱。

    如果執行個體使用進階級備份,請參閱「列出 backup vault 中的所有備份」。

  3. 如要從指定備份還原執行個體,請使用 gcloud sql backups restore 指令:

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

    更改下列內容:

    • BACKUP_ID:要還原的備份 ID。
    • TARGET_INSTANCE_NAME:目標新執行個體或現有執行個體的名稱。
    • SOURCE_INSTANCE_NAME:來源執行個體的名稱。
  4. 如要還原至現有執行個體,請在還原作業完成後,重新建立您在此程序中刪除的所有副本。

REST v1

  1. 如果使用現有執行個體,則必須先刪除所有副本,才能還原。判斷執行個體是否有任何唯讀副本,並取得其 ID,列出執行個體的所有副本:

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  2. 刪除執行個體的所有副本:

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID
    • REPLICA_ID:副本 ID

    HTTP 方法和網址:

    DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_ID

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  3. 取得要使用的備份 ID。

    • 如果執行個體使用標準級備份,請執行下列指令:

    使用任何要求資料之前,請先修改下列項目的值:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

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

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  4. 從備份還原執行個體:

    使用任何要求資料之前,請先修改下列項目的值:

    • 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"
      }
    }
    

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  5. 還原作業完成後,請重新建立您在此程序中刪除的所有副本。

REST v1beta4

  1. 如要判斷執行個體是否有任何唯讀副本,並取得其 ID,請列出執行個體的所有副本:

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  2. 刪除執行個體的所有副本:

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID
    • REPLICA_ID:副本 ID

    HTTP 方法和網址:

    DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_ID

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  3. 取得要使用的備份 ID。

    • 如果執行個體使用標準級備份,請執行下列指令:

    使用任何要求資料之前,請先修改下列項目的值:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

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

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  4. 從備份還原執行個體:

    使用任何要求資料之前,請先修改下列項目的值:

    • 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"
      }
    }
    

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  5. 還原作業完成後,請重新建立您在此程序中刪除的所有副本。

還原至其他專案中的執行個體

您可以使用 project 參數,將資料還原至其他專案中的執行個體。從備份還原至其他專案中的執行個體時,目標執行個體中的資料會更新為當初建立備份時的來源執行個體狀態。

如要還原至其他專案,使用者必須具備下列權限,才能還原執行個體:

Cloud SQL Admin 角色包含這些權限。

如要將備份還原至其他專案,請確認環境符合下列客戶自行管理的加密金鑰 (CMEK) 和 VPC Service Controls 規定:

  • 如果備份或目標執行個體使用 CMEK,請將 Cloud KMS 金鑰的 Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) 角色授予目標專案的 Cloud SQL 服務帳戶。如果將 CMEK 加密備份還原至不同區域的新執行個體,則必須在目標區域中指定 Cloud KMS 金鑰。請將這個角色授予目標專案的 Cloud SQL 服務帳戶,用於來源備份的金鑰和目標執行個體的金鑰。詳情請參閱「使用客戶自行管理的加密金鑰 (CMEK)」。
  • 如果您使用 VPC Service Controls,請將目標執行個體的專案新增至與來源備份專案相同的服務範圍,或使用範圍橋接連結範圍。
  • 如果您同時使用 CMEK 和 VPC Service Controls,則託管 Cloud KMS 金鑰的專案也必須屬於相同的 service perimeter 或連結的 perimeter bridge。否則,VPC Service Controls 會封鎖金鑰存取權,還原作業也會失敗,並顯示 Insufficient permission to use the Cloud KMS key 錯誤。即使服務帳戶具備 roles/cloudkms.cryptoKeyEncrypterDecrypter 角色,也會發生這項錯誤。詳情請參閱 VPC Service Controls 支援產品表格中的 Cloud SQL Admin API 項目,以及設定 VPC Service Controls。

如要使用備份,將執行個體還原至其他專案或區域中的執行個體,請按照下列步驟操作:

gcloud

  1. 如要還原至現有執行個體,請使用 gcloud sql instances describe 指令,判斷目標執行個體是否有任何唯讀副本:

    gcloud sql instances describe TARGET_INSTANCE_NAME
    

    更改下列內容:

    • TARGET_INSTANCE_NAME:要還原備份的目標執行個體名稱。

    使用 gcloud sql instances delete 指令,刪除目標執行個體的所有副本:

    gcloud sql instances delete REPLICA_NAME
    

    更改下列內容:

    • REPLICA_NAME:目標執行個體的副本名稱。

    必須先刪除所有副本,才能還原至現有執行個體。

  2. 找出要使用的備份。

    如果執行個體使用標準備份,請使用 gcloud sql backups list 指令尋找備份,並記錄其 ID 值:

    gcloud sql backups list --instance=INSTANCE_NAME
    

    更改下列內容:

    • INSTANCE_NAME:執行個體的名稱。

    如果執行個體使用進階級備份,請參閱「列出 backup vault 中的所有備份」。

  3. 如要還原至新專案中的新執行個體或現有執行個體,請使用 gcloud sql backups restore 指令:

    gcloud sql backups restore BACKUP_ID \
    --restore-instance=TARGET_INSTANCE_NAME \
    --backup-instance=SOURCE_INSTANCE_NAME \
    --backup-project=SOURCE_INSTANCE_PROJECT
    

    更改下列內容:

    • BACKUP_ID:backup vault 中的備份 ID。您必須在這個欄位中輸入備份的完整路徑。

    • TARGET_INSTANCE_NAME:要還原資料的目的地專案執行個體。

    • SOURCE_INSTANCE_NAME:資料所在來源專案中的執行個體名稱。

    • SOURCE_INSTANCE_PROJECT:來源執行個體所在的專案。

REST v1

  1. 如要取得 backupId,請執行下列指令:

    使用任何要求資料之前,請先修改下列項目的值:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

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

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  2. 將備份還原至其他專案中的執行個體:

    使用任何要求資料之前,請先修改下列項目的值:

    • 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"
      }
    }
    

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

REST v1beta4

  1. 如要取得 backupId,請執行下列指令:

    使用任何要求資料之前,請先修改下列項目的值:

    • project-id:專案 ID
    • instance-id:執行個體 ID

    HTTP 方法和網址:

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

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  2. 將備份還原至其他專案中的執行個體:

    使用任何要求資料之前,請先修改下列項目的值:

    • 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"
      }
    }
    

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

還原已刪除的執行個體

您可以使用最終備份或保留的備份,在下列情況還原已刪除的執行個體:

還原至現有執行個體

從最終或保留的備份將資料還原至現有執行個體時,目標執行個體中的資料會更新為當初建立備份時的來源執行個體狀態。如要進一步瞭解如何還原執行個體,請參閱「執行還原作業的一般提示」。

如要使用備份將已刪除的執行個體還原至現有執行個體,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。

    前往「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面

  2. 如果目標執行個體有任何唯讀副本,請使用「更多動作」選單 更多動作圖示。 刪除。您必須先刪除所有副本,才能將保留或最終備份還原至現有執行個體。

  3. 前往 Google Cloud 控制台的「Cloud SQL Backups」(Cloud SQL 備份) 頁面。

    前往 Cloud SQL 備份

  4. 在「Backups」(備份) 頁面中,按一下「Standard tier」(標準級) 或「Enhanced tier」(增強級),具體取決於執行個體的備份選項。

  5. 如果執行個體使用標準備份,請按一下已刪除執行個體的名稱,其中包含要還原的備份。

如果執行個體使用進階級備份,請選取「Enhanced tier」(進階級),然後選取含有要使用備份的「Backup vault」。系統會顯示所選執行個體的 backup vault 中所有可用的備份。

  1. 找出要還原的備份名稱,然後按一下「Restore」(還原)。

  2. 在「Restore an instance from a backup」(從備份還原執行個體) 頁面中,確認您在「Review backup details」(查看備份詳細資料) 中選取了正確的備份。

  3. 在「Choose restore destination」(選擇還原目的地) 專區中,選取「Overwrite an existing instance」(覆寫現有執行個體)。

  4. 從「Instance to be overwritten」(要覆寫的執行個體) 選單中,選取要還原備份的執行個體。您選取的執行個體及其所有資料都會遭到覆寫。

  5. 如要確認選取項目,請在「Destination instance ID」(目的地執行個體 ID) 欄位中,輸入要覆寫的執行個體名稱。

  6. 按一下「還原」。

Cloud SQL 會將備份還原至現有執行個體。如要查看還原作業的狀態,請前往執行個體的「Operations」(作業) 頁面。

還原作業完成後,即可建立任何副本。

gcloud

  1. 還原至現有執行個體時,必須先從目標執行個體刪除所有副本,才能還原。

    使用 gcloud sql instances describe 指令,判斷執行個體是否有任何唯讀副本:

    gcloud sql instances describe TARGET_INSTANCE_NAME
    

    更改下列內容:

    • TARGET_INSTANCE_NAME:執行個體的名稱。

    如果執行個體包含副本,請使用 gcloud sql instances delete 指令刪除副本:

    gcloud sql instances delete REPLICA_NAME
    

    更改下列內容:

    • REPLICA_NAME:副本名稱。
  2. 找出要使用的備份。

    如果執行個體使用標準備份,請使用 gcloud sql backups list 指令尋找備份,並記錄其 ID 值:

    gcloud sql backups list --instance=INSTANCE_NAME
    

    更改下列內容:

    • INSTANCE_NAME:執行個體的名稱。

    如果執行個體使用進階級備份,請參閱「列出 backup vault 中的所有備份」。

  3. 如要從指定備份還原執行個體,請使用 gcloud sql backups restore 指令:

    gcloud sql backups restore BACKUP_ID \
    --restore-instance=TARGET_INSTANCE_NAME
    

    更改下列內容:

    • BACKUP_ID:要還原的備份 ID。
    • TARGET_INSTANCE_NAME:新目標執行個體或 現有目標執行個體的名稱。
  4. 還原作業完成後,請重新建立您在此程序中刪除的所有副本。

REST v1

  1. 還原至現有執行個體時,必須先從目標執行個體刪除所有副本,才能進行還原。如要判斷執行個體是否有任何唯讀副本,請執行下列指令:

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  2. 刪除執行個體的所有唯讀副本:

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID
    • REPLICA_ID:副本 ID

    HTTP 方法和網址:

    DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_ID

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  3. 取得要使用的最終或保留備份 ID:

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  4. 從保留或最終備份還原目標執行個體。

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID
    • TARGET_INSTANCE_ID:目標執行個體 ID
    • BACKUP_ID:備份 ID

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup

    JSON 要求主體:

    {
      backup: projects/PROJECT_ID/backups/BACKUP_ID
    }
    

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

REST v1beta4

  1. 還原至現有執行個體時,必須先從目標執行個體刪除所有副本,才能進行還原。如要判斷執行個體是否有任何唯讀副本,請執行下列指令:

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID?fields=replicaNames

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  2. 刪除執行個體的所有唯讀副本:

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID
    • REPLICA_ID:副本 ID

    HTTP 方法和網址:

    DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_ID

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  3. 取得要使用的最終或保留備份 ID:

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

  4. 從保留或最終備份還原目標執行個體。

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:專案 ID
    • TARGET_INSTANCE_ID:目標執行個體 ID
    • BACKUP_ID:備份 ID

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup

    JSON 要求主體:

    {
      backup: projects/PROJECT_ID/backups/BACKUP_ID
    }
    

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

還原至新執行個體

從最終或保留的備份建立執行個體時,Cloud SQL 會使用備份來源執行個體的設定。建立執行個體後,Cloud SQL 會將資料還原至備份時的狀態。

如要將最終或保留備份中的資料還原至新執行個體,您必須具備下列權限:

  • 目標專案的 cloudsql.instances.create 權限
  • 目標專案的 cloudsql.instances.restoreBackup 權限
  • 來源備份的 cloudsql.backupRuns.get permission。

Cloud SQL 管理員角色具備這些權限。

如要使用備份將已刪除的執行個體還原至新的執行個體,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Cloud SQL Backups」(Cloud SQL 備份) 頁面。

    前往 Cloud SQL 備份

  2. 在「Backups」(備份) 頁面中,按一下「Standard tier」(標準級) 或「Enhanced tier」(增強級),具體取決於執行個體的備份選項。

  3. 如果執行個體使用標準備份,請按一下已刪除執行個體的名稱,其中包含要還原的備份。

    如果執行個體使用進階級備份,請依序選取「Enhanced tier」(進階級) 和「Backup vault」(backup vault),其中包含您要使用的備份。系統會顯示所選執行個體的 backup vault 中所有可用的備份。

  4. 找出要還原的備份名稱,然後按一下「Restore」(還原)。

  5. 在「Restore an instance from a backup」(從備份還原執行個體) 頁面中,確認您在「Review backup details」(查看備份詳細資料) 中選取了正確的備份。

  6. 在「Choose restore destination」(選擇還原目的地) 區段中,選取「Restore to a new instance」(還原至新的執行個體)。

  7. 從「Region」(區域) 選單中,選取新執行個體的區域。

  8. 在「Instance ID」(執行個體 ID) 欄位中,輸入新執行個體的 ID。這個 ID 建立後即無法變更。

  9. 按一下「還原」。

Cloud SQL 會將備份還原至現有執行個體。如要查看還原作業的狀態,請前往執行個體的「Operations」(作業) 頁面。

gcloud

  1. 找出要使用的備份。

    如果執行個體使用標準備份,請使用 gcloud sql backups list 指令尋找備份,並記錄其 ID 值:

    gcloud sql backups list --instance=INSTANCE_NAME
    

    更改下列內容:

    • INSTANCE_NAME:執行個體的名稱。

    如果執行個體使用進階級備份,請參閱「列出 backup vault 中的所有備份」。

  2. 如要從指定備份還原執行個體,請使用 gcloud sql backups restore 指令:

    gcloud sql backups restore BACKUP_ID \
    --restore-instance=TARGET_INSTANCE_NAME
    

    更改下列內容:

    • BACKUP_ID:要還原的備份 ID。
    • TARGET_INSTANCE_NAME:新目標執行個體或 現有目標執行個體的名稱。

REST v1

從指定的保留或最終備份還原新的執行個體

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:專案 ID
  • TARGET_INSTANCE_ID:目標執行個體 ID
  • BACKUP_ID:備份 ID

HTTP 方法和網址:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup

JSON 要求主體:

{
  backup: projects/PROJECT_ID/backups/BACKUP_ID
  restore_instance_settings: {}
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

REST v1beta4

從指定的保留或最終備份還原新的執行個體

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:專案 ID
  • TARGET_INSTANCE_ID:目標執行個體 ID
  • BACKUP_ID:備份 ID

HTTP 方法和網址:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup

JSON 要求主體:

{
  backup: projects/PROJECT_ID/backups/BACKUP_ID
  restore_instance_settings: {}
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

還原至其他專案中的新執行個體或現有執行個體

您可以使用 project 參數,將資料還原至其他專案中的執行個體。將已刪除的執行個體從備份還原至其他專案中的執行個體時,目標執行個體會更新為當初建立備份時的來源執行個體狀態。

如要還原至其他專案,使用者必須具備下列權限,才能還原執行個體:

Cloud SQL Admin 角色包含這些權限。

如要將備份還原至其他專案,請確認環境符合下列客戶自行管理的加密金鑰 (CMEK) 和 VPC Service Controls 規定:

  • 如果備份或目標執行個體使用 CMEK,請將 Cloud KMS 金鑰的 Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) 角色授予目標專案的 Cloud SQL 服務帳戶。如果將 CMEK 加密備份還原至不同區域的新執行個體,則必須在目標區域中指定 Cloud KMS 金鑰。請將這個角色授予目標專案的 Cloud SQL 服務帳戶,用於來源備份的金鑰和目標執行個體的金鑰。詳情請參閱「使用客戶自行管理的加密金鑰 (CMEK)」。
  • 如果您使用 VPC Service Controls,請將目標執行個體的專案新增至與來源備份專案相同的服務範圍,或使用範圍橋接連結範圍。
  • 如果您同時使用 CMEK 和 VPC Service Controls,則託管 Cloud KMS 金鑰的專案也必須屬於相同的 service perimeter 或連結的 perimeter bridge。否則,VPC Service Controls 會封鎖金鑰存取權,還原作業也會失敗,並顯示 Insufficient permission to use the Cloud KMS key 錯誤。即使服務帳戶具備 roles/cloudkms.cryptoKeyEncrypterDecrypter 角色,也會發生這項錯誤。詳情請參閱 VPC Service Controls 支援產品表格中的 Cloud SQL Admin API 項目,以及設定 VPC Service Controls。

如要使用備份,將執行個體還原至其他專案或區域中的執行個體,請按照下列步驟操作:

gcloud

  1. 如要還原至現有執行個體,請使用 gcloud sql instances describe 指令,判斷目標執行個體是否有任何唯讀副本:

    gcloud sql instances describe TARGET_INSTANCE_NAME
    

    更改下列內容:

    • TARGET_INSTANCE_NAME:要還原備份的目標執行個體名稱。

      使用 gcloud sql instances delete 指令,刪除目標執行個體的所有副本:

        gcloud sql instances delete REPLICA_NAME
        ```
      
      Replace the following:
      
      • REPLICA_NAME:目標執行個體的副本名稱。

      必須先刪除所有副本,才能還原至現有執行個體。

  2. 找出要使用的備份。

    如果執行個體使用標準備份,請使用 gcloud sql backups list 指令尋找備份,並記錄其 ID 值:

    gcloud sql backups list --instance=INSTANCE_NAME
    

    更改下列內容:

    • INSTANCE_NAME:執行個體的名稱。

    如果執行個體使用進階級備份,請參閱「列出 backup vault 中的所有備份」。

  3. 如要還原至新專案中的新執行個體或現有執行個體,請使用 gcloud sql backups restore 指令:

    gcloud sql backups restore BACKUP_ID \
    --restore-instance=TARGET_INSTANCE_NAME \
    --backup-instance=SOURCE_INSTANCE_NAME \
    --backup-project=SOURCE_INSTANCE_PROJECT
    

    更改下列內容:

    • BACKUP_ID:backup vault 中的備份 ID。您必須在這個欄位中輸入備份的完整路徑。

    • TARGET_INSTANCE_NAME:要還原資料的目的地專案執行個體。

    • SOURCE_INSTANCE_NAME:資料所在來源專案中的執行個體名稱。

    • SOURCE_INSTANCE_PROJECT:來源執行個體所在的專案。

REST v1

如要取得保留或最終備份的 backupID,請執行下列指令:

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:專案 ID

HTTP 方法和網址:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/backups

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

還原至其他專案

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:專案 ID
  • TARGET_INSTANCE_ID:目標執行個體 ID
  • BACKUP_ID:備份 ID

HTTP 方法和網址:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup

JSON 要求主體:

{
  backup: projects/PROJECT_ID/backups/BACKUP_ID
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

REST v1beta4

如要取得保留或最終備份的 backupID,請執行下列指令:

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:專案 ID

HTTP 方法和網址:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/backups

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

還原至其他專案

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:專案 ID
  • TARGET_INSTANCE_ID:目標執行個體 ID
  • BACKUP_ID:備份 ID

HTTP 方法和網址:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/TARGET_INSTANCE_ID/restoreBackup

JSON 要求主體:

{
  backup: projects/PROJECT_ID/backups/BACKUP_ID
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

後續步驟

  • 進一步瞭解如何備份資料。

  • 瞭解如何備份資料。