重庆思庄oracle技术分享- SHARES 的计算方式

22 阅读1分钟
  1. SHARES 的核心概念

SHARES 是一个权重值,用于在 PDB 之间 分配 CDB 的总资源。它的关键特点是:

    只比较 PDB 之间的 SHARES 值

    CDB$ROOT 不参与 SHARES 计算

    计算的是相对比例,不是绝对资源量

  1. 计算公式

每个PDB的资源份额 = (该PDB的SHARES / 所有PDB的SHARES总和) × 可用资源

注意:分母是 所有PDB的SHARES之和,不包括 CDB$ROOT。

3.案例

PLUGGABLE_DATABASE    SHARES    PARALLEL_SERVER_LIMIT
-------------------   --------  ---------------------
ORAAUTOTASK      略      100ORAAUTOTASK          略        100 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% 的可用资源

  1. ORA$DEFAULT_PDB_DIRECTIVE 的作用

这是一个默认指令,作用如下:

    任何没有单独指定资源计划的 PDB 都使用这个默认配置

    在计算时,每个使用默认配置的 PDB 都视为有 1 个 SHARE

    如果有 3 个 PDB 使用默认配置,它们总共贡献 3 个 SHARES 到总和中