本頁面提供有關如何建立 Spanner 資料庫備份的資訊。
有關備份的更多信息,請參閱備份概述。 您可以透過下列方式備份資料庫:
事前準備
-
若要取得建立備份所需的權限,請管理員授予您在實例上的下列 IAM 角色:
-
建立、查看、更新及刪除備份:
Cloud Spanner 備份管理員 (
roles/spanner.backupAdmin) -
建立及查看備份:
Cloud Spanner 備份寫入者 (
roles/spanner.backupWriter)
-
建立、查看、更新及刪除備份:
Cloud Spanner 備份管理員 (
本頁面的 gcloud CLI 範例具有以下假設:
- 您已設定 gcloud CLI,可搭配 Spanner 使用。如果您是第一次使用 Spanner 的 gcloud CLI,請參閱 使用 gcloud CLI 建立和查詢資料庫。
您已將 gcloud CLI 配置到您的專案中。例如:
gcloud config set core/project PROJECT_ID
建立備份
建立備份時,Spanner 會建立一個 備份資源 和一個長時間運行的 備份作業 來追蹤備份進度。新建立的備份與來源資料庫位於相同實例、區域和專案中。
建立備份時,必須指定以下資訊:
- 來源資料庫 ID。
- 備份資源的名稱。
- 到期日 (最長為備份建立時間後 1 年)。
您也可以為來源資料庫指定 versionTime,這樣就可以將資料庫備份到更早的時間點。
versionTime 欄位通常用於同步多個資料庫的備份,或使用 時間點復原 (PITR) 來還原資料。
如未指定 versionTime,則會設為備份的 createTime。
您也可以透過設定備份計劃,按指定頻率建立備份。 詳情請參閱「建立及管理備份排程」。
控制台
在 Google Cloud 控制台中,前往 Spanner Instances頁面。
按一下包含要備份的資料庫的實例。
按一下資料庫。
在導覽窗格中,按一下 備份/還原。
在備份點擊 Tab 鍵建立備份。
填寫表格,然後點選建立。
如要查看備份作業進度,請參閱「查看作業進度」。
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
小茹