Resource Manager

Controls CPU allocation, utilization limits, active session pools, parallel limits, idle time limits, runaway query handling (switch, cancel, kill), and I/O (Exadata IORM).

CDB resource plans (shares per PDB) and PDB performance profiles.

Instance caging: CPU_COUNT plus an active plan.

Monitoring: V$RSRC_CONSUMER_GROUP, V$RSRC_PLAN, V$RSRCMGRMETRIC.

BEGIN
  DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA;
  DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP('OLTP_GRP', 'Online users');
  DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP('REPORT_GRP', 'Reports');
  DBMS_RESOURCE_MANAGER.CREATE_PLAN('DAY_PLAN', 'Daytime plan');
  DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE('DAY_PLAN', 'OLTP_GRP', mgmt_p1 => 70);
  DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE('DAY_PLAN', 'REPORT_GRP', mgmt_p1 => 20,
       parallel_degree_limit_p1 => 4, switch_group => 'CANCEL_SQL', switch_time => 600,
       switch_estimate => TRUE, utilization_limit => 40);
  DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE('DAY_PLAN', 'OTHER_GROUPS', mgmt_p1 => 10);
  DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(DBMS_RESOURCE_MANAGER.MODULE_NAME, 'REPORTING_APP', 'REPORT_GRP');
  DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA;
  DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA;
END;
/
ALTER SYSTEM SET resource_manager_plan = 'DAY_PLAN';