使用跨区域复制

本页介绍了如何通过创建和使用次要集群来使用跨区域复制。

如需从概念上简要了解跨区域复制,请参阅跨区域复制简介

准备工作

  • 您使用的 Google Cloud 项目必须已启用对 AlloyDB 的访问权限
  • 您必须在所使用的 Google Cloud 项目中拥有以下 IAM 角色之一:
    • roles/alloydb.admin(AlloyDB 管理员预定义 IAM 角色)
    • roles/owner(Owner 基本 IAM 角色)
    • roles/editor(Editor 基本 IAM 角色)

    如果您不具备上述任何角色,请与您的组织管理员联系以请求访问权限。

创建次要集群

当您创建辅助集群时,AlloyDB 会将主集群的部分配置(包括时间点恢复 [PITR] 和备份配置)复制并应用到辅助集群。无论主集群上有多少个读取池实例,AlloyDB 在创建次要集群后都不会向其添加任何读取池实例。

如果您在创建次要集群后更新了主要集群配置,则这些更改不会应用于次要集群。不过,您可以手动更新辅助集群,使其具有主集群中可用的最新配置。

如需创建 AlloyDB 次要集群和次要实例,请按以下步骤操作:

控制台

  1. 在 Google Cloud 控制台中,前往集群页面。

    转到集群

  2. 点击资源名称列中的某个集群。

  3. 概览页面中,点击创建次要集群

  4. 配置次要集群:

    1. 集群 ID 字段中,输入辅助集群的资源 ID。
    2. 为次要集群选择一个与主集群区域不同的区域。
    3. 选择默认的 Google 管理的加密或客户管理的加密密钥 (CMEK) 作为加密方法来加密辅助集群。

    如果您想使用 CMEK 密钥加密此集群,请按以下步骤操作:

    1. 点击高级加密选项
    2. 选择客户管理的加密密钥 (CMEK)
    3. 从随即显示的菜单中选择一个客户管理的密钥。

      Google Cloud 控制台会将此列表限制为与新集群位于同一Google Cloud 项目和区域内的密钥。

      如需使用此列表中未列出的密钥,请按以下步骤操作:

      1. 点击看不到您的密钥?输入密钥资源名称
      2. 密钥资源名称字段中输入资源名称。
      3. 点击保存
      4. 点击继续

    若要将 CMEK 密钥与 AlloyDB 搭配使用,需要进行一些额外的设置。如需了解详情,请参阅使用 CMEK

    如果关联的主实例是使用 CMEK 密钥加密的,您还必须使用 CMEK 密钥加密其次要集群。

  5. 配置次要实例:

    1. 实例 ID 字段中,输入辅助实例的资源 ID。资源 ID 在集群中必须是唯一的。
  6. 点击创建集群

gcloud

如需使用 gcloud CLI,您可以安装并初始化 Google Cloud CLI,也可以使用 Cloud Shell

使用 gcloud alloydb clusters create-secondary 命令:

 gcloud alloydb clusters create-secondary SECONDARY_CLUSTER_ID \
 --region=REGION_ID \
 --primary-cluster=projects/PROJECT_ID/locations/LOCATION_ID/clusters/ PRIMARY_CLUSTER_ID \
 gcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \
 --cluster=SECONDARY_CLUSTER_ID \
 --region=REGION_ID

替换以下内容:

  • SECONDARY_CLUSTER_ID:您要创建的辅助集群的 ID。
  • SECONDARY_INSTANCE_ID:您要创建的辅助实例的 ID。
  • REGION_ID:辅助集群所在区域的 ID,例如 us-central1
  • PROJECT_ID:辅助集群项目的 ID。
  • LOCATION_ID:主集群所在的位置,例如 us-central1
  • PRIMARY_CLUSTER_ID:次级集群关联的主集群的 ID。
  • SECONDARY_CLUSTER_ID:与辅助实例关联的辅助集群的 ID。
  • ALLOWED_PROJECT(可选):您要允许访问实例的项目 ID 或项目编号的逗号分隔列表,例如 my-project-112345my-project-n。如果您的集群使用 Private Service Connect 作为连接到实例的方法,您必须设置允许的项目或编号列表。
  • --no-enable-automated-backup(可选):在次要集群上停用自动备份功能。

