備份與還原

本頁面說明如何備份及還原應用程式儲存在 Google Cloud Datastore 中的資料。

事前準備

  1. 如果您尚未為專案建立儲存值區,請先完成建立作業。您也可以透過存取控制清單,確認專案的 App Engine 預設服務帳戶能否存取值區。這可能是預設設定,但可根據需求覆寫。
  2. 如果您尚未啟用 Cloud Datastore Admin 存取權,請先予以啟用。

備份資料

建立未來用於還原或匯出資料的備份檔案:

  1. (建議) 停用 Cloud Datastore 寫入功能
  2. 前往「Admin」(管理) 頁面。

    前往管理頁面

  3. 按一下 [Open Datastore Admin] (開啟 Datastore Admin)

  4. 選取您要備份的實體種類。

  5. 按一下 [Backup Entities] (備份實體),顯示備份表單。

  6. 請注意,系統會提供備份名稱,其中包含一個日期戳記。

    如果您每天要進行多次備份,則必須變更此值。如果已有名稱相同的備份,系統就不會備份。

  7. 請注意,備份工作會使用預設佇列;在大多數情況下,您可以使用這個預設佇列。

    如果您使用非預設佇列進行備份/還原,就只能在 queue.yaml 中指定 ah-builtin-python-bundle 目標,而無法使用任何其他目標。

  8. 選取 [Google Cloud Storage] 做為備份儲存空間位置。

  9. 如果您選擇 Cloud Storage,系統會提示您輸入要儲存備份資料的值區名稱,格式為 [BUCKET_NAME]。您可以選擇指定值區名稱 (字尾加上目錄結構,例如 [BUCKET_NAME]/backups/foo):如果還沒有這些資料夾,系統就會建立資料夾。

  10. 按一下 [Backup Entities] (備份實體) 即可開始進行備份工作。系統隨即會顯示工作狀態頁面。 備份工作狀態

  11. 按一下 [Back to Datastore Admin] (返回 Datastore Admin) 可查看備份狀態。

  12. 備份完成後,如果您之前停用了 Cloud Datastore 寫入功能,請重新啟用寫入功能

取消備份

目前正在執行的備份工作會顯示在 Cloud Datastore Admin 畫面的「待處理的備份」清單中。

如要停止執行中的備份:

  1. 前往「Admin」(管理) 頁面。

    前往管理頁面

  2. 按一下 [Open Datastore Admin] (開啟 Datastore Admin)

  3. 在「Pending Backups」(待處理的備份) 區段選取清單中的備份,然後按一下 [Abort] (取消)

取消備份工作時,App Engine 會嘗試刪除目前為止已儲存的備份資料。不過在某些情況下,取消備份後仍會保留部分檔案。您可以在 Google Cloud Storage 中的備份資料儲存位置找到這些檔案,並在取消作業完成後放心將其刪除。這類檔案的名稱開頭會採用以下形式:datastore_backup_[BUCKET_NAME]

搜尋備份的相關資訊

您可能會想瞭解備份的詳細資料,例如其中包含的實體種類、在 Google Cloud Storage 中的儲存位置,以及備份的開始時間和結束時間。如要顯示這類備份資訊:

  1. 前往「Admin」(管理) 頁面。

    前往管理頁面

  2. 按一下 [Open Datastore Admin] (開啟 Datastore Admin)

  3. 在「Backups」(備份) 或「Pending Backups」(待處理的備份) 清單中選取一或多個備份。

  4. 按一下 [Info] (資訊),顯示這些備份的資訊。

  5. 按一下 [Back] (返回) 即可返回 Cloud Datastore Admin 主畫面。

還原資料

如要從備份還原:

  1. (建議) 針對應用程式停用 Cloud Datastore 寫入功能。停用這項功能通常能避免還原作業與寫入至 Cloud Datastore 的任何新資料發生衝突。
  2. 前往「Admin」(管理) 頁面。

    前往管理頁面

  3. 按一下 [Open Datastore Admin] (開啟 Datastore Admin)

  4. 在可用的備份清單中,選取您要還原的備份檔案。

  5. 按一下 [還原]

  6. 在顯示的諮詢頁面中,查看有核取方塊的實體清單。根據預設,系統會還原所有實體。找出您不要還原的每個實體,然後取消勾選旁邊的核取方塊。

  7. 同樣在諮詢頁面中,注意預設佇列及其預先設定的效能設定是用於還原工作。如果您需要不同的佇列效能特性,可將其變更為採用不同設定的其他佇列,並確定所選佇列不包含任何在 queue.yaml 中指定的目標,只包含 ah-builtin-python-bundle

  8. 按一下 [Restore] (還原) 即可開始還原作業。系統隨即會顯示工作狀態頁面。

  9. 按一下 [Back to Datastore Admin] (返回 Datastore Admin) 可查看備份狀態。 還原狀態

  10. 備份完成後,如果您之前停用了 Cloud Datastore 寫入功能,請重新啟用 Cloud Datastore 寫入功能

