通过案例学调优之--AWRBaseLine管理
通过案例学调优之--AWR BaseLine管理 BaseLine Baseline 是指一个特定时间段内的性能数据,保留这些数据是为了在性能问题产生时与其他类似的工作负载时间段进行比较。Baseline 中包含的快照将从自动 AWR 清理进程中排除,并无限期的保留。 在 Oracle Databas
通过案例学调优之--AWR BaseLine管理
BaseLine
Baseline 是指一个特定时间段内的性能数据,保留这些数据是为了在性能问题产生时与其他类似的工作负载时间段进行比较。Baseline 中包含的快照将从自动 AWR 清理进程中排除,并无限期的保留。
在 Oracle Database 中存在多种类型的 baseline:
Fixed Baseline:fixed baseline 表示的是您指定的一个固定的、连续的时间段。在创建 fixed baseline 之前,请认真考虑您选作 baseline 的时间段,因为该 baseline 应该代表系统处于良好的性能下运行。您可以在将来将该 baseline 与在性能较差的时间段捕获的其他 baseline 或 snapshot 进行比较分析。
Moving Window Baseline:表示的是 AWR 保留期内存在的所有 AWR 数据。在使用自适应阈值时,它非常有用,因为数据库可以使用整个 AWR 保留期内的 AWR 数据来计算指标值。
Oracle Database 会自动维护系统定义的 moving window baseline。系统定义的 moving window baseline 的默认窗口大小就是当前的 AWR 保留期,即默认为 8 天。如果您打算使用自适应阈值,请考虑使用更长的移动窗口——如30天,以便精确地计算阈值。您可以重新调整 moving window baseline,将移动窗口的大小调整为小于或等于 AWR 的保留天数。因此,要增加移动窗口的大小,必须要先增加相应的 AWR 保留期限。
Baseline Template:您可以使用 baseline template 创建将来某个连续时间段的 baseline。Oracle 中有两种 baseline 模板:single 和 repeating
利用 single baseline template,您可以为将来某个单独的连续时间段创建 baseline。该技术在某些情况下非常有用。例如,如果您想捕获下周计划的系统测试期间的 AWR 数据,您可以创建一个 single baseline template 来自动捕获测试发生的时间段的统计数据。
利用 repeating baseline template ,可以根据重复的时间计划创建和删除 baseline。当您希望 Oracle Database 自动持续地捕获连续时间段的统计数据时,这非常有用。例如,您可能需要在长达一个月内捕获每周一早上的 AWR 数据。在这种情况下,您可以创建一个 repeating baseline template ,以在每周一自动创建 baseline,在指定的过期期限内自动删除过时的 baseline。
案例:
1、创建基线
Fixed Baseline:fixed baseline 表示的是您指定的一个固定的、连续的时间段。
根据snap_id创建: DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE( start_snap_id IN NUMBER, end_snap_id IN NUMBER, baseline_name IN VARCHAR2, dbid IN NUMBER DEFAULT NULL, expiration IN NUMBER DEFAULT NULL); 根据时间创建: DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE( start_time IN DATE, end_time IN DATE, baseline_name IN VARCHAR2, dbid IN NUMBER DEFAULT NULL, expiration IN NUMBER DEFAULT NULL); 查看snapshot: 14:25:31 SYS@ test1 >select snap_id,BEGIN_INTERVAL_TIME,dbid from dba_hist_snapshot; SNAP_ID BEGIN_INTERVAL_TIME DBID ---------- --------------------------------------------------------------------------- ---------- 435 04-NOV-14 11.00.52.880 AM 1195893416 436 04-NOV-14 12.00.07.338 PM 1195893416 437 04-NOV-14 01.00.22.331 PM 1195893416 432 04-NOV-14 12.00.04.575 AM 1195893416 434 04-NOV-14 09.52.45.512 AM 1195893416 428 31-OCT-14 02.58.47.186 PM 1195893416 429 31-OCT-14 04.00.51.633 PM 1195893416 430 03-NOV-14 10.19.24.000 AM 1195893416 433 04-NOV-14 09.41.40.000 AM 1195893416 426 31-OCT-14 11.25.58.000 AM 1195893416 427 31-OCT-14 02.47.40.000 PM 1195893416 431 03-NOV-14 10.30.31.348 AM 1195893416 12 rows selected. 创建Baseline: 14:27:46 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(start_snap_id=>435,end_snap_id=>436,baseline_name=>'work_bs1',dbid=>1195893416,expiration=>30); PL/SQL procedure successfully completed. --435 是起始的 snapshot 序列号,436 是结束 snapshot 序列号。expiration => 30 表示该 baseline 将在30天后自动删除,expiration =>null表示,永不过期 --创建 baseline 时,系统会自动分配一个唯一的 baseline ID 给新建的 baseline。可以通过 DBA_HIST_BASELINE 视图查看。 查看Baseline: 14:31:10 SYS@ test1 >col baseline_name for a40 14:31:30 SYS@ test1 >select dbid,baseline_id,baseline_name,EXPIRATION,CREATION_TIME from dba_hist_baseline DBID BASELINE_ID BASELINE_NAME EXPIRATION CREATION_TIME ---------- ----------- ---------------------------------------- ---------- ------------------- 1195893416 1 work_bs1 30 2014-11-04 14:29:08 1195893416 0 SYSTEM_MOVING_WINDOW 2013-06-23 12:43:59 重命名Baseline: 14:31:30 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.RENAME_BASELINE (old_baseline_name => 'work_bs1', new_baseline_name => 'work_bl1', dbid => 1195893416); PL/SQL procedure successfully completed. 14:35:46 SYS@ test1 >select dbid,baseline_id,baseline_name,EXPIRATION,CREATION_TIME from dba_hist_baseline; DBID BASELINE_ID BASELINE_NAME EXPIRATION CREATION_TIME ---------- ----------- ---------------------------------------- ---------- ------------------- 1195893416 1 work_bl1 30 2014-11-04 14:29:08 1195893416 0 SYSTEM_MOVING_WINDOW 2013-06-23 12:43:59 删除Baseline: 14:35:54 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE (baseline_name => 'work_bl1',cascade => FALSE, dbid => 1195893416); PL/SQL procedure successfully completed. 14:38:24 SYS@ test1 >select dbid,baseline_id,baseline_name,EXPIRATION,CREATION_TIME from dba_hist_baseline; DBID BASELINE_ID BASELINE_NAME EXPIRATION CREATION_TIME ---------- ----------- ---------------------------------------- ---------- ------------------- 1195893416 0 SYSTEM_MOVING_WINDOW 2013-06-23 12:43:59 --cascade 参数设置为 FALSE,指定只删除。将此参数设置为 TRUE 指定删除与该 baseline 相关联的所有快照。
移动窗口(Moving Window)基线
Oracle 11g引入了移动窗口(Moving Window)基线的概念,用于计算阀值的度量,窗口(window)是AWR数据在保存期限内的一个视图,窗口大小与AWR默认的保留期限8天匹配,但它可以设置为这个值的子集,在增大窗口大小前,首先要增大AWR保留期限的大小。
查询DBA_HOST_WR_CONTROL视图的RETENTION列,可以返回当前的AWR保留期限。
14:45:42 SYS@ test1 >SELECT retention FROM dba_hist_wr_control; RETENTION --------------------------------------------------------------------------- +00008 00:00:00.0
使用存储过程MODIFY_SNAPSHOT_SETTINGS可以修改保留期限,指定RETENTION参数,单位分钟。
14:48:12 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings(retention=>43200); --Minutes(=30 Days) PL/SQL procedure successfully completed. 14:48:33 SYS@ test1 >SELECT retention FROM dba_hist_wr_control; RETENTION --------------------------------------------------------------------------- +00030 00:00:00.0
查询DBA_HIST_BASELINE视图可以返回当前的移动窗口大小。
14:48:44 SYS@ test1 >SELECT moving_window_size 14:50:30 2 FROM dba_hist_baseline 14:50:30 3 WHERE baseline_type = 'MOVING_WINDOW'; MOVING_WINDOW_SIZE ------------------ 8
使用存储过程MODIFY_BASELINE_WINDOW_SIZE可以修改移动窗口基线,它接受WINDOW_SIZE参数,单位为天。
14:50:45 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.modify_baseline_window_size(window_size =>30); PL/SQL procedure successfully completed. 14:53:25 SYS@ test1 >SELECT moving_window_size FROM dba_hist_baseline WHERE baseline_type = 'MOVING_WINDOW'; MOVING_WINDOW_SIZE ------------------ 30 Oracle建议在使用适当的阀值时,窗口大小应大于或等于30天。(应该小于或等于snapshot的retention)
基线模板
基线模板允许你定义可能在将来要捕获的基线,CREATE_BASELINE_TEMPLATE存储过程定义单一基线或重复基线的捕获,创建单一基线模板与创建基于时间的基线类似,除了将来的时间外。
15:02:44 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.create_baseline_template( start_time=>TO_DATE('09-NOV-2014 00:00', 'DD-MON-YYYY HH24:MI'), end_time=>TO_DATE('12-NOV-2014 05:00', 'DD-MON-YYYY HH24:MI'), baseline_name =>'09_11_14_BS1', template_name =>'09_11_14_TP1', expiration=> 10 ); PL/SQL procedure successfully completed. 15:05:19 SYS@ test1 >col REPEAT_INTERVAL for a10 15:05:34 SYS@ test1 >select DBID,TEMPLATE_ID,TEMPLATE_NAME,TEMPLATE_TYPE,DURATION,EXPIRATION,REPEAT_INTERVAL from dba_hist_baseline_template DBID TEMPLATE_ID TEMPLATE_NAME TEMPLATE_ DURATION EXPIRATION REPEAT_INT ---------- ----------- ------------------------------ --------- ---------- ---------- ---------- 1195893416 1 09_11_14_TP1 SINGLE 10
重复基线模板稍微有点不同,因为它需要调度信息,START_TIME和END_TIME参数分别在模板激活和释放时定义,DAY_OF_WEEK,HOUR_IN_DAY和DURATION定义产生基线的日期,时间和持续时间,因为模板会产生多个基线,基线名是以BASELINE_NAME_PREFIX开始的,下面的基线模板例子将在未来6个月内运行,每周星期一00:00至05:00收集基线。
15:05:35 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.create_baseline_template( day_of_week=>'MONDAY', hour_in_day=>0,duration=>5, start_time=>SYSDATE, end_time=>ADD_MONTHS(SYSDATE, 6), baseline_name_prefix =>'monday_morning_bl', template_name=>'monday_morning_tp', expiration=> NULL ); PL/SQL procedure successfully completed. 15:09:20 SYS@ test1 > select DBID,TEMPLATE_ID,TEMPLATE_NAME,TEMPLATE_TYPE,DURATION,EXPIRATION,REPEAT_INTERVAL from dba_hist_baseline_template; DBID TEMPLATE_ID TEMPLATE_NAME TEMPLATE_ DURATION EXPIRATION REPEAT_INT ---------- ----------- ------------------------------ --------- ---------- ---------- ---------- 1195893416 1 09_11_14_TP1 SINGLE 10 1195893416 2 monday_morning_tp REPEATING 5 FREQ=WEEKL Y;INTERVAL =1;BYDAY=M ON;BYHOUR= 0;BYMINUTE =0;BYSECON D=0 15:12:14 SYS@ test1 >col BASELINE_NAME_PREFIX for a20 15:12:33 SYS@ test1 >r 1 SELECT template_name, 2 template_type, 3 baseline_name_prefix, 4 start_time, 5 end_time, 6 day_of_week, 7 hour_in_day, 8 duration, 9 expiration 10* FROM dba_hist_baseline_template TEMPLATE_NAME TEMPLATE_ BASELINE_NAME_PREFIX START_TIME END_TIME DAY_OF_WE HOUR_IN_DAY -------------------- --------- -------------------- ------------------- ------------------- --------- ----------- DURATION EXPIRATION ---------- ---------- 09_11_14_TP1 SINGLE 09_11_14_BS1 2014-11-09 00:00:00 2014-11-12 05:00:00 10 monday_morning_tp REPEATING monday_morning_bl 2014-11-04 15:09:20 2015-05-04 15:09:20 MONDAY 0 5 注意BASELINE_NAME_PREFIX列可能保留了基线前缀或完整的基线名,主要依赖于捕获基线的类型.
DROP_BASELINE_TEMPLATE存储过程删除基线模板
15:17:46 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.drop_baseline_template (template_name =>'09_11_14_TP1'); PL/SQL procedure successfully completed. 15:18:26 SYS@ test1 >exec DBMS_WORKLOAD_REPOSITORY.drop_baseline_template (template_name => 'monday_morning_tp'); PL/SQL procedure successfully completed. 15:18:52 SYS@ test1 >select DBID,TEMPLATE_ID,TEMPLATE_NAME,TEMPLATE_TYPE,DURATION,EXPIRATION,REPEAT_INTERVAL from dba_hist_baseline_template; no rows selected
基线视图
DBA_HIST_BASELINE:显示有关系统中所获取的基线的信息。对于每个基线,该视图显示完整的时间范围,以及该基线是否为默认基线。其它信息包括创建日期、上一次统计信息计算的时间和基线类型。
DBA_HIST_BASELINE_DETAILS:显示可用来确定给定基线有效性的信息,如基线时段期间是否存在关闭操作及基线时段中由快照数据覆盖的百分比。
DBA_HIST_BASELINE_TEMPLATE:保存了基线模板。该视图提供了 MMON 所需的信息,用以确定何时根据模板创建基线,以及何时应删除基线。
DBA_HIST_BASELINE_METADATA:显示基线的元数据信息,包括名称、类型、创建时间、模板和失效时间。
如果要在过去的某个时段创建基线,则使用 CREATE_BASELINE 过程;如果时段有任何部分处于未来,则使用CREATE_BASELINE_TEMPLATE 过程。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Redis를 사용하여 분산 트랜잭션 관리를 구현하는 방법 소개: 인터넷의 급속한 발전으로 인해 분산 시스템의 사용이 점점 더 널리 보급되고 있습니다. 분산 시스템에서 트랜잭션 관리는 중요한 과제입니다. 기존의 트랜잭션 관리 방법은 분산 시스템에서 구현하기 어렵고 비효율적입니다. Redis의 특성을 활용하여 분산 트랜잭션 관리를 쉽게 구현하고 시스템의 성능과 안정성을 향상시킬 수 있습니다. 1. Redis 소개 Redis는 효율적인 읽기 및 쓰기 성능과 풍부한 데이터를 갖춘 메모리 기반 데이터 저장 시스템입니다.

