DBMS_RESOURCE_MANAGER

DBMS_RESOURCE_MANAGER 패키지의 기본 개념과 패키지 내의 프러시저를 사용하는 방법을 설명합니다.

개요

Tibero에서는 DBMS_RESOURCE_MANAGER를 이용해서 업무의 성격에 따라 그룹을 나누어 자원을 분배할 수 있습니다. 예를 들어 자원이 제한된 상황에서 OLTP 업무와 batch 업무를 동시에 진행하고 싶을 때, batch 업무에 쓰이는 자원을 OLTP 업무로 몰아주어서 OLTP 업무의 효율성을 높일 수 있습니다.

DBMS_RESOURCE_MANAGER은 CPU 자원과 같이 업무를 수행하는 데에 필요한 자원을 업무 성격에 따라 원하는대로 효율적으로 재분배하는 기능을 제공하는 패키지입니다. DBMS_RESOURCE_MANAGER 패키지 내의 프러시저를 이용하여, RESOURCE PLAN을 데이터베이스에 추가하고 자원 재분배 방식을 원하는대로 설정해서 적용할 수 있습니다.

다음은 DBMS_RESOURCE_MANAGER 패키지의 특징입니다.

  • USE_RESOURCE_MANAGER 파라미터가 Y로 설정되어 있어야 패키지가 제대로 동작합니다.

  • DBMS_SCHEDULER 패키지의 사용할 때 DBA 권한이 필요하며, 추가된 RSRC PLAN은 오직 PLAN의 소유자만 실행하거나 변경할 수 있습니다.

  • 자원 재분배 방식을 결정하는 CONSUMER GROUP, CONSUMER GROUP MAPPING, RSRC PLAN DIRECTIVE를 추가할 수 있습니다.

  • 현재 데이터베이스에 추가된 RSRC PLAN, CONSUMER GROUP, RSRC PLAN DIRECTIVE 등의 정 보는 다음 뷰를 통해 확인이 가능합니다.

  • RSRC PLAN 변경 히스토리가 PLAN 이름 및 TIME 정보와 함께 기록되어 AUDIT 뷰를 통해 확인이 가능합니다.

DBA_RSRC_PLANS
DBA_RSRC_CONSUMER_GROUPS
DBA_RSRC_PLAN_DIRECTIVES
DBA_RSRC_AUDIT
  • 적용되어 있는 ACTIVE PLAN 관련 RSRC PLAN, CONSUMER GROUP, SESSION 등의 정보는 다음 뷰를 통해 확인이 가능합니다.

V$SESSION V$RSRC_PLAN
V$RSRC_CONSUMER_GROUPS V$RSRC_SESSION_INFO
  • 여러 개의 RSRC PLAN, CONSUMER GROUP, RSRC PLAN DIRECTIVE를 추가할 수 있으며 그 중 하 나의 PLAN을 적용할 수 있습니다.

  • 아무런 RSRC PLAN이 적용되지 않았을 때는 하나의 DEFAULT CONSUMER GROUP을 가진 DEFAULT RESOURCE PLAN이 적용되어 있습니다.

  • PLAN 적용 시 어떤 CONSUMER GROUP에도 속하지 않는 세션들은 전부 DEFAULT CONSUMER GROUP에 속하게 됩니다.

  • DEFAULT CONSUMER GROUP의 최소 자원 보장을 위해 모든 CONSUMER GROUP에 할당된 CPU의 합이 100 미만이어야 합니다.

프러시저

본 절에서는 DBMS_RESOURCE_MANAGER 패키지에서 제공하는 프러시저를 알파벳 순으로 설명합니다.

CREATE_CONSUMER_GROUP

새로운 CONSUMER GROUP을 생성하는 프러시저입니다.

CREATE_CONSUMER_GROUP 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

consumer_group

  • 생성할 CONSUMER GROUP의 이름

  • 이미 생성된 다른 CONSUMER GROUP 이름과 겹치지 않아야 함

category

CONSUMER GROUP이 속하는 CATEGORY를 지정하기 위한 파라미터

comments

CONSUMER GROUP의 목적 등을 부가적으로 서술하기 위한 파라미터

  • 예제

CREATE_PLAN

새로운 RESOURCE PLAN을 생성하는 프러시저입니다.

CREATE_PLAN 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

plan

  • 생성할 RESOURCE PLAN의 이름

  • 이미 생성된 다른 PLAN 이름과 겹치지 않아야 함