將資料還原至其他應用程式

如果您使用 Google Cloud Storage 備份資料,就可以將備份還原至其他應用程式,不限於用於建立備份的應用程式。

如要將備份資料從來源應用程式還原至目標應用程式:

  1. 使用以下權限,在來源應用程式的儲存值區中建立身分與存取權管理 (IAM) 政策

    • 成員:[PROJECT_ID]@appspot.gserviceaccount.com
    • 角色Storage Legacy Bucket ReaderStorage Legacy Object Reader

    其中 [PROJECT_ID] 是目標應用程式的專案 ID。

  2. 在來源應用程式中製作新的備份

  3. (建議) 針對目標應用程式停用 Cloud Datastore 寫入功能,避免還原的資料和寫入至 Cloud Datastore 的任何新資料發生衝突。

  4. 前往目標應用程式的「Admin」(管理) 頁面。

    前往管理頁面

  5. 按一下 [Open Datastore Admin] (開啟 Datastore Admin)

  6. 在標示 [Import Backup Information] (匯入備份資訊) 按鈕旁的文字方塊中,按照 /gs/[BUCKET_NAME] 格式指定包含該備份的來源應用程式值區。 備份儲存值區
    您也可以提供特定備份的檔案控制代碼:如要查看備份的檔案控制代碼,請開啟來源應用程式的「Admin」(管理) 頁面,選取所需備份後按一下 [Info] (資訊)。您應該會在「Handle」(控制代碼) 標籤旁邊看到檔案控制代碼。

  7. 按一下 [Import Backup Information] (匯入備份資訊)
    隨即產生的選擇頁面會顯示指定值區的可用備份 (使用控制代碼指定備份除外)。選取所需備份,然後點選下列其中一個項目:

    • [Add to backup list] (新增至備份清單):如果您要將此備份保留在應用程式的可用備份清單中。
    • [Restore from backup] (從備份還原):如果您要從此備份進行還原,但不希望此備份顯示在應用程式的可用備份清單中。
  8. 在顯示的諮詢頁面中,查看有核取方塊的實體清單。根據預設,系統會還原所有實體。找出您不要還原的每個實體,然後取消勾選旁邊的核取方塊。

  9. 同樣在諮詢頁面中,注意預設佇列及其預先設定的效能設定是用於還原工作。如果您需要不同的佇列效能特性,可將其變更為採用不同設定的其他佇列。

  10. 按一下 [Restore] (還原) 即可開始還原作業。系統隨即會顯示工作狀態頁面。

  11. 還原作業完成後,如果您先前停用了 Cloud Datastore 寫入功能,請重新啟用寫入功能

查看資源使用量

若備份作業非常頻繁,通常會導致成本提高。執行 Cloud Datastore Admin 工作時,您其實是在執行基本的 MapReduce 工作。MapReduce 工作會導致前端執行個體時數增加,並提高 Storage 的作業數和用量。

查看資源使用量:

  1. 造訪 GCP 主控台的「App Engine」頁面。

    前往 App Engine 頁面

  2. 使用頁面頂端的下拉式選單選取 default 服務和 ah-builtin-python-bundle 版本。

備份與還原的注意事項

「備份與還原」功能旨在協助您還原遭到意外刪除的資料,也能匯出資料。您可以備份所有實體,也可以只備份選定的實體種類,並在需要時從其中一個備份進行還原。

系統會將備份儲存至 Cloud Storage。

請注意,備份不包含任何索引。還原資料時,系統會使用與應用程式一起上傳的索引定義自動重建所需索引。

您也可以使用備份檔案將資料匯出至其他 Google Cloud Platform 服務,例如 BigQuery

還原作業不會指派新 ID 給實體。還原作業會使用備份期間就存在的 ID,並覆寫任何 ID 相同的現有實體。在還原作業期間,系統會在還原實體時保留其 ID。如果您在執行還原作業期間啟用了寫入功能,這會避免 ID 與新實體發生衝突。由於保留了備份,因此會以新增的方式加入新實體。

您可以還原備份中的所有資料,也可以只還原其中的特定實體種類。除此之外,您可以使用這項功能將某個應用程式的備份資料還原到其他應用程式,前提是您必須使用 Cloud Storage 進行備份。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Datastore 說明文件