如需创建启用了 Private Service Connect 的次级集群和实例,请在创建集群时添加 --enable-private-service-connect 标志,并添加 --allowed-psc-projects 标志以设置您要允许访问实例的项目 ID 或项目编号的逗号分隔列表,例如 my-project-112345my-project-n

 gcloud alloydb clusters create-secondary SECONDARY_CLUSTER_ID \
 --region=REGION_ID \
 --primary-cluster=projects/PROJECT_ID/locations/LOCATION_ID/clusters/ PRIMARY_CLUSTER_ID \
 --enable-private-service-connect
 gcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \
 --cluster=SECONDARY_CLUSTER_ID \
 --region=REGION_ID \
 --allowed-psc-projects=ALLOWED_PROJECT_LIST

替换以下内容:

  • ALLOWED_PROJECT(可选):您要允许访问实例的项目 ID 或项目编号的逗号分隔列表,例如 my-project-112345my-project-n。如果您的集群使用 Private Service Connect 作为连接到实例的方法,您必须设置允许的项目或编号列表。

如需为启用了公共 IP 的集群创建次要实例,请添加 --assign-inbound-public-ip=ASSIGN_IPV4 参数。

 gcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \
 --cluster=SECONDARY_CLUSTER_ID \
 --region=REGION_ID \
  --assign-inbound-public-ip=ASSIGN_IPV4

(可选)将 CIDR 网段的逗号分隔列表(例如 64.233.160.0/16)传递给 --authorized-external-networks 参数,以在实例上设置已获授权的外部网络。

查看次要集群

如需查看 AlloyDB 辅助集群的详细信息,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往集群页面。

    转到集群

  2. 点击资源名称列中的辅助集群。

  3. 概览页面中,查看有关您的辅助集群的所有详细信息。

更新辅助实例

您可以更新辅助实例,以添加、修改或删除数据库标志。您还可以扩缩辅助实例的机器类型。

在次要实例上配置数据库标志

如需添加、修改或删除数据库标志,请完成以下步骤:

控制台

  1. 在 Google Cloud 控制台中,前往集群页面。

    转到集群

  2. 资源名称列中,点击要修改的次要集群。

  3. 概览页面中,前往集群中的实例,选择次要实例,然后点击修改次要实例

  4. 在实例中添加、修改或删除数据库标志:

    添加标志

    1. 如需向实例添加数据库标志,请点击添加标志
    2. 新数据库标志列表中选择一个标志。
    3. 为标志提供值。
    4. 点击完成

    修改标志

    1. 如需修改实例中存在的数据库标志,请展开相应数据库标志,然后在修改数据库标志部分中修改现有标志的值。
    2. 点击完成

    删除标记

    1. 如需从实例中删除数据库标志,请选择相应标志,然后点击删除图标。
    2. 点击完成
  5. 点击更新辅助账号

gcloud

使用 gcloud alloydb instances update 命令更改辅助实例的数据库标志。

 gcloud alloydb instances update SECONDARY_INSTANCE_ID \
  --database-flags FLAGS_LIST \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID

替换以下内容:

  • SECONDARY_INSTANCE_ID:辅助实例的 ID。
  • FLAGS_LIST:一个或多个数据库标志规范的英文逗号分隔列表。每个规范都由标志的名称、等号 (=) 和要分配给标志的值组成。对于不带值的数据库标志,请提供标志名称并后接一个等号 (=)。
  • REGION_ID:辅助实例所在的区域,例如 us-central1
  • CLUSTER_ID:放置辅助实例的集群的 ID。
  • PROJECT_ID:辅助集群所在项目的 ID。

扩缩次要实例的机器类型

如需扩缩辅助实例的机器类型,请完成以下步骤:

控制台

  1. 在 Google Cloud 控制台中,前往集群页面。

    转到集群

  2. 资源名称列中,点击要修改的次要集群。

  3. 概览页面中,前往集群中的实例部分,然后点击修改辅助实例

    请注意,如果该页面报告集群状态维护,则无法执行此操作。状态变为准备就绪后,该操作将再次可用。

  4. 选择机器类型。

  5. 点击更新辅助账号

gcloud

使用 gcloud alloydb instances update 命令更改辅助实例的机器类型。

 gcloud alloydb instances update SECONDARY_INSTANCE_ID \
  --cpu-count=CPU_COUNT \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID

