本頁說明 Spanner 還原作業,並說明如何還原資料庫。如要進一步瞭解如何在 Spanner 中還原資料庫,請參閱「還原總覽」。
您可以使用下列方式還原 Spanner 資料庫:
事前準備
本頁的 gcloud CLI 範例假設如下:
- 您已設定 gcloud CLI 以搭配 Spanner 使用。如果您是第一次使用 Google Cloud CLI 搭配 Spanner,請參閱「使用 Google Cloud CLI 開始使用 Spanner」一文。
您已為專案設定 Google Cloud CLI。例如:
gcloud config set core/project PROJECT_ID
您有一個名為
test-instance
的執行個體和一個名為example-db
的資料庫。
-
如要取得從備份復原資料庫所需的權限,請要求管理員為您授予執行個體的 Cloud Spanner 還原管理員 (
roles/spanner.restoreAdmin
) IAM 角色。
從備份還原資料庫
控制台
前往 Google Cloud 控制台的 Spanner 執行個體頁面。
按一下包含資料庫的執行個體,開啟其「總覽」頁面。
按一下資料庫,開啟資料庫的「總覽」頁面。
在導覽窗格中,按一下「Backup/Restore」。
按一下所選備份的「動作」按鈕,然後選取「還原」。
填寫表單,然後按一下「Restore」按鈕。
如要查看作業進度,請查看進度指標,如下圖所示:
如果作業時間過長,您可以取消作業。詳情請參閱「取消長時間執行的執行個體作業」。
gcloud
如要還原資料庫,請使用 gcloud spanner databases restore
:
gcloud spanner databases restore --async \
--destination-instance=test-instance --destination-database=example-db-restored \
--source-instance=test-instance --source-backup=example-db-backup-6 \
--encryption_type=google-managed-encryption
使用須知:
- 由於
--async
標記,指令會立即傳回。如果沒有旗標,指令會等待還原作業完成。 - 如果來源和目的地執行個體不同,則兩者必須具有相同的執行個體設定。
- 如果目的地資料庫已存在,作業就會失敗。
encryption_type
的可能值為USE_DATABASE_ENCRYPTION
、GOOGLE_DEFAULT_ENCRYPTION
或CUSTOMER_MANAGED_ENCRYPTION
。如果您使用CUSTOMER_MANAGED_ENCRYPTION
,則必須指定kmsKeyName
。
用戶端程式庫
下列程式碼範例會從指定的備份還原資料庫,並等待還原作業 (使用 RestoreDatabaseMetadata
的作業) 完成。系統會在備份所在的相同執行個體中建立已還原的資料庫。完成後,範例會從資料庫擷取並列印一些還原資訊。
C++
C#
Go
Java
Node.js
PHP
Python
Ruby