建立及管理跨區域複製作業

本頁面說明如何建立及管理次要執行個體,藉此使用跨區域複製功能。

如要瞭解跨區域複製作業的概念總覽,請參閱「關於跨區域複製作業」。

事前準備

開始使用 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-1instance-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
  • 如要將多個次要執行個體從主要執行個體中分離,或分離無法使用的次要執行個體,請使用 選項 2

卸離次要執行個體 (選項 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。