本頁面說明如何建立及管理次要執行個體,藉此使用跨區域複製功能。
如要瞭解跨區域複製作業的概念總覽,請參閱「關於跨區域複製作業」。
事前準備
開始使用 Memorystore for Valkey 的跨區域複製功能前,請確認下列事項:
您安裝了 gcloud CLI 488.0.0 以上版本。如要判斷 gcloud CLI 的最新版本,請使用
gcloud components update
指令。您在要放置次要執行個體的區域中,已設定服務網路政策。如要進一步瞭解服務網路政策,請參閱「網路」。
建立次要執行個體
建立次要執行個體時,Memorystore for Valkey 會複製並套用主要執行個體的部分設定,做為次要執行個體設定。詳情請參閱「執行個體設定」。
如要為 Valkey 例項建立次要 Memorystore,請使用 gcloud
memorystore instances create
指令:
gcloud
gcloud memorystore instances create SECONDARY_INSTANCE_ID \ --project=PROJECT_ID \ --location=SECONDARY_REGION_NAME \ --cross-instance-replication-config-role=secondary \ --psc-auto-connections=network=NETWORK,projectId=PROJECT_ID \ --primary-instance=PRIMARY_INSTANCE_RESOURCE_PATH
更改下列內容:
- SECONDARY_INSTANCE_ID:您要建立的次要執行個體 ID。ID 的長度必須介於 1 至 63 個字元之間,而且只能使用小寫英文字母、數字或連字號。開頭必須是小寫英文字母,結尾則須為小寫英文字母或數字。
- PROJECT_ID:您要在其中建立次要執行個體的專案 ID。這就是主要執行個體所在的專案。
- SECONDARY_REGION_NAME:您希望次要執行個體所在的地區。
- NETWORK:用於建立執行個體的虛擬私有雲網路。格式必須為
projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID
。網路 ID 必須與服務連線政策使用的網路 ID 相符。否則建立作業會失敗。 - PRIMARY_INSTANCE_RESOURCE_PATH:主要例項的路徑。例如:
projects/my-project/locations/us-central1/instances/my-primary-instance
。您可以選擇專案中的任何執行個體做為主要執行個體,但該執行個體不得為次要執行個體。
例如:
gcloud memorystore instances create my-secondary-instance \ --project=my-project \ --location=us-central1 \ --cross-instance-replication-config-role=secondary \ --psc-auto-connections=network=projects/my-project/global/networks/default,projectId=my-project \ --primary-instance=projects/my-project/locations/us-central1/instances/my-primary-instance
查看次要執行個體
本節說明如何查看次要執行個體的相關資訊,包括會員欄位,列出複本群組中的主、次要執行個體。
如要查看次要執行個體的相關資訊,請使用 gcloud memorystore instances describe
指令。
gcloud
gcloud memorystore instances describe SECONDARY_INSTANCE_ID \ --project=PROJECT_ID \ --location=SECONDARY_REGION_NAME
更改下列內容:
- SECONDARY_INSTANCE_ID:次要執行個體的 ID
- PROJECT_ID:包含次要執行個體的專案 ID
- SECONDARY_REGION_NAME:次要執行個體所在的區域
執行切換
您可以透過切換將主要和次要執行個體的角色互換。
如要執行切換作業,請使用 gcloud memorystore instances update
指令。
gcloud
gcloud memorystore instances update SECONDARY_INSTANCE_ID \ --project=PROJECT_ID \ --location=SECONDARY_REGION_NAME \ --clear-primary-instance \ --cross-instance-replication-config-role=primary \ --cross-instance-replication-config-secondary-instances=[instance=SECONDARY_INSTANCE_RESOURCE_PATH]
更改下列內容:
- SECONDARY_INSTANCE_ID:您要透過切換作業將其升級為主要執行個體的次要執行個體 ID。
- PROJECT_ID:包含次要執行個體的專案 ID。
- SECONDARY_REGION_NAME:次要執行個體所在的區域。
SECONDARY_INSTANCE_RESOURCE_PATH:次要執行個體的路徑。例如:
projects/my-project/locations/us-central1/instances/my-secondary-instance
。如果您有多個次要例項,請以半形逗號分隔每個例項。例如
[instance=projects/my-project/locations/us-central1/instances/my-first-secondary-instance,instance=projects/my-project/locations/europe-west1/instances/my-second-secondary-instance]
。
假設 my-project
專案包含下列例項:
instance-1
:這個主要執行個體位於us-east1
區域。instance-2
:這個次要執行個體位於asia-east1
區域。instance-3
:這個次要執行個體位於southamerica-east1
區域。
您想將 instance-1
和 instance-2
的角色互換,讓 instance-2
成為新的主執行個體,而 instance-1
則為次要執行個體。
如要這麼做,請使用下列程式碼:
gcloud memorystore instances update instance-2 \ --project=my-project \ --location=asia-east1 \ --clear-primary-instance \ --cross-instance-replication-config-role=primary \ --cross-instance-replication-config-secondary-instances=[instance=projects/my-project/locations/us-east1/instances/instance-1,instance=projects/my-project/locations/southamerica-east1/instances/instance-3]
卸離次要執行個體
將次要執行個體從主要執行個體卸載後,會變成功能完整的獨立執行個體,允許讀取和寫入作業。詳情請參閱「如何管理跨區域複製功能」。
本節的兩個選項可完成相同的工作,也就是將次要執行個體從主要執行個體中分離。如需使用哪個選項的指引,請注意下列事項:
卸離次要執行個體 (選項 1)
如要將次要執行個體從主要執行個體中卸離,請使用 gcloud memorystore instances update
指令。
gcloud
gcloud memorystore instances update SECONDARY_INSTANCE_ID \ --project=PROJECT_ID \ --location=SECONDARY_REGION_NAME \ --cross-instance-replication-config-role=none \ --clear-primary-instance
更改下列內容:
- SECONDARY_INSTANCE_ID:要分離的次要執行個體 ID
- PROJECT_ID:包含次要執行個體的專案 ID
- SECONDARY_REGION_NAME:次要執行個體所在的區域
卸離次要執行個體 (選項 2)
您也可以使用 gcloud memorystore instances update
指令,將多個次要執行個體從主要執行個體中分離,或分離無法使用的次要執行個體。
gcloud
gcloud memorystore instances update PRIMARY_INSTANCE_ID \ --project=PROJECT_ID \ --location=PRIMARY_REGION_NAME \ --remove-cross-instance-replication-config-secondary-instances=[instance=SECONDARY_INSTANCES] \ --cross-instance-replication-config-role=none
更改下列內容:
- PRIMARY_INSTANCE_ID:主要執行個體的 ID。
- PROJECT_ID:包含次要執行個體的專案 ID。
- PRIMARY_REGION_NAME:主要執行個體所在的區域。
- SECONDARY_INSTANCES:要分離的次要執行個體。您可以分離一或多個執行個體。如要分離多個執行個體,請使用以半形逗號分隔的清單。您指定的任何次要例項都必須使用以下格式:
projects/PROJECT_ID/locations/SECONDARY_REGION_NAME/instances/INSTANCE_ID
。
例如:
gcloud memorystore instances update my-primary-instance \ --project=my-project \ --location=us-central1 \ --remove-cross-instance-replication-config-secondary-instances=[instance=projects/my-project/locations/us-west4/instances/my-secondary-instance-1,instance=projects/my-project/locations/asia-southeast2/instances/my-secondary-instance-2] \ --cross-instance-replication-config-role=none
您也可以指定不想卸載的執行個體清單,從而將次要執行個體卸載自主要執行個體。Memorystore for Valkey 會卸離未列入這份清單的任何執行個體。
假設您有下列次要例項:
instance-1
:這個例項位於us-east1
區域。instance-2
:這個例項位於asia-east1
區域。
您想將兩個次要執行個體從 my-primary-instance
卸載。這個主要執行個體位於 us-central1
區域,並包含在 my-project
專案中。
如要分離次要執行個體,請使用下列程式碼:
gcloud memorystore instances update my-primary-instance \ --project=my-project \ --location=us-central1 \ --cross-instance-replication-config-secondary-instances=[] --cross-instance-replication-config-role=none
在這個範例中,由於空值 []
會指派給 --cross-instance-replication-config-secondary-instances
參數,因此 Memorystore for Valkey 會將所有次要執行個體從主要執行個體中分離。
更新執行個體設定
更新 Memorystore for Valkey 執行個體的設定時,您可以只在主要執行個體上變更部分設定。Memorystore for Valkey 會自動將這些變更同步至次要執行個體。
您可以獨立變更主要和次要執行個體的其他設定。Memorystore for Valkey 會在本機套用這些變更,且不會將這些變更與其他執行個體同步。
刪除使用跨區域複寫功能的執行個體
本節說明如何刪除使用跨區域複製功能的主要和次要執行個體。
刪除主要執行個體
刪除主要執行個體之前,您必須卸離或刪除所有次要執行個體。接著,刪除主要執行個體。
為避免誤刪,您無法使用單一指令刪除主要和次要執行個體。
刪除次要執行個體
如要刪除次要執行個體,請按照「刪除執行個體」中的指示操作,將 INSTANCE 換成次要執行個體的 ID。