#配置CDB全局资源管理
本文将介绍容器数据库中的全局资源管理,如需使用PDB本地资源管理请查阅配置资源管理。
# 启用资源管理
# (可选)配置资源上限基数值
请根据是否开启IOPS资源、内存资源以及相应的资源限额规划,按需修改对应的配置参数为合适值。
| 配置参数 | 对应的资源 | 描述 | 默认值 |
|---|---|---|---|
| MAX_BPS | IOPS资源 | 指定容器数据库中PDB允许使用的每秒读写字节数的上限基数。开启CDB全局资源管理时,该值将用于计算目标PDB可用的每秒读写字节数上限,计算公式为MAX_BPS * UTILIZATION_LIMIT | 默认为0,即不对相应资源进行限制 |
| MAX_IOPS | IOPS资源 | 指定容器数据库中PDB每秒IO操作次数的上限基数。开启CDB全局资源管理时,该值将用于计算目标PDB每秒IO操作次数的上限,计算公式为MAX_IOPS * UTILIZATION_LIMIT | 默认为0,即不对相应资源进行限制 |
| CDB_MAX_MEMORY_SIZE | 内存资源 | 指定容器数据库中所有容器(根容器、所有PDB)可用物理内存总和的上限。开启CDB全局资源管理时,该值将用于计算目标PDB可用物理内存的上/下限,计算公式为CDB_MAX_MEMORY_SIZE * 对应百分比 | 默认为0,即可用服务器总内存的80% |
以DBA用户连接并登录根容器。
$ yasql c##sales/********@192.168.1.2:1688 YashanDB SQL Enterprise Edition Release {version_number} x86_64 Connected to: YashanDB Server Enterprise Edition Release {version_number} x86_64 - Linux SQL>查看当前配置。
SHOW PARAMETER MAX_BPS NAME VALUE ---------------------------------------------------------------- ---------------------------------------------------------------- MAX_BPS 0 SHOW PARAMETER MAX_IOPS NAME VALUE ---------------------------------------------------------------- ---------------------------------------------------------------- MAX_IOPS 0 SHOW PARAMETER CDB_MAX_MEMORY_SIZE NAME VALUE ---------------------------------------------------------------- ---------------------------------------------------------------- CDB_MAX_MEMORY_SIZE 0按需修改对应参数的值。
ALTER SYSTEM SET MAX_IOPS=2147483647;
# 创建CDB资源计划指令
调用DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN创建CDB资源计划。
```plsql
EXEC DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN(
'RES_CDB_PLAN',
'RESOURCE PLAN FOR CDB MANAGEMENT');
```
# 为PDB关联资源计划指令
# 方式1:配置专属的CDB资源计划指令
调用DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE为指定PDB创建专属的CDB资源计划指令。
EXEC DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE(
PLAN => 'RES_CDB_PLAN',
PLUGGABLE_DATABASE => 'PDB1',
COMMENT => 'RESOURCE PLAN DIRECTIVE FOR PLUGGABLE DATABASE PDB1',
SHARES => 25,
UTILIZATION_LIMIT => 50,
PARALLEL_SERVER_LIMIT => 100,
MEMORY_LIMIT => 50,
MEMORY_MIN => 20);
# 方式2:为PDB关联CDB资源模板指令
调用DBMS_RESOURCE_MANAGER.CREATE_CDB_PROFILE_DIRECTIVE创建CDB资源模板指令。
EXEC DBMS_RESOURCE_MANAGER.CREATE_CDB_PROFILE_DIRECTIVE( PLAN => 'RES_CDB_PLAN', PROFILE => 'RES_CDB_PROFILE', COMMENT => 'RESOURCE PROFILE DIRECTIVE', SHARES => 10, UTILIZATION_LIMIT => 30, PARALLEL_SERVER_LIMIT => 50, MEMORY_LIMIT => 25, MEMORY_MIN => 10);调用DBMS_RESOURCE_MANAGER.SET_PDB_PROFILE设置PDB与CDB资源模板指令的映射关系。
EXEC DBMS_RESOURCE_MANAGER.SET_PDB_PROFILE( PLUGGABLE_DATABASE => 'PDB1','PDB2', PROFILE => 'RES_CDB_PROFILE');
# 激活并启用资源管理
以安装用户登录数据库安装服务器。
通过yasboot工具修改RESOURCE_MANAGER_PLAN参数,以激活资源计划RES_CDB_PLAN。
# -r参数表示修改失败后回滚集群参数 $ yasboot cluster config set -c yashandb -k RESOURCE_MANAGER_PLAN -v RES_CDB_PLAN -d -r # 可通过如下命令查看RESOURCE_MANAGER_PLAN参数是否已生效于所有节点 $ yasboot cluster config show -c yashandb -q RESOURCE_MANAGER_PLANNote:
RESOURCE_MANAGER_PLAN参数只允许使用yasboot cluster config set命令修改。以DBA用户连接并登录根容器。
$ yasql c##sales/********@192.168.1.2:1688 YashanDB SQL Enterprise Edition Release {version_number} x86_64 Connected to: YashanDB Server Enterprise Edition Release {version_number} x86_64 - Linux SQL>检查RESOURCE_MANAGER_PLAN参数配置是否生效。
show parameter RESOURCE_MANAGER_PLAN; NAME VALUE ---------------------------------------------------------------- ---------------------------------------------------------------- RESOURCE_MANAGER_PLAN RES_CDB_PLAN ALL
通过上述示例成功开启CDB全局资源管理功能后,还可以按需在直连PDB进行本地资源管理配置。
# 查看CDB资源配置
通过DBA_CDB_RSRC_PLANS视图可以查询所有CDB资源计划。
SELECT plan,comments FROM DBA_CDB_RSRC_PLANS;
PLAN COMMENTS
---------------------------------------------------------------- -----------------------------------------------------------
DEFAULT_CDB_PLAN DEFAULT RESOURCE PLAN FOR CDB$ROOT
通过DBA_CDB_RSRC_PLAN_DIRECTIVES视图可以查看所有CDB资源计划指令。
SELECT plan, pluggable_database, shares, utilization_limit, memory_min, memory_limit FROM DBA_CDB_RSRC_PLAN_DIRECTIVES;
PLAN PLUGGABLE_DATABASE SHARES UTILIZATION_LIMIT MEMORY_MIN MEMORY_LIMIT
---------------------------------------------------------------- ---------------------------------------------------------------- ----------- ----------------- ----------- ------------
DEFAULT_CDB_PLAN 1 100 1 100
RES_CDB_PLAN 1 100 1 100
RES_CDB_PLAN PDB1 25 50 20 50
# 查看PDB资源使用情况
通过V$RSRC_PDB可以查看所有PDB的资源使用情况。
SELECT pdb_name, cpu_wait_time, cpu_waits, consumed_cpu_time, sga_bytes, buffer_cache_bytes, shared_pool_bytes FROM V$RSRC_PDB;

