如何在 Magalu Cloud 的 DBaaS 上配置 PostgreSQL 集群并实现自动故障转移
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) 进行资源配置
前置条件
在开始之前,你需要:
- 已安装并配置好
mgcCLI - 拥有目标区域的访问权限
- 确定 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"
主要参数
| 参数 | 描述 |
|---|---|
--name | PostgreSQL 集群的名称 |
--user | 数据库管理员用户名 |
--password | 管理员用户的密码 |
--engine-id | PostgreSQL 引擎的标识符 |
--instance-type-id | 与 CLUSTER 兼容的实例类型,决定每个节点的 CPU 和内存 |
--volume.size | 数据卷大小(GiB) |
--volume.type | DBaaS 托管存储类型——具体取值请参见文档 |
执行后,集群将进入资源配置过程,可能需要几分钟时间。
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 的托管基础设施。