comments

RESOURCE PLAN의 목적 등을 부가적으로 서술하기 위한 파라미터

  • 예제

CREATE_PLAN_DIRECTIVE

새로운 RESOURCE PLAN DIRECTIVE를 생성하는 프러시저입니다.

CREATE_PLAN_DIRECTIVE 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

plan

PLAN DIRECTIVE가 적용되어야 하는 대상 RESOURCE PLAN의 이름

group_or_subplan

PLAN DIRECTIVE가 적용되어야 하는 대상 CONSUMER GROUP 혹은 SUBPLAN의 이름

comments

PLAN DIRECTIVE의 목적 등을 부가적으로 서술하기 위한 파라미터

mgmt_p1

PLAN DIRECTIVE에서 목표로 하는 CPU 자원의 사용률을 백분율로 나타낸 값

  • 예제

CREATE_SIMPLE_PLAN

8개 이하의 CONSUMER GROUP과 목표 CPU 사용량을 주어서 바로 간단한 RESOURCE PLAN을 생성 하는 프러시저입니다.

CREATE_SIMPLE_PLAN 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

simple_plan

  • 생성할 RESOURCE PLAN의 이름

  • 이미 생성된 다른 PLAN 이름과 겹치지 않아야 함

consumer_group1

  • 생성할 1번째 CONSUMER GROUP의 이름

  • 이미 생성된 다른 CON SUMER GROUP 이름과 겹치지 않아야 함

consumer_group2

  • 생성할 2번째 CONSUMER GROUP의 이름

  • 이미 생성된 다른 CON SUMER GROUP 이름과 겹치지 않아야 함

consumer_group3

  • 생성할 3번째 CONSUMER GROUP의 이름

  • 이미 생성된 다른 CON SUMER GROUP 이름과 겹치지 않아야 함

consumer_group4

  • 생성할 4번째 CONSUMER GROUP의 이름

  • 이미 생성된 다른 CON SUMER GROUP 이름과 겹치지 않아야 함

consumer_group5

  • 생성할 5번째 CONSUMER GROUP의 이름

  • 이미 생성된 다른 CON SUMER GROUP 이름과 겹치지 않아야 함

consumer_group6

  • 생성할 6번째 CONSUMER GROUP의 이름

  • 이미 생성된 다른 CON SUMER GROUP 이름과 겹치지 않아야 함

consumer_group7

  • 생성할 7번째 CONSUMER GROUP의 이름

  • 이미 생성된 다른 CON SUMER GROUP 이름과 겹치지 않아야 함

consumer_group8

  • 생성할 8번째 CONSUMER GROUP의 이름

  • 이미 생성된 다른 CON SUMER GROUP 이름과 겹치지 않아야 함

파라미터
설명

group1_percent

1번째 CONSUMER GROUP에게 지정할 목표 CPU 자원 사용량을 백분율로 나타낸 값

group2_percent

2번째 CONSUMER GROUP에게 지정할 목표 CPU 자원 사용량을 백분율로 나타낸 값

group3_percent

3번째 CONSUMER GROUP에게 지정할 목표 CPU 자원 사용량을 백분율로 나타낸 값

group4_percent

4번째 CONSUMER GROUP에게 지정할 목표 CPU 자원 사용량을 백분율로 나타낸 값

group5_percent

5번째 CONSUMER GROUP에게 지정할 목표 CPU 자원 사용량을 백분율로 나타낸 값

group6_percent

6번째 CONSUMER GROUP에게 지정할 목표 CPU 자원 사용량을 백분율로 나타낸 값

group7_percent

7번째 CONSUMER GROUP에게 지정할 목표 CPU 자원 사용량을 백분율로 나타낸 값

group8_percent

8번째 CONSUMER GROUP에게 지정할 목표 CPU 자원 사용량을 백분율로 나타낸 값

  • 예제

DELETE_CONSUMER_GROUP

기존에 생성된 CONSUMER GROUP을 삭제할 때 사용하는 프러시저입니다.

DELETE_CONSUMER_GROUP 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

consumer_group

  • 삭제할 CONSUMER GROUP의 이름

  • 대상 CONSUMER GROUP이 존재해야 함

  • 예제

DELETE_PLAN

기존에 생성된 RESOURCE PLAN을 삭제할 때 사용하는 프러시저입니다.

