반응형

Oracle Database 10g의 신기능인 자동 퍼포먼스 통계(AWR:Automatic Workload Repository)에 대해서 설명합니다.
1. 개요
2. 통계 수집하기 위한 설정
3. AWR의 정보의 확인 방법
3-1. 데이터·딕쇼내리
3-2. 리포트
4. AWR를 관리하기 위한 패키지
- AWR의 디폴트의 설정의 확인&변경
5. AWR가 사용하는 디크스 영역의 확인 방법
6. AWR의 snapshot를 백업( 각DB에 이행) 하는 방법에 관해서
이러한 기능의 근본이 되는 통계 정보는 자동 수집/관리를 일괄로 행하고 있습니다. 이 통계 정보의 자동 수집/관리 기능을 자동 작업의 부담량·리포지터리(repository)(AWR)라고 합니다.
AWR에서는 정기적(디폴트에서는 1시간 간격)으로 다양한 통계를 수집하여 그 집합을 snapshot 으로서 일정 보존 기간(디폴트에서는 1주간) 분의 스냅샷을 보존하고 있습니다.
AWR의 snapshot는 백그라운드 프로세스 MMON(Memory Monitor)와 MMNL(Memory Monitor Light)가 취득·딕쇼내리의 변경을 실시하고 있습니다.
※ 대부분의 통계를 MMON가 수집합니다만, UNDO 어드바이저나 ASH(Active Session History)의 정보 등 일부의 정보는 MMNL가 수집합니다.

또 시스템이 안정되어 있는 상태(적절한 퍼포먼스)로 운용하고 있는 타이밍(개시와 종료)의 snapshot를 「baseline」로서 등록해 두는것이 가능합니다.「baseline」는 보존 기간이 지나도 삭제되지 않습니다.시스템의 퍼포먼스가 돌연 열화 했을 경우 등에 「baseline」과 비교하는 것에 의해서 퍼포먼스 열화의 원인을 빠르게 발견할 수 있을 가능성이 있습니다.
1. 개요
Oracle Database 10g에서는 튜닝을 자동화 또는 어드바이스하기 위한 다수의 기능을 제공하고 있습니다.
- Automatic Database Diagnostic Monitor
- SQL Access Advisor
- SQL Tuning Advisor
- UNDO 어드바이저
- 세그먼트(segment)·어드바이저
어떠한 이유로 STATISTICS_LEVEL를 BASIC로 설정해 있는 경우에는 초기화 파라미터 TIMED_STATISTICS를 TRUE로 설정해 주세요.
2.통계를 수집하기 위한 설정
AWR에서 snapshot로서 수집하는 퍼포먼스 통계에는 많은 시간 통계(대기 시간이나 CPU 사용시간등)이 있습니다.그 때문에, 초기화 파라미터 STATISTICS_LEVEL를 TYPICAL(디폴트) 또는 ALL로 설정해 주세요.
3. AWR의 정보의 확인 방법
AWR의 정보를 확인하는 방법은 이하의 3개의 방법이 있습니다:
- Oracle Enterprise Manager Database Control(GUI)
- 데이터·딕셔너리
- 리포트
3-1. 데이터·딕셔너리
DBA_HIST_ 를 접두사로 한 데이터·딕셔너리·뷰로 AWR로 수집했다
snapshot에 격납되고 있는 데이터를 검색할 수 있습니다.
* DBA_HIST_SNAPSHOT 뷰로 관리하고 있는 snapshot의 취득기간이나 ID를 알수있다.
* DBA_HIST_WR_CONTROL 뷰로 AWR의 제어 정보
(snapshot 취득 간격이나 snapshot의 보존 기간등)을 확인할 수 있습니다.
3-2. 리포트
수집된 snapshot를 바탕으로 리포트를 작성할 수 있습니다.
AWR의 리포트와 STATSPACK리포트의 다른점은
<例>
SQL> select * from dba_hist_wr_control;

DBID SNAP_INTERVAL RETENTION
---------- -------------------- --------------------
244064102 +00000 01:00:00.0 +00007 00:00:00.0
상기예에서는 snapshot를 취득하는 간격이 1시간,
snapshot의 보관 유지 기간이 1주(7일간)로 설정되어 있는 것을 알 수 있습니다.
AWR의 설정은 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS로 실시합니다.
예를 들면 상기의 환경에서 AWR에 의한 snapshot의 취득을 일절 실시하지 않게 설정하기 위해서는 이하를 실행합니다:
BEGIN
DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS
( retention => 0,
interval => 0,
dbid => 244064102
);
END;
/

snapshot 취득 간격 보관 유지 기간을 0으로 하면 DBA_HIST_WR_CONTROL의 표시는 아래와 같습니다. :

SQL> select * from dba_hist_wr_control;

DBID SNAP_INTERVAL RETENTION
---------- -------------------- --------------------
244064102 +40150 00:00:00.0 +40150 00:00:00.0

※ INTERVAL가 40150일(110년)이 되는 것은 사양상의 동작입니다.
※ 릴리스 1(10.1)의 메뉴얼에는 interval ZERO 를 지정했을 경우 최대치의 1년이 사용됩니다.라고 기술되어 있습니다만, 이것은 잘못된 기술입니다.릴리스 2 (10.2)의 메뉴얼에는 interval ZERO를 지정했을 경우, 자동 및 수동에 의한 snapshot는 무효가 됩니다로 수정되어 있습니다.
4.AWR를 관리하기 위한 패키지
AWR는 DBMS_WORKLOAD_REPOSITORY 패키지의 프로시저로 관리할 수 있습니다. AWR의 snapshot의 자동 수집의 주기나 보존 기간을 변경하거나 baseline의 등록이나 메인터넌스를 실시하는 등이 가능합니다.
- AWR의 설정을 확인&변경
AWR의 현재의 설정은 DBA_HIST_WR_CONTROL로 확인할 수 있습니다.
AWR에 의해서 취득한 snapshot의 데이터는 SYSAUX표 영역에 저장됩니다.
AWR가 사용하고 있는 디스크 영역은 이하의 SQL문으로 확인할 수 있습니다:
SQL> select space_usage_kbytes
from v$sysaux_occupants
where occupant_name='SM/AWR';
5.AWR가 사용하는 디스크 영역의 확인 방법
현상(Oracle Database 10g Release1(10.1.0) 및 Oracle Database 10g Release2 (10.2.0))에서는 AWR의 스냅샷·데이터를 EXP/IMP등에서 추출하는 방법은 없습니다.
Oracle10.2 의 이하의 메뉴얼에 추출할 수 있다고 기재가 있습니다만,이 기재는 문서의 버그입니다.
5.AWR의 snapshot를 백업(각각DB에 이행) 하는 방법에 관해서
==>추가내용
취득된 스냅샷은 DBA_HIST_SNPASHOP에서 확인 할수 있습니다.
반응형

+ Recent posts