本文整理 GaussDB 部署与设计阶段最容易被问到的几个知识点:磁盘资源保护水位、本地盘 RAID 方案、集中式/分布式各组件的端口规划,以及容量估算的基本思路。内容以通用数据库工程原理为主,方便记忆与查阅。
一、磁盘资源保护水位
GaussDB 有一个磁盘水位保护参数 datastorage_threshold_value_check,其默认阈值为 85%。
当数据库的数据存储磁盘使用率达到这个阈值后,数据库会进入只读模式,所有涉及写操作的 SQL 将无法执行。
需要特别注意的一点:85% 是一个保护水位,它的作用是防止磁盘被写满导致数据库不可用,并不意味着磁盘可以长期使用到 100%。因此在容量规划时,要把这个保护阈值纳入考虑,提前预留余量。
二、本地盘 RAID 方案
在轻量化部署场景中,本地盘的 RAID 规划有明确建议:
| 用途 | RAID 级别 | 磁盘数量 | 空间利用率 | 其他要求 |
|---|---|---|---|---|
| 系统盘 | RAID1 | 2 块 | 50% | 可用空间至少 40GB |
| 数据盘 | RAID10 | 4+2×N 块(N≥0) | 50% | 磁盘数按偶数扩展 |
几个关键点:
- 系统盘用 RAID1:两块盘做镜像,可靠性优先,牺牲一半容量换取冗余。
- 数据盘用 RAID10 :先镜像再条带,兼顾性能与可靠性;磁盘数量按
4+2×N扩展(如 4、6、8、10......)。 - 推荐使用 Hardware RAID(硬 RAID 卡);Software RAID 不支持用于系统盘。
- 如果使用 Dorado 存储,默认采用 RAID6。
三、集中式与分布式组件端口
端口是部署阶段最容易混淆的知识点,集中式和分布式的端口规划差异较大,需要分开记忆。
3.1 集中式
| 用途 | 端口 |
|---|---|
| DN 监听 | 8000 / 8635 |
| DN 主备通信 | 8001 |
| DN 主备心跳 | 8005 |
| ETCD 监听 | 2379 |
| ETCD 内部通信 | 2380 |
| CM Agent-Server | 30200 |
3.2 分布式
| 用途 | 端口 |
|---|---|
| GTM 监听 | 6000 |
| GTM 主备通信 | 6001 |
| CN 监听 | 8000 / 8635 |
| CN 容灾流式复制 | 8001 |
| CM Agent-Server | 5000 |
| OM-Agent | 30170 |
3.3 分布式第 n 个 DN 的端口公式
分布式架构下,第 n 个 DN 实例组的端口按统一规律递增:
| 用途 | 端口公式 |
|---|---|
| CN-DN、DN-DN 连接通道 | 4000+(n-1)×20 |
| DN 主备复制、流式容灾 | 4001+(n-1)×20 |
| DN 间 Streaming 连接请求 | 4002+(n-1)×20 |
| DN 间 Streaming 流控请求 | 4003+(n-1)×20 |
| DN 主备心跳请求 | 4005+(n-1)×20 |
记忆技巧 :尾号依次是 0、1、2、3、5(没有 4);每增加一个 DN 实例组,端口整体加 20。
四、数据库加密方案
GaussDB 提供三种加密方案,分别对应不同的加密位置和取舍:
| 方案 | 加密位置 | 安全性 | 性能 | 依赖 |
|---|---|---|---|---|
| 加密函数 | 内核 SQL 引擎 | 低 | 低 | 无 |
| 透明加密(LDE) | 内核存储引擎 | 中 | 高 | KMS |
| 全密态加密 | 数据库驱动 | 高 | 中 | KMS |
记忆要点:
- 问"性能最高",选透明加密。
- 问"安全性最高、数据库侧不接触明文",选全密态加密。
五、容量估算基本思路
容量规划通常遵循"需求收集 → 分析评估 → 验证调整 → 持续运维"的流程,分为计算资源、存储资源、网络资源三类。
TPC-C 基准测试是评估 OLTP 性能的常用手段,度量单位是 tpmC(每分钟新订单数)。换算关系:
1 tpmC = (1/0.45)/60 tps
其中 0.45 是 TPC-C 中 New-Order 事务占总事务的比例。
tps 估算流程大致为:调研事务要求 → 评估扩展策略 → 评估预留策略 → 评估复杂度差异 → 匹配档位。几个经验系数值得记住:
- 复杂 SQL 多取经验系数 1.6;
- 简单单表操作取经验系数 0.8;
- 存量替换场景的膨胀系数通常取 1.2~1.5。
小结
部署设计阶段的核心是"数字"和"对照关系":
- 85% 磁盘只读保护水位;
- 系统盘 RAID1 、数据盘 RAID10;
- 集中式 CM 端口 30200 ,分布式 CM 端口 5000;
- DN 端口尾号 0/1/2/3/5,每组加 20;
- 加密三方案:函数在 SQL 引擎、透明在存储引擎、全密态在驱动。
把这些数字串成一条线,部署规划类的问题基本就能应对了。