3. Catalog 租户配额模型
Catalog 租户作为 OceanBase 数据库中的元数据管理核心,其资源使用必须受到严格约束,以防止单个租户的异常行为影响整个集群的元数据服务稳定性。本章详细拆解 Catalog 租户的五类核心配额:CPU、内存、磁盘、会话数、对象数,并说明它们在审批流与容量告警联动中的角色。
3.1 五维配额总览
下表对比了五类配额的定义、默认行为及告警触发维度,是后续审批流设计的基础数据模型。
| 配额类型 | 计量单位 | 核心作用 | 超限后果 | 告警联动维度 |
|---|---|---|---|---|
| CPU 配额 | 核数 (Cores) | 限制 Catalog 租户可占用的最大 CPU 时间片 | DDL 响应变慢,元数据查询超时 | CPU 使用率 > 80% 持续 5 分钟 |
| 内存配额 | GB | 控制租户级内存池上限(包含缓存与执行内存) | OOM 导致租户无响应或自动重启 | 内存使用率 > 85% 触发预警告警 |
| 磁盘配额 | GB | 限制元数据表空间与日志的持久化存储 | 写入失败,元数据变更无法持久化 | 磁盘使用率 > 90% 触发紧急告警 |
| 会话数配额 | 个 | 限制同时连接到 Catalog 租户的最大会话数 | 新连接被拒绝,应用端报错 | 当前会话数 / 配额 > 95% |
| 对象数配额 | 个 | 限制数据库、表、分区、索引等元数据对象总量 | 无法创建新对象,DDL 失败 | 对象数 / 配额 > 90% 触发容量规划告警 |
设计要点: 对象数配额是 Catalog 租户特有的配额类型,普通用户租户通常不限制对象总数。在审批流中,对象数配额的变更往往需要关联业务侧的元数据增长预测报告。
3.2 配额模型架构图
下图展示了 Catalog 租户配额模型在 OceanBase 集群中的位置,以及五类配额如何与资源池、元数据存储层交互。
3.3 配额变更的审批流联动逻辑
在审批流设计中,五类配额并非独立变更,而是遵循以下联动规则:
- CPU + 内存联动: 通常成对变更,因为元数据操作(如大规模 DDL)同时消耗 CPU 和内存。审批流要求两项配额变更必须绑定在同一工单中。
- 磁盘配额独立审批: 磁盘扩容涉及底层存储资源分配,需要 DBA 确认集群剩余存储空间,审批级别高于 CPU/内存。
- 会话数配额自动扩缩: 当会话数使用率连续 10 分钟超过 95% 时,系统可自动执行预设的扩容策略(如增加 20%),事后补审批单。
- 对象数配额预审批: 对象数增长通常由业务规划驱动,变更申请必须附带未来 3 个月的对象增长预测。
关键约束: 任何单一配额的变更都不得导致其他配额的使用率超过 100%。例如,增加内存配额时,必须同步检查 CPU 配额是否足够支撑新增内存带来的并发处理能力。
3.4 配额模型在告警中的映射
容量告警系统需要将五类配额映射为可监控的指标,并设定分级告警策略:
| 告警级别 | 触发条件 | 响应动作 | 审批流触发 |
|---|---|---|---|
| Info | 配额使用率 > 70% | 记录日志,发送通知给运维人员 | 不触发 |
| Warning | 配额使用率 > 85% | 发送告警,自动创建预审批工单 | 触发预审批流程 |
| Critical | 配额使用率 > 95% | 立即告警,限制部分非关键操作 | 触发紧急变更审批 |
3.5 配额变更的 SQL 示例
在 OceanBase 中,调整 Catalog 租户配额通过 ALTER RESOURCE UNIT 和 ALTER RESOURCE POOL 语句实现。以下是一个典型的 CPU 和内存配额变更示例:
-- 1. 查看当前资源单元配置
SELECT * FROM oceanbase.__all_resource_unit WHERE unit_name = 'catalog_unit';
-- 2. 调整资源单元:CPU 从 4 核增至 8 核,内存从 16G 增至 32G
ALTER RESOURCE UNIT catalog_unit
MAX_CPU = 8,
MIN_CPU = 8,
MEMORY_SIZE = '32G';
-- 3. 将变更应用到 Catalog 租户所在的资源池
ALTER RESOURCE POOL catalog_pool
UNIT = 'catalog_unit';
-- 4. 验证变更生效
SELECT unit_name, max_cpu, memory_size
FROM oceanbase.__all_resource_unit
WHERE unit_name = 'catalog_unit';
注意: 磁盘配额和对象数配额无法通过 SQL 直接修改,需要在 OCP 控制台或通过内部 API 调整。会话数配额可通过
ALTER SYSTEM SET connections_per_server 参数动态调整,但需重启租户才能完全生效。
3.6 配额模型与审批流的集成点
审批流系统需要从配额模型中读取以下关键字段,用于工单的自动填充和校验:
- 当前配额值: 变更前的基准值,用于计算变更幅度。
- 当前使用率: 判断变更的紧急程度,使用率越高,审批优先级越高。
- 历史变更记录: 最近 30 天的变更次数,防止频繁变更导致系统不稳定。
- 关联租户信息: Catalog 租户所属的集群、地域、业务线,用于路由到对应的审批人。
通过将五维配额模型与审批流、容量告警系统深度集成,可以实现 Catalog 租户资源管理的自动化、可追溯和智能化,避免因资源不足或过度分配导致的元数据服务故障。