>  기사  >  데이터 베이스  >  Oracle AWR의 관리 및 유지보수에 대한 자세한 설명

Oracle AWR의 관리 및 유지보수에 대한 자세한 설명

小云云
小云云원래의
2017-12-11 15:10:461714검색

AWR은 자동 워크로드 저장소(Automatic Workload Repository)의 약자로, 중국어로 자동 워크로드 데이터 아카이브라고 합니다. AWR의 관리는 주로 스냅샷 및 기준선 관리를 위한 것입니다. 예를 들어 스냅샷 간격을 설정하고, 스냅샷을 삭제하고, 스냅샷 보존 시간을 설정합니다. 기준선의 경우 기준선의 생성, 삭제, 자동 생성 등을 말합니다. 이 기사에서는 주로 이 두 부분의 내용을 설명합니다. 이 글은 주로 Oracle AWR(Automatic Workload Data Archive)의 관리 및 유지 관리에 대한 관련 정보를 샘플 코드를 통해 자세히 소개합니다. 이는 학습이나 업무가 필요한 모든 사람에게 확실한 참고 학습 가치를 제공합니다. 아래 에디터와 함께 배워보겠습니다.

1. 스냅샷 관리

 기본적으로 Oracle 데이터베이스는 매시간 스냅샷을 생성하고 워크로드 라이브러리에 8일간의 통계 정보를 보관합니다. 필요한 경우 dbms_workload_repository 프로그램을 사용하여 스냅샷 등을 수동으로 생성, 삭제 또는 수정할 수 있습니다. 스냅샷은 OEM 및 dbms_workload_repository 패키지를 사용하여 관리할 수 있습니다.

1. 스냅샷 수동 생성

 스냅샷 생성이 완료되면 데이터 딕셔너리 DBA_HIST_SNAPSHOT에서 스냅샷 관련 정보를 모두 확인할 수 있습니다.

BEGIN
 DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();
END;
/

SELECT snap_id,
   dbid,
   begin_interval_time,
   end_interval_time
FROM  dba_hist_snapshot
ORDER BY end_interval_time DESC;

 SNAP_ID  DBID BEGIN_INTERVAL_TIME   END_INTERVAL_TIME
---------- ---------- ---------------------------- --------------------------
  164 41924548 14-APR-17 09.38.19.467 AM 14-APR-17 10.51.21.886 AM
  163 41924548 14-APR-17 09.00.10.470 AM 14-APR-17 09.38.19.467 AM
  162 41924548 14-APR-17 08.00.07.242 AM 14-APR-17 09.00.10.470 AM
  161 41924548 14-APR-17 07.00.04.120 AM 14-APR-17 08.00.07.242 AM

2. 스냅샷 삭제

   다음 프로세스는 snap_id가 162에서 164인 스냅샷을 삭제합니다. 41924548이 지정되지 않으면 현재 기본 데이터베이스가 사용됩니다

BEGIN
 DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE (low_snap_id => 162,
       high_snap_id => 164, dbid => 41924548);
END;
/

3. 스냅샷 보존 간격 수정

--查看当前的保留策略,如下,为缺省值,采集间隔为1小时,保留8天
SQL> select * from dba_hist_wr_control;

  DBID SNAP_INTERVAL  RETENTION   TOPNSQL
---------- -------------------- ------------------ ----------
 41924548 +00000 01:00:00.0 +00008 00:00:00.0 DEFAULT

--下面将其修改为保留5天,采集间隔为30分钟,topnsql为50条
BEGIN
 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention => 10*24*60,
     interval => 30, topnsql => 50, dbid => 41924548);
END;
/

--查看修改后的结果
SQL> select * from dba_hist_wr_control;

  DBID SNAP_INTERVAL  RETENTION   TOPNSQL
---------- -------------------- ------------------ ----------
 41924548 +00000 00:30:00.0 +00010 00:00:00.0 50

2. 기준선 관리

AWR 기준선은 수동 또는 자동으로 생성 및 삭제할 수 있습니다. 생성 및 삭제합니다. 자동 기준선 생성의 경우 기준선 샘플을 먼저 생성하여 자동 기준선 생성을 달성해야 합니다. 주요 설명은 다음과 같습니다.