DELETE_PLAN 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

plan

  • 삭제할 RESOURCE PLAN의 이름

  • 대상 RESOURCE PLAN이 존재해야 함

  • 예제

DELETE_PLAN_DIRECTIVE

기존에 생성된 PLAN DIRECTIVE를 삭제할 때 사용하는 프러시저입니다.

DELETE_PLAN_DIRECTIVE 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

plan

삭제할 PLAN DIRECTIVE가 대상으로 하는 RESOURCE PLAN의 이름

group_or_subplan

삭제할 PLAN DIRECTIVE가 대상으로 하는 CONSUMER GROUP 혹은 SUBPLAN의 이름

  • 예제

SET_CONSUMER_GROUP_MAPPING

기존에 생성된 CONSUMER GROUP에 세션을 지정하는 MAPPING RULE을 만들 때 사용하는 프러시저 입니다.

SET_CONSUMER_GROUP_MAPPING 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

attribute

어떤 항목을 기준으로 세션을 CONSUMER GROUP으로 MAPPING 할 것인지를 지정

value

어떤 값을 기준으로 세션을 CONSUMER GROUP으로 MAPPING 할 것인지를 지정

consumer_group

생성할 MAPPING RULE이 대상으로 하는 CONSUMER_GROUP의 이름

  • 지원되는 attribute

attribute
설명

MODULE_NAME_AC

TION

세션에 지정된 module name과 action 항목이 같은 session을 지정된 CON SUMER GROUP으로 매핑

MODULE_NAME

세션에 지정된 module name 항목이 같은 session을 지정된 CONSUMER GROUP으로 매핑

DATABASE_USER

세션에 지정된 database user 항목이 같은 session을 지정된 CONSUMER GROUP으로 매핑

CLIENT_PROGRAM

세션에 지정된 program 항목이 같은 session을 지정된 CONSUMER GROUP으로 매핑

CLIENT_OS_USER

세션에 지정된 os user 항목이 같은 session을 지정된 CONSUMER GROUP으로 매핑

CLIENT_MACHINE

세션에 지정된 machine 항목이 같은 session을 지정된 CONSUMER GROUP으로 매핑

CLIENT_ID

세션에 지정된 client identifier 항목이 같은 session을 지정된 CONSUMER GROUP으로 매핑

  • 예제

SWITCH_PLAN

기존에 생성된 RESOURCE PLAN을 데이터베이스에 적용할 때 사용하는 프러시저입니다.

SWITCH_PLAN 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

switch_plan

  • 적용할 RESOURCE PLAN의 이름

  • 대상 RESOURCE PLAN이 존재해야 함

  • 예제

UPDATE_CONSUMER_GROUP

기존에 생성된 CONSUMER GROUP의 정보를 변경할 때 사용하는 프러시저입니다.

UPDATE_CONSUMER_GROUP 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

consumer_group

  • 변경할 CONSUMER GROUP의 이름

  • 대상 CONSUMER GROUP이 존재해야 함

new_category

CONSUMER GROUP이 속하는 CATEGORY를 지정하기 위한 파라미터

new_comments

CONSUMER GROUP의 목적 등을 부가적으로 서술하기 위한 파라미터

  • 예제

UPDATE_PLAN

기존에 생성된 RESOURCE _PLAN의 정보를 변경할 때 사용하는 프러시저입니다.

UPDATE_PLAN 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

plan

  • 변경할 RESOURCE PLAN의 이름

  • 대상 RESOURCE PLAN이 존재해야 함

new_comments

RESOURCE PLAN의 목적 등을 부가적으로 서술하기 위한 파라미터

  • 예제

UPDATE_PLAN_DIRECTIVE

기존에 생성된 PLAN_DIRECTIVE의 정보를 변경할 때 사용하는 프러시저입니다.

UPDATE_PLAN_DIRECTIVE 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

plan

변경할 PLAN DIRECTIVE가 대상으로 하는 RESOURCE PLAN의 이름

group_or_subplan

변경할 PLAN DIRECTIVE가 대상으로 하는 CONSUMER_GROUP 또는SUBPLAN의 이름

new_comments

PLAN DIRECTIVE의 목적 등을 부가적으로 서술하기 위한 파라미터

mgmt_p1

PLAN DIRECTIVE에서 목표로 하는 CPU 자원의 사용률을 백분율로 나타낸 값

  • 예제

Last updated