本頁說明如何建立 Spanner 資料庫的備份。
如要進一步瞭解備份功能,請參閱「備份總覽」。您可以透過下列方式備份資料庫:
事前準備
-
如要取得建立備份所需的權限,請要求管理員在執行個體上授予下列 IAM 角色:
-
建立、查看、更新及刪除備份:
Cloud Spanner 備份管理員 (
roles/spanner.backupAdmin
) -
建立及查看備份:
Cloud Spanner 備份寫入者 (
roles/spanner.backupWriter
)
-
建立、查看、更新及刪除備份:
Cloud Spanner 備份管理員 (
本頁面的 gcloud CLI 範例具有以下假設:
- 您已設定 gcloud CLI,可搭配 Spanner 使用。如果您是第一次使用 gcloud CLI 搭配 Spanner,請參閱「使用 gcloud CLI 建立及查詢資料庫」。
您已使用專案設定 gcloud CLI。例如:
gcloud config set core/project PROJECT_ID
建立備份
建立備份時,Spanner 會建立備份資源和長期執行的備份作業,以追蹤備份進度。新建立的備份檔會與來源資料庫位於相同的執行個體、區域和專案。
建立備份時,您必須指定下列資訊:
- 來源資料庫 ID。
- 備份資源的名稱。
- 到期日 (最晚為備份建立時間後 1 年)。
您也可以選擇指定來源資料庫的versionTime
,將資料庫備份至較早的時間點。versionTime
欄位通常用於同步處理多個資料庫的備份,或使用時間點復原 (PITR) 功能復原資料。如未指定 versionTime
,則會設為備份的 createTime
。
您也可以使用備份排程,依指定頻率建立備份。 詳情請參閱「建立及管理備份排程」。
控制台
前往 Google Cloud 控制台的 Spanner「Instances」(執行個體) 頁面。
按一下包含要備份資料庫的執行個體。
按一下資料庫。
在導覽窗格中,按一下「備份/還原」。
在「備份」分頁中,按一下「建立備份」。
填寫表單,然後按一下「建立」。
如要查看備份作業進度,請參閱「查看作業進度」。
gcloud
使用下方的任何指令資料之前,請先替換以下項目:
- INSTANCE_ID:Spanner 執行個體 ID。
- DATABASE_ID:Spanner 資料庫 ID。
- BACKUP_NAME:Spanner 備份名稱。
-
RETENTION_PERIOD:建立備份的保留期限。舉例來說,如要將保留期限設為一天,可以使用
86400s
。 -
ENCRYPTION_TYPE:
建立備份的加密類型。
有效值為
USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION
、GOOGLE_DEFAULT_ENCRYPTION
或CUSTOMER_MANAGED_ENCRYPTION
。如果您使用CUSTOMER_MANAGED_ENCRYPTION
,則必須指定kmsKeyName
。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud spanner backups create BACKUP_NAME \ --instance=INSTANCE_ID \ --database=DATABASE_ID \ --retention-period=RETENTION_PERIOD \ --encryption-type=ENCRYPTION_TYPE \ --async
Windows (PowerShell)
gcloud spanner backups create BACKUP_NAME ` --instance=INSTANCE_ID ` --database=DATABASE_ID ` --retention-period=RETENTION_PERIOD ` --encryption-type=ENCRYPTION_TYPE ` --async
Windows (cmd.exe)
gcloud spanner backups create BACKUP_NAME ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID ^ --retention-period=RETENTION_PERIOD ^ --encryption-type=ENCRYPTION_TYPE ^ --async
您應該會收到類似以下的回應:
Create request issued for: BACKUP_NAME Check operation [projects/PROJECT_ID/instances/INSTANCE_ID/backups/BACKUP_NAME/operations/_auto_op_234567] for status.
使用時請注意以下事項:
- 如要設定備份的到期日,請指定
--retention-period
或--expiration-date
旗標。如需日期語法相關資訊,請參閱gcloud topic datetimes
。 - 備份名稱在執行個體中不得重複。
- 由於
--async
標記,指令會立即傳回。如果沒有這個旗標,指令會等待備份作業完成。 - 指定
--help
旗標,取得任何指令的說明。
如要查看備份作業進度,請參閱「查看作業進度」。
用戶端程式庫
下列程式碼範例會在特定 version_time
建立備份,然後等待備份完成。完成後,系統會驗證備份是否就緒,並擷取備份的名稱、大小和建立時間等資訊。
C++
C#
Go
Java
Node.js
PHP
Python
Ruby