
[실습1] 밤에 데이터 분석 유져를 위한 리소스 매니저 환경을 구현하시오
■ resource manager 구현
a) SYSTEM user로 접속하여 consumer group BATCH_USERS 를 생성한다
SQL> conn system/oracle_4U
SQL> exec dbms_resource_manager.create_pending_area();
SQL> exec dbms_resource_manager.create_consumer_group('BATCH_USERS','Users for Batch');
~> SYS_GROUP 과 OTHER_GROUP 은 이미 만들어져 있기 때문에 BATCH_USERS 만
생성한다.
↑ ↑
sysdba 권한 유져들 리소스 사용에 대한 제한이 높은 유져들
* db 에 만들어져있는 Consumer 그룹확인하는 명령어
select consumer_group
from dba_rsrc_consumer_groups
where consumer_group like '%BATCH%';
- resource plan DAYTIME 을 다음과 같이 생성한 후 view를 통해 확인한다.
A. SYS_GROUP : CPU_P1=100 <
B. BATCH_USERS : CPU_P2=70, MAX_IDEL_BLOCKER_TIME=30
- MAX_IDEL_BLOCKER_TIME : lock wating time 을 30초로 제한하겠다.
C. OTHER_GROUPS : CPU_P2=30, PARALLEL_DEGREE_P1=4
SQL> begin
dbms_resource_manager.create_plan('NIGHTTIME','Plan for night');
end;
/
PL/SQL procedure successfully completed.
select plan
from dba_rsrc_plans;
SQL> begin
dbms_resource_manager.create_plan_directive('NIGHTTIME', 'SYS_GROUP','1st Group Set', cpu_p1=>100);
end;
/
PL/SQL procedure successfully completed.
begin
dbms_resource_manager.create_plan_directive('NIGHTTIME', 'BATCH_USERS','2nd Group set',
cpu_p2=>70,max_idle_blocker_time=>30);
end;
/
begin
dbms_resource_manager.create_plan_directive('NIGHTTIME', 'OTHER_GROUPS','3rd Group',
cpu_p2=>30,parallel_degree_limit_p1=>4);
end;
/
SQL> exec dbms_resource_manager.validate_pending_area();
PL/SQL procedure successfully completed.
SQL> exec dbms_resource_manager.submit_pending_area();
PL/SQL procedure successfully completed.
SQL> select plan, group_or_subplan, cpu_p1, cpu_p2,
parallel_degree_limit_p1 dop, max_idle_blocker_time block_t
from dba_rsrc_plan_directives
where plan='DAYTIME'
order by 1,2;
c) SCOTT user를 consumer group BATCH_USERS로 지정하고
default consumer group으로 지정한다.
SQL> exec dbms_resource_manager_privs.grant_switch_consumer_group('SCOTT', 'BATCH_USERS', true);
PL/SQL procedure successfully completed.
SQL>
SQL> exec dbms_resource_manager.set_initial_consumer_group('SCOTT', 'BATCH_USERS');
PL/SQL procedure successfully completed.
SQL> select username, initial_rsrc_consumer_group
from dba_users
where username='SCOTT';
orcl(SYSTEM) > alter system set resource_manager_plan='nighttime';
System altered.
orcl(SYSTEM) > show parameter resource
orcl(SYSTEM) > alter system set resource_manager_plan='daytime';
orcl(SYSTEM) > alter system set resource_manager_plan='nighttime';
위의 작업을 자동화하는게 다음 단원의 내용