RESOURCE_MANAGER
接口名称 |
描述 |
---|---|
创建资源计划待决区。 |
|
校验资源计划待决区待提交的计划正确性。 |
|
清空待决区,清空后待决区的所有修改均作废。 |
|
提交待决区,提交后待决区的资源计划生效。 |
|
创建资源计划。 |
|
更新资源计划。 |
|
删除资源计划。 |
|
创建资源计划指令。 |
|
更新资源计划指令。 |
|
删除资源计划指令。 |
高级包仅允许在主机的CDB内执行,PDB内部或者备机执行会报错。
- RESOURCE_MANAGER.CREATE_PENDING_AREA
创建资源计划待决区,进入可编辑资源计划的状态。待决区是资源计划表gs_resource_plans和资源计划指令表gs_resource_plan_directives中待提交的改动数据。其中status字段显示为pending的数据对实际资源分配没有影响,在使用submit_pending_area接口提交待决区后,改动才会应用到实际资源分配中,同时status字段的值由pending变为active。整个实例仅有一份待决区数据,且不允许多个会话同时编辑。
RESOURCE_MANAGER.CREATE_PENDING_AREA的函数原型:
RESOURCE_MANAGER.CREATE_PENDING_AREA () returns void
如果其他会话已经创建并持有待决区,此时创建待决区将报错失败。
- RESOURCE_MANAGER.VALIDATE_PENDING_AREA
- 任一资源计划分配的min_cpu之和不能超过环境最大CPU核数。
- max_dynamic_memory之和不能超过CDB的max_dynamic_memory的90%(CDB的内存份额可通过gs_total_memory_detail视图获取)。
- max_shared_memory之和不能超过CDB的max_shared_memory的90%。
- max_connections之和不能超过CDB的max_connections的90%,同时不能超过CDB的max_connections减去CDB已经占用的连接数。
- 正在使用的资源计划为所有open状态的PDB均分配了资源。
如果分配内存/连接数到PDB后将导致CDB的可用内存或连接数资源不足,校验将报错失败。
RESOURCE_MANAGER.VALIDATE_PENDING_AREA的函数原型:
RESOURCE_MANAGER.VALIDATE_PENDING_AREA() returns void
- RESOURCE_MANAGER.CLEAR_PENDING_AREA
清空待决区:把创建待决区时在系统表gs_resource_plans和gs_resource_plan_directives表的状态为pending的待决区数据全部删除,并释放待决区。待决区的所有修改均作废。
RESOURCE_MANAGER.CLEAR_PENDING_AREA的函数原型:
RESOURCE_MANAGER.CLEAR_PENDING_AREA() returns void
- RESOURCE_MANAGER.SUBMIT_PENDING_AREA
提交待决区:生效PendingArea中的待决区计划指令,并释放待决区。如果待决区涉及改动当前使用的计划,提交待决区会使得资源按照新的改动进行分配。提交前会对PendingArea做一次资源配额的校验,具体校验规则与RESOURCE_MANAGER.VALIDATE_PENDING_AREA相同。
RESOURCE_MANAGER.SUBMIT_PENDING_AREA的函数原型:
RESOURCE_MANAGER.SUBMIT_PENDING_AREA() returns void
- RESOURCE_MANAGER.CREATE_RESOURCE_PLAN
创建资源计划:在gs_resource_plans系统表创建一条状态为pending的待决区资源计划。
RESOURCE_MANAGER.CREATE_RESOURCE_PLAN的函数原型:RESOURCE_MANAGER.CREATE_RESOURCE_PLAN( name name, comment text DEFAULT NULL::text )
表2 RESOURCE_MANAGER.CREATE_RESOURCE_PLAN接口参数说明 参数
参数类型
输入/输出
参数值范围
是否必传/默认值
描述
name
name
输入
/
是
计划名称。
comment
text
输入
/
否/空
对计划的描述。
- RESOURCE_MANAGER.UPDATE_RESOURCE_PLAN
更新资源计划:更新PendingArea中指定资源计划的说明。
RESOURCE_MANAGER.UPDATE_RESOURCE_PLAN的函数原型:
RESOURCE_MANAGER.UPDATE_RESOURCE_PLAN( name name, comment text DEFAULT NULL::text )
表3 RESOURCE_MANAGER.UPDATE_RESOURCE_PLAN接口参数说明 参数
参数类型
输入/输出
参数值范围
是否必传/默认值
描述
name
name
输入
/
是
计划名称。
comment
text
输入
/
否/空
对计划的描述。
- RESOURCE_MANAGER.DELETE_RESOURCE_PLAN
删除资源计划:删除PendingArea中指定的资源计划,并删除该计划下所有的资源指令。
RESOURCE_MANAGER.DELETE_RESOURCE_PLAN的函数原型:RESOURCE_MANAGER.DELETE_RESOURCE_PLAN( name name )
表4 RESOURCE_MANAGER.DELETE_RESOURCE_PLAN接口参数说明 参数
参数类型
输入/输出
参数值范围
是否必传/默认值
描述
name
name
输入
/
是
计划名称。
- RESOURCE_MANAGER.CREATE_RESOURCE_PLAN_DIRECTIVE
创建计划指令:在PendingArea中,为指定计划创建一条属于指定PDB的资源配额指令,为该PDB分配资源。
RESOURCE_MANAGER.CREATE_RESOURCE_PLAN_DIRECTIVE的函数原型:
RESOURCE_MANAGER.CREATE_RESOURCE_PLAN_DIRECTIVE ( plan_name name DEFAULT NULL::name, pdb_name name, min_cpu integer DEFAULT (-1), max_dynamic_memory name DEFAULT NULL::name, max_shared_memory name DEFAULT NULL::name, max_connections integer DEFAULT (-1), io_limits integer DEFAULT 0, io_priority name DEFAULT NULL::name, comment text DEFAULT NULL::text )
表5 RESOURCE_MANAGER.CREATE_RESOURCE_PLAN_DIRECTIVE接口参数说明 参数
参数类型
输入/输出
参数值范围
是否必传/默认值
描述
plan_name
name
输入
/
否/ default_resource_plan
计划名称。本字段大小写不敏感。
pdb_name
name
输入
/
是
pdb名称。
min_cpu
integer
输入
>=1
是
保证PDB可用的cpu个数,不允许超过CDB的最大核数。
max_dynamic_memory
name
输入
>=1G,(-1)
否/-1不控制
PDB允许使用的动态内存上限,
不允许超过CDB的max_dynamic_memory(CDB下pv_total_memory_detail系统函数可查)的90%。
max_shared_memory
name
输入
>=256MB,(-1)
否/-1不控制
PDB允许使用的共享缓存上限,
不允许超过CDB的max_shared_memory(CDB下pv_total_memory_detail系统函数可查)的90%。
max_connection
integer
输入
>= 10,(-1)
否/ -1 不控制
PDB允许最大的连接数,
不允许超过CDB的max_connections的90%。
io_limits
integer
输入
>=0
否/0 不控制
每秒触发I/O的次数上限。行存单位是io_control_unit(默认6000)次/s。0表示不控制。
io_priority
name
输入
None/
Low/
Medium/
High
否/None 不控制
当磁盘I/O利用率达到50%时,该字段生效。高中低过去3s内平均I/O速度上限。
- High:生效时,为过去3s内平均I/O速度的50%,最低不得低于50。
- Medium:生效时,为过去3s内平均I/O速度的20%,最低不得低于20。
- Low:生效时,为过去3s内平均I/O速度的10%,最低不得低于10。
comment
text
输入
/
否/空
对计划指令的描述。
- RESOURCE_MANAGER.UPDATE_RESOURCE_PLAN_DIRECTIVE
更新计划指令:在PendingArea中,更新指定计划指定PDB的资源配额。即更新gs_resource_plan_directives系统表中一条状态为Pending的记录。只修改传入的参数,未传入的参数值不被修改。
RESOURCE_MANAGER.UPDATE_RESOURCE_PLAN_DIRECTIVE的函数原型:create or replace function RESOURCE_MANAGER.update_resource_plan_directive ( plan_name name DEFAULT NULL::name, pdb_name name, min_cpu integer DEFAULT NULL::integer, max_dynamic_memory name DEFAULT NULL::name, max_shared_memory name DEFAULT NULL::name, max_connections integer DEFAULT (-1), io_limits integer DEFAULT NULL::integer, io_priority name DEFAULT NULL::name, comment text DEFAULT NULL::text )
表6 RESOURCE_MANAGER.UPDATE_RESOURCE_PLAN_DIRECTIVE接口参数说明 参数
参数
类型
输入/
输出
参数值
范围
是否必传/
默认值
描述
plan_name
name
输入
/
否/ default_resource_plan
计划名称。本字段大小写不敏感。
pdb_name
name
输入
/
是
pdb名称。
min_cpu
integer
输入
>=1
否/NULL不做变更
保证PDB可用的cpu个数,不允许超过CDB的最大核数。
max_dynamic_memory
name
输入
>=1G
否/NULL不做变更
PDB允许使用的动态内存上限,
不允许超过CDB的max_dynamic_memory(CDB下pv_total_memory_detail系统函数可查)的90%。
max_shared_memory
name
输入
>=256MB
否/NULL不做变更
PDB允许使用的共享缓存上限,不允许超过CDB的max_shared_memory(CDB下pv_total_memory_detail系统函数可查)的90%。
max_connection
integer
输入
>= 10
否/-1不做变更
PDB允许最大的连接数,不允许超过CDB的max_connections的90%。
io_limits
integer
输入
>=0
否/NULL不做变更
每秒触发I/O的次数上限。行存单位是io_control_unit(默认6000)次/s。
io_priority
name
输入
None/
Low/
Medium/
High
否/NULL不做变更
当磁盘I/O利用率达到50%时,该字段生效。高中低过去3s内平均I/O速度上限。
- High:生效时,为过去3s内平均I/O速度的50%,最低不得低于50。
- Medium:生效时,为过去3s内平均I/O速度的20%,最低不得低于20。
- Low:生效时,为过去3s内平均I/O速度的10%,最低不得低于10。
comment
text
输入
/
否/NULL不做变更
对计划指令的描述。
- RESOURCE_MANAGER.DELETE_RESOURCE_PLAN_DIRECTIVE
删除计划指令: 在PendingArea中,为指定计划删除一条属于指定PDB的资源配额的指令。
RESOURCE_MANAGER.DELETE_RESOURCE_PLAN_DIRECTIVE的函数原型:
RESOURCE_MANAGER.DELETE_RESOURCE_PLAN_DIRECTIVE ( plan_name name DEFAULT NULL::name, pdb_name name ) returns void
表7 RESOURCE_MANAGER.DELETE_RESOURCE_PLAN_DIRECTIVE接口参数说明 参数
参数类型
输入/输出
是否必传/默认值
描述
plan_name
name
输入
否/ default_resource_plan
计划名称。
pdb_name
name
输入
是
pdb名称。
创建并提交多个资源计划后,可以通过ALTER SYSTEM SET语法变更当前生效的资源计划。