Java로 학생 성과 관리 기능을 구현하는 방법은 무엇입니까? 현대 교육 시스템에서 학생의 성과 관리는 매우 중요한 업무입니다. 학생 성과를 관리함으로써 학교는 학생의 학습 진행 상황을 더 잘 모니터링하고, 학생의 약점과 장점을 이해하며, 이 정보를 기반으로 보다 구체적인 교육 계획을 세울 수 있습니다. 이 기사에서는 Java 프로그래밍 언어를 사용하여 학생 성과 관리 기능을 구현하는 방법에 대해 설명합니다. 먼저, 학생 성적의 데이터 구조를 결정해야 합니다. 일반적으로 학생의 성적은 다음과 같이 나타낼 수 있습니다.

Laravel 확장 패키지 관리: 타사 코드와 기능을 쉽게 통합합니다. 소개: Laravel 개발에서는 프로젝트의 효율성과 안정성을 향상시키기 위해 타사 코드와 기능을 사용하는 경우가 많습니다. Laravel 확장 패키지 관리 시스템을 사용하면 이러한 타사 코드와 기능을 쉽게 통합할 수 있어 개발 작업이 더욱 편리하고 효율적으로 이루어집니다. 이 글에서는 Laravel 확장 패키지 관리의 기본 개념과 사용법을 소개하고, 몇 가지 실용적인 코드 예제를 사용하여 독자들이 이를 더 잘 이해하고 적용할 수 있도록 돕습니다. 라라란 무엇인가