1. 기준선 생성

 기준선 생성은 스냅샷에 의존하므로 생성 전에 필요한 시간 범위의 snap_id를 얻어야 하며, 동시에 DBA_HIST_SNAPSHOT 이후에 데이터 사전을 쿼리하여 얻을 수 있습니다. 베이스라인 생성이 완료되면 데이터 딕셔너리 DBA_HIST_BASELINE 정보에서 베이스라인 관련 정보를 조회할 수 있습니다.

BEGIN
 DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE (start_snap_id => 160,
     end_snap_id => 161, baseline_name => 'peak_baseline',
     dbid => 41924548, expiration => 10);
END;
/

SQL> SELECT baseline_id,
 2   baseline_name,
 3   baseline_type,
 4   expiration,
 5   creation_time
 6 FROM dba_hist_baseline;

BASELINE_ID BASELINE_NAME   BASELINE_TYPE EXPIRATION CREATION_
----------- ----------------------- ------------- ---------- ---------
   1 peak_baseline   STATIC    10 14-APR-17
   0 SYSTEM_MOVING_WINDOW MOVING_WINDOW   07-APR-17

--基于特定时间创建基线,如下示例
BEGIN
 DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE (
  start_time  => TO_DATE ('2017-04-14 6:00:00', 'yyyy-mm-dd hh24:mi:ss'),
  end_time  => TO_DATE ('2017-04-14 8:00:00', 'yyyy-mm-dd hh24:mi:ss'),
  baseline_name => 'peak_baseline2',
  expiration  => 10);
END;
/

  위의 예에서는 peak_baseline이라는 기준선이 160~161 범위와 10일의 보존 시간으로 생성되었습니다. 10일이 지나면 기준선이 삭제되고 해당 스냅샷도 삭제됩니다. 만료 기간이 지정된 경우 기준 및 해당 스냅샷이 영구적으로 보존됩니다.

2. 기준선 삭제

BEGIN
 DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE (baseline_name => 'peak_baseline',
     cascade => FALSE, dbid => 41924548);
END;
/

  위의 예에서는 peak_baseline이라는 기준선이 삭제되고, cascade가 false로 지정되어 기준선이 삭제되면 해당 스냅샷이 삭제되지 않습니다.

3. 기준선 이름 변경

BEGIN
 DBMS_WORKLOAD_REPOSITORY.RENAME_BASELINE (
     old_baseline_name => 'peak_baseline',
     new_baseline_name => 'peak_mondays',
     dbid => 41924548);
END;
/

--验证结果
SQL> SELECT baseline_id,
 2   baseline_name,
 3   baseline_type,
 4   expiration,
 5   creation_time
 6 FROM dba_hist_baseline;

BASELINE_ID BASELINE_NAME   BASELINE_TYPE EXPIRATION CREATION_
----------- ----------------------- ------------- ---------- ---------
   1 peak_mondays   STATIC    10 14-APR-17
   0 SYSTEM_MOVING_WINDOW MOVING_WINDOW   07-APR-17

  위 예에서는 기준선 이름을 peak_baseline에서 peak_mondays로 변경합니다.

4. 기본 이동 기간 기준 보존 값 수정

--查看缺省的window_size
SELECT baseline_name, baseline_type, moving_window_size
FROM dba_hist_baseline
WHERE baseline_name = 'SYSTEM_MOVING_WINDOW';

BASELINE_NAME   BASELINE_TYPE MOVING_WINDOW_SIZE
------------------------ ------------- ------------------
SYSTEM_MOVING_WINDOW  MOVING_WINDOW     8

BEGIN
 DBMS_WORKLOAD_REPOSITORY.MODIFY_BASELINE_WINDOW_SIZE (
     window_size => 7,
     dbid => 41924548);
END;
/

--window_size为天,只能够小于等于当前快照保留时间,否则报错,如下:

ERROR at line 1:
ORA-13541: system moving window baseline size (864000)
greater than retention (691200)
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 686
ORA-06512: at line 2

5. 기준 샘플 관리

단일 기준 템플릿 만들기

