本文說明如何使用 Google Cloud 控制台或 gcloud CLI,從備份保存庫還原 AlloyDB 叢集。本文說明如何從保存的備份還原,或執行時間點復原 (PITR)。
如要進一步瞭解備份和災難復原的概念功能,請參閱備份和災難復原總覽。如要先備份資料庫,請參閱「將 AlloyDB 叢集備份至備份保存庫」。
AlloyDB 叢集的災害復原選項。
儲存在備份保存庫中的備份與來源叢集的生命週期和專案無關。
即使含有來源 AlloyDB 叢集的原始工作負載專案遭到刪除,您還是可以還原備份。這是因為 CMEK 加密備份的必要解密權限,是錨定在備份儲存空間專案的備份和災難復原服務代理,而非工作負載專案。只要備份保存庫和 Cloud Key Management Service 保存庫金鑰完好無損,且服務代理程式具備權限,就能確保備份資料可供存取及還原。
事前準備
從備份保存庫還原 AlloyDB 叢集之前,請確認您具備必要角色和權限。
如要取得從保存備份還原 AlloyDB 叢集所需的權限,請要求管理員授予您下列 IAM 角色:
-
如要建立還原目標:目標叢集所在專案的 AlloyDB 管理員 (
roles/alloydb.admin) -
如要從 vault 讀取備份資料:
來源備份所在的專案需要備份和災難復原還原使用者 (
roles/backupdr.restoreUser)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這些預先定義的角色具備從保存的備份還原 AlloyDB 叢集所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要從保存的備份還原 AlloyDB 叢集,您必須具備下列權限:
-
如要建立還原目標,請執行下列步驟:
alloydb.clusters.restore -
如要從保管庫讀取備份:
-
backupdr.bvbackups.useReadOnlyForAlloydbCluster -
backupdr.bvdataSources.useReadOnlyForAlloydbCluster
-
服務代理角色和重要版本需求
由於備份是累加式,如果金鑰經過一段時間輪替,單一備份可能會由多個 Cloud Key Management Service 金鑰版本的保存庫金鑰加密。如要順利還原,請確認符合下列必要條件:
用於增量備份的保存庫金鑰,其所有 Cloud Key Management Service 金鑰版本都必須存在。
備份保存庫專案中的 Backup and DR 服務代理人必須擁有備份所用保存庫金鑰的 Cloud KMS CryptoKey Encrypter/Decrypter (
roles/cloudkms.cryptoKeyEncrypterDecrypter) 角色。
還原叢集的 KMS 金鑰行為
如果在還原程序中未提供特定 CMEK,還原的叢集預設會由 Google-managed encryption key加密。系統不會自動使用保管箱金鑰或原始來源叢集金鑰加密。
如果在還原設定期間提供 CMEK,還原的叢集會以新指定的金鑰加密。
從封存備份還原 AlloyDB 叢集
如要從保存的備份還原 AlloyDB for PostgreSQL 叢集,請完成下列各節中的工作。
將備份還原至新叢集
控制台
前往 Google Cloud 控制台的「Vaulted backups」(已封存備份) 頁面。
選取要還原的備份。在備份的「備份詳細資料」頁面中,或從 選單中,選取「還原」。
系統會顯示「還原備份」頁面。「資源類型」會預先填入
AlloyDB。在「Resource name」中,選取要還原的 AlloyDB 叢集。
按一下「備份」。系統會顯示窗格,列出所有可用的備份。
選取要還原的備份。
在「選擇還原目的地」中,選取要還原 AlloyDB 叢集的專案。
按一下「繼續」。
下一頁會顯示目前的還原詳細資料,並提示您設定新的叢集。依據備份中儲存的設定建立新的 AlloyDB 叢集。還原作業完成後,您便可自訂叢集。
使用小寫英文字母、數字和連字號,提供新的叢集 ID,且開頭必須為英文字母。
選擇私人連線方法。如果服務位於 Google Cloud 或第三方託管的虛擬私有雲網路,您無須指派外部 IP 位址,即可透過下列兩種方式連線至服務:
私人服務存取權:使用對等互連連線,將叢集指派給單一虛擬私有雲網路。如果需要連線至與 AlloyDB 叢集位於同一虛擬私有雲網路的 特定 Google Cloud 第三方服務 ,請使用這項功能。這需要搭配其他 API。
Private Service Connect:透過許可清單和 Private Service Connect 端點,從一或多個虛擬私有雲網路存取叢集。
gcloud
gcloud beta alloydb clusters restore RESTORED_CLUSTER_ID \
--project=WORKLOAD_PROJECT_ID \
--region=REGION \
--backupdr-backup=BACKUP_NAME
更改下列內容:
RESTORED_CLUSTER_ID:要還原的新 AlloyDB 叢集 ID。WORKLOAD_PROJECT_ID:您要還原 AlloyDB 叢集的專案 ID。REGION:您要還原 AlloyDB 叢集的 Google Cloud 區域。BACKUP_NAME:要還原的備份名稱。
建立主要執行個體
「備份和災難復原」建立叢集後,請為該叢集建立主要執行個體。
建立新的主要執行個體時,您需要指定其設定,包括大小和旗標;Backup and DR 不會將執行個體設定儲存為備份的一部分。請注意,設定不一定要與原始主要執行個體完全一致。
備份和災難復原建立執行個體後,您就可以使用該執行個體存取還原的資料。
設定讀取集區執行個體
視需要設定讀取集區執行個體,完成新叢集的設定。
將 AlloyDB 叢集還原至某個時間點
如要將 AlloyDB for PostgreSQL 叢集還原至特定時間點,請完成下列章節中的工作。
需求條件
如要成功還原以 CMEK 加密的來源叢集,來源叢集金鑰和保存庫金鑰都必須存在且可供存取。
工作負載專案中的 AlloyDB for PostgreSQL 服務代理人必須擁有來源叢集金鑰的「Cloud KMS CryptoKeyEncrypter/Decrypter」(
roles/cloudkms.cryptoKeyEncrypterDecrypter) 角色,備份保存庫專案中的 Backup and DR 服務代理人則必須擁有保存庫金鑰的「Cloud KMS CryptoKeyEncrypter/Decrypter」(roles/cloudkms.cryptoKeyEncrypterDecrypter) 角色。
將備份還原至新叢集
控制台
前往 Google Cloud 控制台的「Vaulted backups」(已封存備份) 頁面。
「已封存的備份」頁面只會列出符合下列條件的資料資源:已套用備份方案,而且備份儲存於該專案中的 backup vault。
在備份清單頂端,選取「從特定時間點還原」。
系統會顯示「從某個時間點將資料還原至新的叢集」窗格,您可以在這裡選取要還原的時間點,以及要建立的新叢集詳細資料。
輸入這個叢集復原期間內的某個時間點,做為還原叢集資料的目標時間。
設定新叢集。依據備份中儲存的設定建立新的 AlloyDB 叢集。還原作業完成後,您便可自訂叢集。
使用小寫英文字母、數字和連字號,提供新的叢集 ID,且開頭必須為英文字母。
選擇私人連線方法。如果服務位於 Google Cloud 或第三方託管的虛擬私有雲網路,您無須指派外部 IP 位址,即可透過下列兩種方式連線至服務:
私人服務存取權:透過對等互連連線,將叢集指派給單一虛擬私有雲網路。如果需要連線至與 AlloyDB 叢集位於同一虛擬私有雲網路的 特定 Google Cloud 第三方服務 ,請使用這項功能。這需要搭配其他 API。
Private Service Connect:可透過許可清單和 Private Service Connect 端點,從一或多個虛擬私有雲網路存取叢集。
gcloud
使用下列指令找出資料來源 ID:
gcloud backup-dr data-source-references fetch-for-resource-type alloydb.googleapis.com/Cluster \ --location=REGION \ --project=WORKLOAD_PROJECT_ID \ --filter='dataSourceGcpResourceInfo.gcp_resourcename="projects/WORKLOAD_PROJECT_NUMBER/locations/REGION/clusters/CLUSTER_NAME'使用上一步找到的資料來源 ID 還原叢集:
gcloud beta alloydb clusters restore RESTORED_CLUSTER_ID \ --project=WORKLOAD_PROJECT_ID \ --region=REGION \ --backupdr-data-source=projects/VAULT_PROJECT_ID/locations/REGION/backupVaults/BV_ID/dataSources/DS_ID \ --point-in-time=POINT_IN_TIME更改下列內容:
WORKLOAD_PROJECT_ID:您要還原 AlloyDB 叢集的專案 ID。REGION:您要還原 AlloyDB 叢集的 Google Cloud 區域。RESTORED_CLUSTER_ID:要還原的新 AlloyDB 叢集 ID。VAULT_PROJECT_ID:包含備份保存庫的專案 ID。BV_ID:備份保存庫的 ID。DS_ID:資料來源的 ID。POINT_IN_TIME:要將叢集還原至的特定時間點。範例值為2025-10-10T10:16:10Z
建立主要執行個體
「備份和災難復原」建立叢集後,請為該叢集建立主要執行個體。
建立新的主要執行個體時,您需要指定其設定,包括大小和旗標;Backup and DR 不會將執行個體設定儲存為備份的一部分。請注意,設定不一定要與原始主要執行個體完全一致。
備份和災難復原建立執行個體後,您就可以使用該執行個體存取還原的資料。
設定讀取集區執行個體
視需要設定讀取集區執行個體,完成新叢集的設定。
列出 backup vault 中的備份
使用 gcloud CLI 列出備份並選取要還原的備份:
使用下列指令找出資料來源 ID:
gcloud backup-dr data-source-references fetch-for-resource-type alloydb.googleapis.com/Cluster \ --location=REGION \ --project=WORKLOAD_PROJECT_ID \ --filter='dataSourceGcpResourceInfo.gcp_resourcename="projects/WORKLOAD_PROJECT_NUMBER/locations/REGION/clusters/CLUSTER_NAME "' ```使用下列指令列出備份:
gcloud backup-dr backups list \ --project=VAULT_PROJECT_ID \ --location=REGION \ --backup-vault=BV_ID \ --data-source='projects/VAULT_PROJECT_ID/locations/REGION/backupVaults/BV_ID/dataSources/DS_ID'
更改下列內容:
REGION: Google Cloud 區域。WORKLOAD_PROJECT_ID:AlloyDB 叢集所在的專案 ID。WORKLOAD_PROJECT_NUMBER:AlloyDB 叢集所在的專案編號。CLUSTER_NAME:AlloyDB 叢集名稱。VAULT_PROJECT_ID:包含備份保存庫的專案 ID。BV_ID:備份保存庫的 ID。DS_ID:資料來源的 ID。