Kirin 운영 체제에서 네트워크 서버를 설정하고 관리하는 방법은 무엇입니까? Kirin 운영 체제는 중국에서 독자적으로 개발된 Linux 기반 운영 체제입니다. 이는 오픈 소스, 보안 및 안정성의 특성을 가지며 중국에서 널리 사용되었습니다. 이 기사에서는 Kirin 운영 체제에서 네트워크 서버를 설정하고 관리하는 방법을 소개하여 독자가 자신의 네트워크 서버를 더 잘 구축하고 관리할 수 있도록 돕습니다. 1. 관련 소프트웨어 설치 네트워크 서버 설정 및 관리를 시작하기 전에 몇 가지 필요한 소프트웨어를 설치해야 합니다. Kirin OS에서는 다음을 수행할 수 있습니다.

win10 시스템을 사용할 때 마우스를 사용하여 바탕화면을 마우스 오른쪽 버튼으로 클릭하거나 메뉴를 마우스 오른쪽 버튼으로 클릭하면 메뉴가 열리지 않고 컴퓨터를 정상적으로 사용할 수 없는 것을 발견했습니다. 이때 복원이 필요합니다. 문제를 해결하기 위한 시스템. Win10 마우스 오른쪽 버튼 클릭 메뉴 관리를 열 수 없습니다. 1. 먼저 제어판을 열고 클릭합니다. 2. 그런 다음 보안 및 유지 관리 아래를 클릭합니다. 3. 시스템을 복원하려면 오른쪽의 를 클릭하세요. 4. 그래도 사용할 수 없다면 마우스 자체에 문제가 있는지 확인해 보세요. 5. 마우스에 문제가 없다고 확신하면 +를 누르고 Enter를 누르세요. 6. 실행이 완료되면 컴퓨터를 다시 시작합니다.