替换以下内容:

  • SECONDARY_INSTANCE_ID:您要更新的辅助实例的 ID。
  • CPU_COUNT:您希望实例具有的 vCPU 数量。有效值包括:

    • 2(2 个 vCPU,16 GB RAM)
    • 4(4 个 vCPU、32 GB RAM)
    • 8(8 个 vCPU,64 GB RAM)
    • 16(16 个 vCPU,128 GB RAM)
    • 32(32 个 vCPU,256 GB RAM)
    • 64(64 个 vCPU、512 GB RAM)
  • REGION_ID:实例所在的区域。

  • CLUSTER_ID:实例所在的集群的 ID。

  • PROJECT_ID:集群所在项目的 ID。

如果该命令返回包含 invalid cluster state MAINTENANCE 字样的错误消息,则表示集群正在进行常规维护。这会暂时禁止实例重新配置。集群恢复为 READY 状态后,再次运行该命令。

如需查看集群的状态,请参阅查看集群详情

将读取池实例添加到辅助集群

如需将读取池实例添加到辅助集群,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往集群页面。

    转到集群

  2. 资源名称列中,点击要向其添加读取池实例的次要集群。

  3. 概览页面中,前往集群中的实例部分,然后点击添加读取池

  4. 配置读取池实例:

    1. 读取池实例 ID 字段中,输入读取池实例的 ID。
    2. 节点数字段中,输入节点数。读取池实例中的节点数决定了实例的总计算容量。集群中所有读取池实例的节点数量不得超过 20 个。
    3. 选择机器类型。
    4. 可选:为实例设置自定义标志。对于每个标志,请执行以下操作:

      1. 点击添加标志
      2. 新数据库标志列表中选择一个标志。
      3. 为标志提供值。
      4. 点击完成
  5. 点击添加读取池

提升次要集群

在提升次要集群之前,请执行以下步骤,验证次要集群是否已应用从主集群收到的所有事务:

  1. 停止对主集群的所有写入操作。
  2. 请完成以下步骤,检查辅助集群的复制状态:

    1. 在 Google Cloud 控制台中,前往集群页面。

      转到集群

    2. 在集群列表中,点击您要提升为主集群的次要集群的名称。

    3. 在集群详情页面上,点击监控

    4. 监控列表中,选择次要实例。它会在列表中显示为辅助:INSTANCE_NAME

    5. 在指标列表中,找到从主实例进行复制的延迟时间图表。

    6. 确认图表显示的延迟时间非常短。

      理想的延迟值为 0。如果延迟时间大于 0,您仍然可以提升次要集群,但可能会丢失已提交到主集群的部分近期事务。

    7. 在指标列表中,找到复制状态图表。

    8. 确认图表中表示的所有节点的值均为 streaming

如需将次要集群提升为主要集群,请按以下步骤操作:

控制台

  1. 在 Google Cloud 控制台中,前往集群页面。

    转到集群

  2. 资源名称列中,点击要提升为主集群的辅助集群。

  3. 概览页面中,点击提升集群

  4. 在随即显示的对话框中,输入您的次要集群 ID,以确认您要提升该集群。

  5. 点击升级

    集群升级后,概览页面上的 Type: Secondary cluster (highly available) 字段会更新为 Type: Highly available with read pools

gcloud

使用 gcloud alloydb clusters promote 命令:

 gcloud alloydb clusters promote SECONDARY_CLUSTER_ID \
 --region=REGION_ID \
 --project=PROJECT_ID \

替换以下内容:

  • SECONDARY_CLUSTER_ID:您要提升为主集群的次要集群的 ID。
  • REGION_ID:辅助集群所在区域的 ID,例如 us-central1
  • PROJECT_ID:辅助集群项目的 ID。

执行切换

在执行切换之前,请验证主实例和辅助实例所属的两个区域是否均处于在线状态,以及实例是否处于正常运行状态。如需了解详情,请参阅使用 AlloyDB 系统数据分析信息中心监控实例

使用 gcloud alloydb clusters switchover 命令:

   gcloud alloydb clusters switchover SECONDARY_CLUSTER_ID \
   --region=REGION_ID \
   --project=PROJECT_ID \

替换以下内容:

  • SECONDARY_CLUSTER_ID:您要提升为主集群的次要集群的 ID。
  • REGION_ID:辅助集群所在区域的 ID,例如 us-central1
  • PROJECT_ID:辅助集群项目的 ID。

后续步骤