如何在 Magalu Cloud 的 DBaaS 上配置 PostgreSQL 集群并实现自动故障转移

发布: (2025年12月17日 GMT+8 05:32)
6 min read
原文: Dev.to

Source: Dev.to

关系型数据库仍然是现代应用的核心组件。当数据库对业务至关重要时,高可用性不再是一个差异化特性,而是必需的需求。

Magalu Cloud 提供 Database as a Service (DBaaS),它抽象了受管数据库的运维复杂性,包括复制和自动故障转移。

在本文中,你将学习:

  • 什么是 Magalu Cloud DBaaS 中的 PostgreSQL 集群
  • 在何种情况下使用高可用性是有意义的
  • 如何使用 CLI mgc 通过自动故障转移来创建 PostgreSQL 集群

什么是 PostgreSQL 集群

在 Magalu Cloud 的 DBaaS 中,PostgreSQL 集群 是一种 高可用性 配置,由多个数据库节点组成:

  • 1 个主节点,负责读写
  • 待机副本(standby),分布在不同的可用区(Availability Zones)
  • 自动故障转移,在出现故障时将副本提升为主节点

在主节点上进行的更改会持续复制到副本,降低停机时间和数据丢失风险。**可用区(AZ)**之间的分布在同一区域内提供更高的弹性。

何时使用 PostgreSQL 集群

当应用程序满足以下条件时,适合使用具备自动故障转移的 PostgreSQL 集群:

  • 不能容忍长时间的不可用
  • 需要持续的数据复制
  • 业务依赖高可用性
  • 想通过数据库管理来降低运维工作量

Source:

通过 CLI (mgc) 进行资源配置

前置条件

在开始之前,你需要:

  • 已安装并配置好 mgc CLI
  • 拥有目标区域的访问权限
  • 确定 PostgreSQL 引擎以及合适的实例类型

1. 列出可用的引擎

mgc dbaas engines list --status=ACTIVE

记录对应 PostgreSQL 的 id(例如 PostgreSQL 16)。

2. 列出兼容的实例类型

mgc dbaas instance-types list \
  --engine-id="SEU_ENGINE_ID" \
  --status=ACTIVE

每种实例类型定义了 每个数据库节点 的 CPU 和内存。

理解 compatible_product

  • SINGLE_INSTANCE – 只能用于单实例
  • CLUSTER – 只能用于具备高可用性的集群

该字段为 信息性,用于帮助你正确选择 instance-type-id

3. 创建具备自动故障转移的 PostgreSQL 集群

使用 mgc dbaas clusters create 命令创建集群。与单实例不同,集群在创建时即包含多个节点并配置高可用性。只有 compatible_product: CLUSTER 的实例类型才能在此命令中使用。

集群创建示例

mgc dbaas clusters create \
  --name="meu-postgres-cluster" \
  --user="admin" \
  --password="SenhaSegura!" \
  --engine-id="ID_DA_ENGINE_POSTGRESQL" \
  --instance-type-id="ID_DO_INSTANCE_TYPE_CLUSTER" \
  --volume.size=100 \
  --volume.type="CLOUD_NVME20K"

主要参数

参数描述
--namePostgreSQL 集群的名称
--user数据库管理员用户名
--password管理员用户的密码
--engine-idPostgreSQL 引擎的标识符
--instance-type-idCLUSTER 兼容的实例类型,决定每个节点的 CPU 和内存
--volume.size数据卷大小(GiB)
--volume.typeDBaaS 托管存储类型——具体取值请参见文档

执行后,集群将进入资源配置过程,可能需要几分钟时间。

4. 监控集群及实例状态

获取集群详情

mgc dbaas clusters get "ID_DO_CLUSTER"

列出集群节点

mgc dbaas instances list

获取特定节点详情

mgc dbaas instances get "ID_DA_INSTANCIA"

实际的自动故障转移

当集群处于活动状态时,Magalu Cloud 的 DBaaS 会持续监控主节点。出现故障时:

  • 一个副本会自动提升为主节点
  • 集群的端点保持不变
  • 应用程序只需处理重新连接

整个过程无需人工干预。

良好实践

  • 为数据库用户使用强密码
  • 选择与应用负载相匹配的实例类型
  • 通过 CLI 监控实例状态
  • 确保应用能够良好处理重新连接

结论

在 Magalu Cloud 的 DBaaS 上部署具备自动故障转移的 PostgreSQL 集群,可实现 运营简化高可用性 的结合。

使用 CLI mgc,您可以:

  • 识别引擎和实例类型
  • 从创建起即构建具备高可用性的 PostgreSQL 集群
  • 使用平台管理的自动故障转移
  • 以集中方式监控数据库状态

这降低了运营复杂性,使团队能够专注于应用开发,充分利用 Magalu Cloud 的托管基础设施。

Back to Blog

相关文章

阅读更多 »