캐시 관리를 위해 Hyperf 프레임워크를 사용하는 방법 캐시는 애플리케이션 성능을 향상시키는 중요한 수단 중 하나이며 최신 프레임워크는 보다 편리한 캐시 관리 도구를 제공합니다. 이 문서에서는 캐시 관리를 위해 Hyperf 프레임워크를 사용하는 방법을 소개하고 특정 코드 예제를 제공합니다. Hyperf 프레임워크는 Swoole을 기반으로 개발된 고성능 프레임워크로, 강력한 캐시 관리 기능을 포함하여 풍부한 내장 구성요소 및 도구 세트를 갖추고 있습니다. Hyperf 프레임워크는 Redis 및 Memcach와 같은 여러 캐시 드라이버를 지원합니다.

디스크 관리 분할 방법 컴퓨터 기술의 지속적인 발전으로 인해 디스크 관리는 컴퓨터 사용에 없어서는 안 될 부분이 되었습니다. 디스크 관리의 중요한 부분인 디스크 파티셔닝은 하드 디스크를 여러 부분으로 나눌 수 있어 데이터를 보다 유연하게 저장하고 관리할 수 있습니다. 그렇다면 디스크 관리를 분할하는 방법은 무엇입니까? 아래에서 자세한 소개를 드리겠습니다. 우선, 디스크를 분할하는 방법은 하나만 있는 것이 아니라는 점을 분명히 해야 합니다. 다양한 필요와 목적에 따라 적절한 디스크 분할 방법을 유연하게 선택할 수 있습니다. 자주

Kirin 운영 체제에서 하드 디스크 공간을 관리하고 정리하는 방법은 무엇입니까? Kirin 운영 체제는 Linux 기반 운영 체제로, 다른 운영 체제에 비해 더 많은 자유와 사용자 정의 가능성을 제공합니다. 장기간 사용하다 보면 하드디스크 공간이 부족해지는 문제에 직면하게 되는 경우가 많습니다. 이때 하드디스크 공간을 관리하고 정리해야 합니다. 이 글에서는 하드 디스크 공간 사용량 확인, 불필요한 파일 삭제, 디스크 정리 도구 사용 등 Kirin 운영 체제에서 하드 디스크 공간을 관리하고 정리하는 방법을 소개합니다. 첫 번째,
