- SHARES 的核心概念
SHARES 是一个权重值,用于在 PDB 之间 分配 CDB 的总资源。它的关键特点是:
只比较 PDB 之间的 SHARES 值
CDB$ROOT 不参与 SHARES 计算
计算的是相对比例,不是绝对资源量
- 计算公式
每个PDB的资源份额 = (该PDB的SHARES / 所有PDB的SHARES总和) × 可用资源
注意:分母是 所有PDB的SHARES之和,不包括 CDB$ROOT。
3.案例
PLUGGABLE_DATABASE SHARES PARALLEL_SERVER_LIMIT
------------------- -------- ---------------------
ORADEFAULT_PDB_DIRECTIVE 1 0
PDB1 2 100
PDB2 2 25
PDB3 1 ?
ORA$AUTOTASK:系统自动任务,通常单独管理,不参与 PDB 间的 shares 计算
ORA$DEFAULT_PDB_DIRECTIVE:为所有没有单独指定 shares 的 PDB 提供默认值,它本身不是一个 PDB
PDB1、PDB2、PDB3:真正的 PDB,参与计算
总 SHARES = PDB1(2) + PDB2(2) + PDB3(1) = 5
PDB1: 2/5 = 40% 的可用资源
PDB2: 2/5 = 40% 的可用资源
PDB3: 1/5 = 20% 的可用资源
- ORA$DEFAULT_PDB_DIRECTIVE 的作用
这是一个默认指令,作用如下:
任何没有单独指定资源计划的 PDB 都使用这个默认配置
在计算时,每个使用默认配置的 PDB 都视为有 1 个 SHARE
如果有 3 个 PDB 使用默认配置,它们总共贡献 3 个 SHARES 到总和中