BEGIN
 DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (
  start_time  => TO_DATE ('2017-04-14 17:00:00', 'yyyy-mm-dd hh24:mi:ss'),
  end_time  => TO_DATE ('2017-04-14 19:00:00', 'yyyy-mm-dd hh24:mi:ss'),
  baseline_name => 'baseline_140414',
  template_name => 'template_140414',
  expiration  => 10,
  dbid   => 41924548);
END;
/

--如果创建基线样本时间小于当前时间,则收到如下错误
ERROR at line 1:
ORA-13537: invalid input for create baseline template (end_time, end_time is less than SYSDATE)
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 768
ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 818
ORA-06512: at line 2

  위의 예에서는 단일 기준 템플릿을 만들었습니다. 기준 샘플을 지정하고 해당 기간, 기준 이름, 보존 기간 등을 지정합니다. 그런 다음 이 시간 범위 내의 해당 스냅샷이 유지되며 이 기준은 성능 문제가 발견될 때 후속 비교에 사용될 수 있습니다.

반복 기준 샘플 생성

  반복 기준 샘플은 미래의 특정 시간 범위를 나타냅니다. Oracle은 이 세트 샘플을 참조하여 자동으로 기준을 생성합니다. 예를 들어, 2017년 매주 월요일 오전 9시부터 11시까지 기준선이 자동으로 생성되도록 반복 기준선 샘플을 생성할 수 있습니다.

SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

BEGIN
 DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (
  day_of_week   => 'monday',
  hour_in_day   => 9,
  duration    => 2,
  expiration    => 30,
  start_time    => '2017-04-14 09:00:00',
  end_time    => '2017-12-31 11:00:00',
  baseline_name_prefix => 'baseline_2017_mondays_',
  template_name   => 'template_2017_mondays',
  dbid     => 41924548);
END;
/

-- Author  : Leshami
-- Blog  : http://blog.csdn.net/leshami
-- QQ(Weixin) : 645746311

--查看已经创建的基线样本
SQL> select t.template_name,
 2  t.template_type,
 3  t.start_time,
 4  t.end_time,
 5  t.day_of_week,
 6  t.hour_in_day,
 7  t.duration
 8 from dba_hist_baseline_template t;

TEMPLATE_NAME   TEMPLATE_ START_TIME   END_TIME   DAY_OF_WE HOUR_IN_DAY DURATION
--------------------- --------- ------------------- ------------------- --------- ----------- --------
template_140414  SINGLE 2017-04-14 17:00:00 2017-04-14 19:00:00
template_2017_mondays REPEATING 2017-04-14 09:00:00 2017-12-31 11:00:00 MONDAY    17  3

  위의 예에서는 2017년 4월 14일부터 매주 월요일(day_of_week) 반복을 만들었습니다. 그러면 시작 시간이 9시(hour_in_day)이고 기간이 2인 기준선이 자동으로 생성됩니다. 시간(기간), 유효 기간은 30일(만료)입니다. 전체 기준의 시작 및 종료 시간 범위는 2017-04-14 09:00:00 ~ 2017-12-31 11:00:00, 기준선도 지정됩니다. 샘플 이름과 기준선 접두사 이름도 지정됩니다.

기준 샘플 삭제

BEGIN
 DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE_TEMPLATE (
     template_name => 'template_140414',
     dbid => 41924548);
END;
/

  위의 예에서는 샘플 이름을 지정하여 이전에 생성된 기준 샘플을 삭제합니다.

3. AWR 공간 점유

  AWR 스냅샷 데이터는 모두 SYSAUX 테이블 공간에 채워져 있습니다. 따라서 스냅샷을 장기간 보관하려면 더 많은 SYSAUX 공간을 차지해야 한다는 의미입니다. 동시에 awrinfo.sql을 통해 SYSAUX를 점유하고 있는 각 객체의 상세 정보를 볼 수 있다.

SQL> @?/rdbms/admin/awrinfo.sql

This script will report general AWR information
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Specify the Report File Name
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is awrinfo.txt. To use this name,
press <return> to continue, otherwise enter an alternative.

Enter value for report_name:

Using the report name awrinfo.txt
No errors.     -- Author : Leshami
No errors.     -- Blog : http://blog.csdn.net/leshami
~~~~~~~~~~~~~~~   -- QQ  : 645746311 
AWR INFO Report
~~~~~~~~~~~~~~~

