本頁說明如何執行 Memorystore for Redis Cluster 備份作業。閱讀本頁面之前,請先熟悉備份。
事前準備
確認您或所用的使用者帳戶具備執行所需動作的必要權限。
「Redis 管理員」和「Redis 編輯者」角色可以執行所有備份作業。Redis 檢視者角色可以查看及匯出備份。
啟動隨選備份
使用下列指令執行隨選備份:
gcloud
gcloud redis clusters create-backup INSTANCE_ID \ --backup-id=BACKUP_ID \ --ttl=TTL_PERIOD \ --project=PROJECT_ID \ --region=REGION
更改下列內容:
- INSTANCE_ID 是 Memorystore for Redis Cluster 執行個體的 ID。
- BACKUP_ID 是備份的 ID,例如
december-2024-backup
- TTL_PERIOD 指定備份的存留時間 (TTL)。備份達到 TTL 限制後,系統會自動刪除。
設定天數。例如,
14d
。最小值為 1 天。 如未指定,預設值為 100 年。 - PROJECT_ID 是您的專案 ID。
- REGION 是叢集所在的地區 (例如
us-east1
)。
指令會傳回作業名稱,格式如下:
projects/PROJECT_ID/locations/REGION/operations/operation-UID
您可以使用 gcloud redis operations describe
指令檢查作業狀態:
gcloud redis operations describe projects/PROJECT_ID/locations/REGION/operations/operation-UID
您也可以使用 gcloud redis operations list
指令,列出專案和區域中的所有作業。
設定自動備份排程
建立新叢集時,您可以設定每日備份排程,也可以在現有叢集上啟用每日備份排程。
建立啟用自動備份排程的叢集
以下範例說明如何建立新叢集時,設定每日備份時間表。如要瞭解建立叢集時可用的其他選項,請參閱「建立執行個體」。
gcloud
gcloud redis clusters create INSTANCE_ID \ --automated-backup-mode=ENABLED \ --automated-backup-start-time=START_TIME \ --automated-backup-ttl=RETENTION_POLICY
更改下列內容:
- INSTANCE_ID 是您要建立的 Memorystore for Redis Cluster 執行個體 ID。
- START_TIME A 指定開始備份的時間。請以 24 小時制指定時間,格式為
HH:00
(UTC 時間)。例如:23:00
。 RETENTION_POLICY:指定每個備份的保留天數。 設為天數,例如
7d
。最長不得超過 365 天,預設為 35 天。即使叢集遭到刪除,備份檔仍會保留一段時間,最多 365 天。如要在保留期限到期前移除備份,請手動刪除備份。
在現有叢集上啟用排定的備份
gcloud
gcloud redis clusters update INSTANCE_ID \ --automated-backup-mode=enabled \ --automated-backup-start-time=START_TIME \ --automated-backup-ttl=RETENTION_POLICY
更改下列內容:
- INSTANCE_ID 是要更新的 Memorystore for Redis Cluster 執行個體 ID。
START_TIME 指定開始備份時間的時間戳記。 時間戳記必須精確到小時,並指定備份開始的一小時時間範圍,例如
2024-01-01T01:00:00Z
。RETENTION_POLICY:指定每個備份的保留天數。 設為天數,例如
7d
。即使叢集已刪除,備份仍會在保留期限內保留。 如要在保留期限到期前移除備份,請手動刪除備份。
停用排定的備份
使用下列指令停用叢集的排程備份:
gcloud
gcloud redis clusters update INSTANCE_ID \ --automated-backup-mode=disabled
將 INSTANCE_ID 替換為要更新的 Memorystore for Redis Cluster 執行個體 ID。
備份和更新叢集作業之間的並行
在下列情況下,叢集的更新作業和維護作業可以取消進行中的備份作業:
- 如果叢集正在更新,備份作業要求會遭到拒絕。
- 如果正在進行備份作業,更新叢集的作業可能會取消並導致備份作業失敗。
- 在極少數情況下,維護和備份作業可能會同時進行,導致該執行個體略過備份作業。
列出並說明備份
以下各節將說明如何尋找可用備份的相關資訊。
列出備份集合
備份集合包含叢集下的所有備份。請使用下列指令,列出指定專案和區域中的備份集合:
gcloud
gcloud redis clusters backup-collections list \ --project=PROJECT_ID \ --region=REGION
更改下列內容:
- REGION 是叢集所在的地區 (例如
us-east1
)。 - PROJECT_ID 是您的專案 ID。
指令會傳回類似下列內容的備份集合清單:
BACKUP_COLLECTION_NAME CLUSTER_NAME CLUSTER_UID 6d9e1ff4-0f89-4c0a-a941-155dd4c3a213 projects/PROJECT_ID/locations/REGION/clusters/cluster1 6e539aed-ee7b-4eea-83ad-b4715b1ef160 dda2f551-b416-47ff-b1cf-684e00483dc9 projects/PROJECT_ID/locations/REGION/clusters/cluster2 57130520-636c-4ac7-ad7e-86f7cfb32838
列出備份集合下的備份
使用下列指令列出備份集合中的備份:
gcloud
gcloud redis clusters backups list \ --backup-collection=BACKUP_COLLECTION --project=PROJECT_ID \ --region=REGION
更改下列內容:
- BACKUP_COLLECTION 是備份集合的名稱。
- REGION 是叢集所在的地區,例如
us-east1
。 - PROJECT_ID 是您的專案 ID。
指令會傳回類似下列內容的備份清單:
BACKUP_NAME STATE CREATE_TIME EXPIRE_TIME backup-1 ACTIVE 2024-11-10T03:52:40.899882388Z 2124-11-10T03:53:02.856981736Z backup-2 ACTIVE 2024-11-11T03:48:22.137134936Z 2124-11-11T03:48:44.130735425Z
描述備份
使用下列指令擷取特定備份作業的相關資訊:
gcloud
gcloud redis clusters backups describe BACKUP_NAME \ --backup-collections=BACKUP_COLLECTION --project=PROJECT_ID \ --region=REGION
更改下列內容:
- BACKUP_NAME 是備份名稱,例如
2024-05-01-10-15-00
。 - BACKUP_COLLECTION 是備份集合的名稱。
- REGION 是叢集所在的地區,例如
us-east1
。 - PROJECT_ID 是您的專案 ID。
指令會傳回類似下列內容的備份資訊:
backupFiles: - createTime: '2024-11-10T03:52:55.539Z' fileName: 3d2774dab822137c5bac9386f3fa69ee4c73b928.rdb sizeBytes: '694879680' - createTime: '2024-11-10T03:52:54.742Z' fileName: 7f5d99faaefc63ed8292a71da2552db3b06cdcff.rdb sizeBytes: '694925906' - createTime: '2024-11-10T03:52:54.972Z' fileName: 0aac1092a3fb81515aefb6b2421f31eb346c3961.rdb sizeBytes: '694784169' cluster: projects/PROJECT_ID/locations/us-east1/clusters/cluster1 clusterUid: 57130520-636c-4ac7-ad7e-86f7cfb32838 createTime: '2024-11-10T03:52:40.899882388Z' expireTime: '2124-11-10T03:53:02.856981736Z' name: projects/PROJECT_ID/locations/us-east1/backupCollections/dda2f551-b416-47ff-b1cf-684e00483dc9/backups/december-2024-backup nodeType: REDIS_HIGHMEM_MEDIUM shardCount: 3 state: ACTIVE totalSizeBytes: '2084589755'
刪除備份
使用下列指令刪除備份:
gcloud
gcloud redis clusters backups delete BACKUP_NAME \ --backup-collection=BACKUP_COLLECTION --project=PROJECT_ID \ --region=REGION
更改下列內容:
- BACKUP_NAME 是備份名稱,例如
2024-05-01-10-15-00
。 - BACKUP_COLLECTION 是備份集合的名稱。
- REGION 是叢集所在的地區,例如
us-east1
。 - PROJECT_ID 是您的專案 ID。
將備份匯出至儲存空間值區
您可以將備份檔匯出至 Cloud Storage 值區。目的地 bucket 必須是區域 bucket,且必須與備份位於相同區域。Memorystore for Redis Cluster 必須具備存取 Cloud Storage 值區的權限,以及在值區內建立資料夾和物件的權限。
以下步驟說明如何匯出備份。
Memorystore for Redis Cluster 必須具備存取目標 Cloud Storage 值區的權限。授予 Memorystore for Redis Cluster 服務代理 Cloud Storage 資源的存取權。
Memorystore for Redis Cluster 服務代理會使用下列命名格式:
service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
將 PROJECT_NUMBER 替換為叢集或備份所在的專案專案編號。
授予服務代理程式可提供
storage.buckets.get
、storage.objects.create
、storage.objects.delete
和storage.folders.create
權限的角色。舉例來說,下列指令會將指定 bucket 的Storage Admin
角色授予 Memorystore for Redis Cluster 服務代理程式:gcloud
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com \ --role=roles/storage.admin
更改下列內容:
- BUCKET_NAME 是目標 bucket 的名稱。
- PROJECT_NUMBER 是服務代理程式名稱中使用的專案編號。
使用
gcloud redis clusters backups export
指令將備份匯出至 Cloud Storage bucket。gcloud
gcloud redis clusters backups export BACKUP_NAME \ --region=REGION \ --backup-collection=BACKUP_COLLECTION \ --gcs-bucket=BUCKET
更改下列內容:
- BACKUP_NAME 是 Memorystore for Redis Cluster 備份的名稱。
- BACKUP_COLLECTION 是備份集合的名稱。
- REGION 是備份集合所在的地區,例如
us-east1
。 - BUCKET_NAME 是 Cloud Storage 值區,沒有
gs://
前置字串。
bucket 必須是區域 bucket,且必須與備份位於相同區域。Memorystore for Redis Cluster 必須具備存取 Cloud Storage 值區的權限,以及在值區內建立資料夾和物件的權限。
從備份還原資料
如要從備份還原資料,您可以從同一專案中的受管理備份植入新叢集,也可以從儲存空間值區中的 RDB 檔案植入新叢集。如要從 RDB 檔案植入叢集,Memorystore for Redis Cluster 必須具備檔案存取權。
從備份檔為新叢集提供種子資料
以下範例說明如何將備份資料匯入新叢集。備份必須與新叢集位於相同區域。建立叢集的主體必須具備備份的 redis.backups.get
權限。
如要瞭解建立叢集時可用的其他選項,請參閱「建立執行個體」。
gcloud
gcloud redis clusters create INSTANCE_ID \ --import-managed-backup=BACKUP_NAME \ --region=REGION
更改下列內容:
- INSTANCE_ID 是您要建立的 Memorystore for Redis Cluster 執行個體 ID。
- BACKUP_NAME 是管理備份的名稱。例如:
projects/PROJECT_ID/locations/REGION/backupCollections/BACKUP_COLLECTION_ID/backups/BACKUP_ID
。 - REGION 是叢集所在的地區,例如
us-east1
。
從儲存空間值區中的 RDB 檔案為新叢集提供種子
以下範例說明如何將 Cloud Storage 值區中的 RDB 檔案資料匯入新叢集。bucket 必須是與新叢集位於相同區域的區域 bucket,或是其中一個區域與新叢集相同的雙區域 bucket。
如要從 Cloud Storage 中的 RDB 檔案植入叢集,您必須授予 Memorystore for Redis Cluster 存取 Cloud Storage bucket 和物件的權限,然後執行建立作業。
Memorystore for Redis Cluster 必須具備存取 Cloud Storage 物件的權限。授予 Memorystore for Redis Cluster 服務代理 Cloud Storage 資源的存取權。
Memorystore for Redis Cluster 服務代理會使用下列命名格式:
service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
將 PROJECT_NUMBER 替換為您要建立新叢集的專案的專案編號。
授予服務代理程式可提供
storage.buckets.get
和storage.objects.get
權限的角色。舉例來說,下列指令會將Storage Admin
角色授予 Cloud Storage 值區:gcloud
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=serviceAccount:service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com --role=roles/storage.admin
更改下列內容:
- BUCKET_NAME 是 RDB 檔案所在的值區名稱。
- PROJECT_NUMBER 是服務代理程式名稱中使用的專案編號。
下列範例說明如何將 Cloud Storage 值區中的 RDB 檔案匯入新叢集。如要瞭解建立叢集時可用的其他選項,請參閱「建立執行個體」。
gcloud
gcloud redis clusters create INSTANCE_ID \ --import-gcs-object-uris=URI \ --region=REGION
更改下列內容:
- INSTANCE_ID 是您要建立的 Memorystore for Redis Cluster 執行個體 ID。
- URI 是一或多個以半形逗號 (
,
) 分隔的 Cloud Storage URI。例如:gs://my-bucket/folder/file1.rdb,gs://my-bucket/folder/file2.rdb
。 - REGION 是叢集所在的地區,例如
us-east1
。
Cloud Monitoring 指標
您可以使用 Cloud Monitoring 指標監控近期的備份和匯入作業。如需 Memorystore for Redis Cluster 備份作業可用的指標清單,請參閱「備份指標」。