本页面介绍了如何通过创建和使用次要集群来使用跨区域复制。
如需从概念上大致了解跨区域复制,请参阅跨区域复制简介。
准备工作
- 您使用的 Google Cloud 项目必须已启用为可访问 AlloyDB。
- 您必须在所使用的 Google Cloud 项目中拥有以下 IAM 角色之一:
roles/alloydb.admin
(AlloyDB Admin 预定义 IAM 角色)roles/owner
(Owner 基本 IAM 角色)roles/editor
(Editor 基本 IAM 角色)
如果您不拥有上述任何角色,请与组织管理员联系以申请访问权限。
创建次要集群
当您创建次要集群时,AlloyDB 会复制一些主集群配置(包括时间点恢复 [PITR] 和备份配置)并应用于次要集群。无论主集群上有多少个读取池实例,AlloyDB 在创建次要集群后都不会向其添加任何读取池实例。
如果您在创建次要集群后更新主集群配置,则这些更改不会应用于次要集群。不过,您可以手动更新次要集群,以获得主集群中可用的最新配置。
您最多可以为一个主集群创建五个次要集群。所有次要集群都从单个主实例复制数据。如果您提升某个次要集群,该次要集群会成为独立的主集群。
下图说明了如何在 us-east4
中提升名为 cluster-2
的次要集群:
图 1. 提升次要集群的示例。
如需创建 AlloyDB 次要集群和次要实例,请按以下步骤操作:
控制台
在 Google Cloud 控制台中,前往集群页面。
在资源名称列中点击相应集群。
在概览页面中,点击创建次要集群。
配置次要集群:
- 在集群 ID 字段中,输入次要集群的资源 ID。
- 为您的次要集群选择一个与主集群区域不同的区域。
- 选择默认的 Google 管理的加密或客户管理的密钥 (CMEK) 作为加密方法,以对您的次要集群进行加密。
如果您想使用 CMEK 密钥对此集群进行加密,请按以下步骤操作:
- 点击高级加密选项。
- 选择客户管理的加密密钥 (CMEK)。
从显示的菜单中选择一个客户管理的密钥。
Google Cloud 控制台会将此列表限制为与新集群位于同一Google Cloud 项目和区域中的密钥。
如需使用此列表中未列出的密钥,请按以下步骤操作:
- 点击没有看到您的密钥?输入密钥资源名称。
- 在密钥资源名称字段中输入资源名称。
- 点击保存。
- 点击继续。
将 CMEK 密钥与 AlloyDB 搭配使用需要进行一些额外设置。如需了解详情,请参阅使用 CMEK。
如果关联的主实例是使用 CMEK 密钥进行加密的,则您也必须使用 CMEK 密钥对其次要集群进行加密。
配置次要实例:
- 在实例 ID 字段中,输入次要实例的资源 ID。资源 ID 在集群中必须是唯一的。
点击创建集群。
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-1
,12345
,my-project-n
”。如果您的集群使用 Private Service Connect 作为连接到实例的方法,您必须设置允许的项目或编号列表。--no-enable-automated-backup
(可选):停用次要集群上的自动备份创建。
如需创建启用了 Private Service Connect 的次要集群和实例,请在创建集群时添加 --enable-private-service-connect
标志,并添加 --allowed-psc-projects
标志以设置要允许访问实例的项目 ID 或项目编号的英文逗号分隔列表,例如“my-project-1
, 12345
,my-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-1
,12345
,my-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 次要集群的详细信息,请按以下步骤操作:
在 Google Cloud 控制台中,前往集群页面。
在资源名称列中点击相应的次要集群。
在概览页面中,查看有关次要集群的所有详细信息。
更新次要实例
您可以更新次要实例,以添加、修改或删除数据库标志。您还可以扩缩次要实例的机器类型。
在次要实例上配置数据库标志
如需添加、修改或删除数据库标志,请完成以下步骤:
控制台
在 Google Cloud 控制台中,前往集群页面。
在资源名称列中,点击要修改的次要集群。
在概览页面中,前往集群中的实例,选择相应的次要实例,然后点击修改辅助实例。
对实例添加、修改或删除数据库标志:
添加标志
- 如需向实例添加数据库标志,请点击添加标志。
- 从新增数据库标志列表中选择一个标志。
- 为标志提供值。
- 点击完成。
修改标志
- 如需修改实例中存在的数据库标志,请展开相应的数据库标志,然后在修改数据库标志部分中修改现有标志的值。
- 点击完成。
删除标志
- 如需从实例中删除数据库标志,请选择相应标志,然后点击删除图标。
- 点击完成。
点击 Update secondary(更新次要实例)。
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。
扩缩次要实例的机器类型
如需扩缩次要实例的机器类型,请完成以下步骤:
控制台
在 Google Cloud 控制台中,前往集群页面。
在资源名称列中,点击要修改的次要集群。
在概览页面中,前往集群中的实例部分,然后点击修改辅助实例。
请注意,如果页面报告的集群状态为维护,则此操作不可用。在状态更改为准备就绪后,此操作会再次可用。
选择机器类型。
点击 Update secondary(更新次要实例)。
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
状态后,再次运行该命令。
如需查看集群状态,请参阅查看集群详细信息。
将读取池实例添加到次要集群
如需将读取池实例添加到次要集群,请按以下步骤操作:
在 Google Cloud 控制台中,前往集群页面。
在资源名称列中,点击要向其中添加读取池实例的次要集群。
在概览页面中,前往集群中的实例部分,然后点击添加读取池。
配置读取池实例:
- 在读取池实例 ID 字段中,输入读取池实例的 ID。
- 在节点数字段中,输入节点数。读取池实例中的节点数决定了实例的总计算容量。一个集群中的所有读取池实例最多可以有 20 个节点。
- 选择机器类型。
可选:为实例设置自定义标志。对于每个标志,请执行以下操作:
- 点击添加标志。
- 从新增数据库标志列表中选择一个标志。
- 为标志提供值。
- 点击完成。
点击添加读取池。
提升次要集群
在提升次要集群之前,请执行以下步骤,以验证次要集群是否已应用了从主集群收到的所有事务:
- 停止对主集群的所有写入操作。
完成以下步骤,检查次要集群的复制状态:
在 Google Cloud 控制台中,前往集群页面。
在集群列表中,点击要提升的次要集群的名称。
在集群详细信息页面上,点击监控。
在监控列表中,选择相应的次要实例。它会在列表中显示为次要:INSTANCE_NAME。
在指标列表中,找到从主实例进行复制的延迟时间图表。
确认图表显示最短的延迟时间。
理想的延迟时间值为
0
。如果延迟时间超过0
,您仍然可以提升次要集群,但可能会丢失在主集群中已提交的某些近期事务。在指标列表中,找到复制状态图表。
确认图表中表示的所有节点的值均为
streaming
。
如需将次要集群提升为主要集群,请按以下步骤操作:
控制台
在 Google Cloud 控制台中,前往集群页面。
在资源名称列中,点击要提升为主集群的次要集群。
在概览页面中,点击提升集群。
在随即显示的对话框中,输入您的次要集群 ID 以确认您要提升集群。
点击提升。
将集群提升后,概览页面上的 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 系统数据分析信息中心监控实例。
如果您在有多个次要集群的情况下执行切换,则会发生以下变化:
- 接收切换命令的次要集群会成为主集群。
- 之前的主集群会成为次要集群,并从新的主集群进行复制。
- 所有其他次要集群都切换为从新的主集群进行复制。
下图说明了从 us-central1
中的 cluster-1
到 us-east4
中的 cluster-2
的切换:
图 2. 切换到两个次要集群之一的示例。
如需执行切换,请按以下步骤操作:
控制台
在 Google Cloud 控制台中,前往集群页面。
在资源名称列中,点击要切换为主集群的次要集群。
在概览页面中,点击切换。
在随即显示的对话框中,输入您的次要集群 ID 以确认您要切换集群。
点击切换。
集群切换后,概览页面上的 Type: Secondary cluster(类型:次要集群)字段会更新为
Cluster Type: Primary Cluster(集群类型:主集群)和 Cluster Type: Secondary Cluster(集群类型:次要集群)。
gcloud
使用 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。