2026-03-12 20:23:15
This commit is contained in:
152
idev/example_database_resource_manager_setup.sql
Normal file
152
idev/example_database_resource_manager_setup.sql
Normal file
@@ -0,0 +1,152 @@
|
||||
-- +----------------------------------------------------------------------------+
|
||||
-- | Jeffrey M. Hunter |
|
||||
-- | jhunter@idevelopment.info |
|
||||
-- | www.idevelopment.info |
|
||||
-- |----------------------------------------------------------------------------|
|
||||
-- | Copyright (c) 1998-2012 Jeffrey M. Hunter. All rights reserved. |
|
||||
-- |----------------------------------------------------------------------------|
|
||||
-- | DATABASE : Oracle |
|
||||
-- | FILE : example_database_resource_manager_setup.sql |
|
||||
-- | CLASS : Examples |
|
||||
-- | PURPOSE : Example SQL syntax used setup and configure database resource |
|
||||
-- | manager (DRM). |
|
||||
-- | NOTE : As with any code, ensure to test this script in a development |
|
||||
-- | environment before attempting to run it in production. |
|
||||
-- +----------------------------------------------------------------------------+
|
||||
|
||||
connect system/manager
|
||||
|
||||
set serveroutput on
|
||||
|
||||
Prompt ====================
|
||||
Prompt Clean-Up DRM Area...
|
||||
Prompt ====================
|
||||
Prompt
|
||||
accept a1 Prompt "Hit <ENTER> to continue";
|
||||
|
||||
alter system set resource_manager_plan=system_plan;
|
||||
|
||||
exec DBMS_RESOURCE_MANAGER.create_pending_area;
|
||||
-- exec dbms_resource_manager.DELETE_PLAN_CASCADE('daytime_plan');
|
||||
-- exec dbms_resource_manager.DELETE_PLAN_CASCADE('night_weekend_plan');
|
||||
exec dbms_resource_manager.DELETE_PLAN_DIRECTIVE('daytime_plan', 'oltp_group');
|
||||
exec dbms_resource_manager.DELETE_PLAN_DIRECTIVE('daytime_plan', 'batch_group');
|
||||
exec dbms_resource_manager.DELETE_PLAN_DIRECTIVE('daytime_plan', 'other_groups');
|
||||
exec dbms_resource_manager.DELETE_PLAN_DIRECTIVE('night_weekend_plan', 'oltp_group');
|
||||
exec dbms_resource_manager.DELETE_PLAN_DIRECTIVE('night_weekend_plan', 'batch_group');
|
||||
exec dbms_resource_manager.DELETE_PLAN_DIRECTIVE('night_weekend_plan', 'other_groups');
|
||||
exec dbms_resource_manager.DELETE_PLAN('daytime_plan');
|
||||
exec dbms_resource_manager.DELETE_PLAN('night_weekend_plan');
|
||||
exec dbms_resource_manager.DELETE_CONSUMER_GROUP('oltp_group');
|
||||
exec dbms_resource_manager.DELETE_CONSUMER_GROUP('batch_group');
|
||||
exec DBMS_RESOURCE_MANAGER.validate_pending_area;
|
||||
exec DBMS_RESOURCE_MANAGER.submit_pending_area;
|
||||
|
||||
|
||||
|
||||
Prompt ========================
|
||||
Prompt Creating Pending Area...
|
||||
Prompt ========================
|
||||
Prompt
|
||||
accept a1 Prompt "Hit <ENTER> to continue";
|
||||
|
||||
exec DBMS_RESOURCE_MANAGER.create_pending_area;
|
||||
|
||||
|
||||
Prompt ================================
|
||||
Prompt Create Resource Plan Template...
|
||||
Prompt ================================
|
||||
Prompt
|
||||
accept a1 Prompt "Hit <ENTER> to continue";
|
||||
|
||||
exec DBMS_RESOURCE_MANAGER.create_plan('daytime_plan', 'Plan for daytime processing');
|
||||
exec DBMS_RESOURCE_MANAGER.create_plan('night_weekend_plan', 'Plan for nights and weekends');
|
||||
|
||||
|
||||
Prompt ==========================================
|
||||
Prompt Create Resource Consumer Group Template...
|
||||
Prompt ==========================================
|
||||
Prompt
|
||||
accept a1 Prompt "Hit <ENTER> to continue";
|
||||
|
||||
exec DBMS_RESOURCE_MANAGER.create_consumer_group('oltp_group', 'data entry specialist');
|
||||
exec DBMS_RESOURCE_MANAGER.create_consumer_group('batch_group', 'nightly batch jobs');
|
||||
|
||||
|
||||
|
||||
Prompt ==================================
|
||||
Prompt Create Resource Plan Directives...
|
||||
Prompt ==================================
|
||||
Prompt
|
||||
accept a1 Prompt "Hit <ENTER> to continue";
|
||||
|
||||
exec DBMS_RESOURCE_MANAGER.create_plan_directive('daytime_plan', 'oltp_group', 'Daytime rule for oltp_group users', cpu_p1 => 90, parallel_degree_limit_p1 => 0);
|
||||
|
||||
exec DBMS_RESOURCE_MANAGER.create_plan_directive('daytime_plan', 'batch_group', 'Daytime rule for batch_group users', cpu_p1 => 10, parallel_degree_limit_p1 => 0);
|
||||
|
||||
exec DBMS_RESOURCE_MANAGER.create_plan_directive('daytime_plan', 'other_groups', 'Daytime rules for all other users/groups', cpu_p2 => 100, parallel_degree_limit_p1 => 0);
|
||||
|
||||
exec DBMS_RESOURCE_MANAGER.create_plan_directive('night_weekend_plan', 'oltp_group', 'Night/Weekend rule for oltp_group users', cpu_p1 => 10, parallel_degree_limit_p1 => 0);
|
||||
|
||||
exec DBMS_RESOURCE_MANAGER.create_plan_directive('night_weekend_plan', 'batch_group', 'Night/Weekend rule for batch_group users', cpu_p1 => 90, parallel_degree_limit_p1 => 0);
|
||||
|
||||
exec DBMS_RESOURCE_MANAGER.create_plan_directive('night_weekend_plan', 'other_groups', 'Night/Weekend rules for all other users/groups', cpu_p2 => 100, parallel_degree_limit_p1 => 0);
|
||||
|
||||
|
||||
|
||||
Prompt ==================================
|
||||
Prompt Confirm (Validate) Pending Area...
|
||||
Prompt ==================================
|
||||
Prompt
|
||||
accept a1 Prompt "Hit <ENTER> to continue";
|
||||
|
||||
exec DBMS_RESOURCE_MANAGER.validate_pending_area;
|
||||
|
||||
|
||||
Prompt ======================
|
||||
Prompt Submit Pending Area...
|
||||
Prompt ======================
|
||||
Prompt
|
||||
accept a1 Prompt "Hit <ENTER> to continue";
|
||||
|
||||
exec DBMS_RESOURCE_MANAGER.submit_pending_area;
|
||||
-- exec DBMS_RESOURCE_MANAGER.clear_pending_area;
|
||||
|
||||
|
||||
Prompt =========================================================================
|
||||
Prompt ALLOW USER SCOTT TO SWITCH BETWEEN (oltp_group and batch_group) GROUPS...
|
||||
Prompt =========================================================================
|
||||
Prompt
|
||||
accept a1 Prompt "Hit <ENTER> to continue";
|
||||
|
||||
exec DBMS_RESOURCE_MANAGER_PRIVS.grant_switch_consumer_group('scott', 'oltp_group', FALSE);
|
||||
exec DBMS_RESOURCE_MANAGER_PRIVS.grant_switch_consumer_group('scott', 'batch_group', FALSE);
|
||||
|
||||
|
||||
Prompt =========================================================
|
||||
Prompt ASSIGN USER SCOTT TO INITIAL CONSUMER GROUP OF oltp_group...
|
||||
Prompt =========================================================
|
||||
Prompt
|
||||
accept a1 Prompt "Hit <ENTER> to continue";
|
||||
|
||||
exec DBMS_RESOURCE_MANAGER.set_initial_consumer_group('scott', 'oltp_group');
|
||||
|
||||
|
||||
Prompt ==============================================
|
||||
Prompt SWITCH USER SCOTT INTO THE oltp_group GROUP...
|
||||
Prompt ==============================================
|
||||
Prompt
|
||||
accept a1 Prompt "Hit <ENTER> to continue";
|
||||
|
||||
exec DBMS_RESOURCE_MANAGER.switch_consumer_group_for_user('scott', 'oltp_group');
|
||||
|
||||
|
||||
Prompt ==============================
|
||||
Prompt Switch to DAYTIME_PLAN plan...
|
||||
Prompt ==============================
|
||||
Prompt
|
||||
accept a1 Prompt "Hit <ENTER> to continue";
|
||||
|
||||
ALTER SYSTEM SET resource_manager_plan=daytime_plan;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user