Report generated at
19:48:53 on Apr 14, 2017 ( Friday ) in Timezone +08:00


Warning: Non Default AWR Setting!
--------------------------------------------------------------------------------
Snapshot interval is 60 minutes and Retention is 8 days


  DB_ID DB Name HOST_PLATFORM   INST STARTUP_TIME  LAST_ASH_SID PAR
------------ ------- ----------------------- ---- ----------------- ------------ ---
* 41924548 ORA11G ydq - Linux x86 64-bit  1 15:18:26 (04/07)  617410 NO

########################################################
(I) AWR Snapshots Information
########################################################

*****************************************************
(1a) SYSAUX usage - Schema breakdown (dba_segments)
*****************************************************
|
| Total SYSAUX size      617.4 MB ( 2% of 32,768.0 MB MAX with AUTOEXTEND ON )
|
| Schema SYS   occupies   206.6 MB ( 33.5% )
| Schema XDB   occupies   157.7 MB ( 25.5% )
| Schema APEX_030200 occupies    85.4 MB ( 13.8% )
| Schema MDSYS  occupies    73.9 MB ( 12.0% )

## 4. AWR 보고서 생성

--단일 인스턴스에서 AWR 보고서 생성

SQL> @?/rdbms/admin/awrrpt.sql

--RAC 환경에서 AWR 보고서 생성

SQL> @$ORACLE_HOME/rdbms/admin/awrgrpt.sql

-- AWR 보고서를 생성할 데이터베이스 인스턴스 지정

SQL> @$ORACLE_HOME/rdbms/admin/awrrpti.sql

--SQL 문 AWR 보고서 생성

SQL> @$ORACLE_HOME/rdbms/admin/awrsqrpt.sql

--SQL 문 AWR 보고서를 생성할 인스턴스 지정

SQL> @$ORACLE_HOME/rdbms/admin/awrsqrpi.sql

--비교 AWR 보고서 생성

SQL> @$ORACLE_HOME/rdbms/admin/awrddrpt.sql

--RAC 환경에서 비교 AWR 보고서 생성

@$ORACLE_HOME/rdbms/admin/awrgdrpt.sql

5. AWR 관련 중요 뷰 및 데이터 사전

v$active_ 세션_히스토리 : 초당 한 번씩 샘플링된 활성 데이터베이스 세션 활동을 표시합니다.

v$metric 및 v$metric_history:

   시스템 성능을 추적하기 위해 메트릭 데이터를 제공합니다. 뷰는 v$metricgroup 뷰

DBA_HIST_ACTIVE_SESS_HISTORY

에 정의된 여러 그룹으로 구성됩니다.

   메모리의 활성 세션 기록 정보 표시

DBA_HIST_BASELINE
   캡처된 기준선 정보 표시

DBA_HIST_BASELINE_DETAILS

  특정 기준선의 세부 정보 표시

DBA_HIST_BASELINE_TEMPLATE

   베이스라인 템플릿 관련 정보

DBA_HIST_DATABASE_INSTANCE

  데이터베이스 환경

DBA_HIST_DB_CACHE_ADVICE

기록 데이터를 기반으로 다양한 캐시 크기에서의 물리적 읽기 예측

DBA_HIST_DISPATCHER

   각 스냅샷의 예약 프로세스에 대한 정보

DBA_HIST_DYN_REMASTER_STATS

   통계 정보 동적 리마스터링 프로세스

DBA_HIST_IOSTAT_DETAIL
   누르기 유형이나 기능 없음 통계를 위해 찾았습니다. 기록 I/O 정보

DBA_HIST_SHARED_SERVER_SUMMARY

  공유 서버 통계

DBA_HIST_SNAPSHOT

  스냅샷 정보

DBA_HIST_SQL_PLAN

  실행 계획

DBA_HIST_ WR_Control

  AWR 제어 정보

관련 권장 사항:

mysql 및 oracle 데이터베이스 중지 시작된 배치 파일을 사용하여

PDO가 PDO를 사용하여 오라클 데이터베이스에 액세스하는 방법에 대한 자세한 설명

오라클 문자열에 숫자와 특수 기호가 포함된 정렬 문제에 대한 솔루션

위 내용은 Oracle AWR의 관리 및 유지보수에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.