本篇内容主要讲解“Baseline相关知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Baseline相关知识点有哪些”吧!

在 Oracle Database 11g 中,AWR基线提供了定义动态和未来基线的强大功能,并在很大程度上简化了创建和管理性能数据(以便比较)的过程。

Oracle Database 11g 默认具备一个系统定义的Moving Window Baseline,该基线对应于 AWR 保留期中的所有 AWR 数据。仅可存在一个Moving Window Baseline。系统定义的Moving Window Baseline认大小为当前的AWR保留期,即默认为八天。

如果要增大Moving Window Baseline,首先需要相应增大AWR保留期。AWR保留期和系统定义的Moving Window Baseline的大小是两个独立的参数。但是AWR保留期必须大于或等于系统定义的Moving Window Baseline的大小。

Oracle Database 11g 提供了收集两种基线的功能:静态基线和Moving Window Baseline。 静态基线可以是单一的,也可以是重复的。单一 AWR 基线是在单一时段内收集的。重复基线是在重复的时段(例如,六月份的每个星期一)内收集的。

在 Oracle Database 11g 中,如果 STATISTICS_LEVEL=TYPICAL 或 ALL,则默认启用基线。

基线视图

DBA_HIST_BASELINE:显示有关系统中所获取的基线的信息。对于每个基线,该视图显示完整的时间范围,以及该基线是否为默认基线。其它信息包括创建日期、上一次统计信息计算的时间和基线类型。

DBA_HIST_BASELINE_DETAILS:显示可用来确定给定基线有效性的信息,如基线时段期间是否存在关闭操作及基线时段中由快照数据覆盖的百分比。

DBA_HIST_BASELINE_TEMPLATE:保存了基线模板。该视图提供了 MMON 所需的信息,用以确定何时根据模板创建基线,以及何时应删除基线。

DBA_HIST_BASELINE_METADATA:显示基线的元数据信息,包括名称、类型、创建时间、模板和失效时间。

如果要在过去的某个时段创建基线,则使用CREATE_BASELINE过程;如果时段有任何部分处于未来,则使用CREATE_BASELINE_TEMPLATE过程。

单一AWR基线

CREATE_BASELINE

语法:

DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(start_snap_idINNUMBER,end_snap_idINNUMBER,baseline_nameINVARCHAR2,dbidINNUMBERDEFAULTNULL,expirationINNUMBERDEFAULTNULL);DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(start_snap_idINNUMBER,end_snap_idINNUMBER,baseline_nameINVARCHAR2,dbidINNUMBERDEFAULTNULL,expirationINNUMBERDEFAULTNULL)RETURNNUMBER;DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(start_timeINDATE,end_timeINDATE,baseline_nameINVARCHAR2,dbidINNUMBERDEFAULTNULL,expirationINNUMBERDEFAULTNULL);DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(start_timeINDATE,end_timeINDATE,baseline_nameINVARCHAR2,dbidINNUMBERDEFAULTNULL,expirationINNUMBERDEFAULTNULL);RETURNNUMBER;

示例:

创建一个名为TEST39,从2013-05-25 10:00:00开始到2013-05-29 11:00:00结束的,且永远不会过期的baseline

BEGINDBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(start_time=>'2013-05-2510:00:00',end_time=>'2013-05-2911:00:00',baseline_name=>'TEST39',expiration=>NULL);END;

查看已经创建了哪些baseline

SQL>setline1000SQL>colTEMPLATE_NAMEfora20SQL>colBASELINE_NAMEfora20SQL>selectDBID,BASELINE_ID,BASELINE_NAME,BASELINE_TYPE,EXPIRATION,TEMPLATE_NAMEfromdba_hist_baseline;

—————————————————————————————-

删除基线

先确定已存在的基线名称,比如是TEST3

BEGINDBMS_WORKLOAD_REPOSITORY.DROP_BASELINE(baseline_name=>'TEST3',cascade=>FALSE,dbid=>null);END;/

cascade参数选择FALSE,如果选择TRUE则会将删除基线相关的快照

—————————————————————————————-

重命名基线

查看已经存在的基线,然后重命名

BEGINDBMS_WORKLOAD_REPOSITORY.RENAME_BASELINE(old_baseline_name=>'TEST3',new_baseline_name=>'NTEST3',);END;/

============================================================

基线模板

CREATE_BASELINE_TEMPLATE

语法:

Specifiesatemplateforgeneratingabaselineforasingletimeperiodinthefuture.DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE(start_timeINDATE,end_timeINDATE,baseline_nameINVARCHAR2,template_nameINVARCHAR2,expirationINNUMBER,dbidINNUMBERDEFAULTNULL);Specifiesatemplateforcreatinganddroppingbaselinebasedonrepeatingtimeperiods:DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE(day_of_weekINVARCHAR2,hour_in_dayINNUMBER,durationINNUMBER,start_timeINDATE,end_timeINDATE,baseline_name_prefixINVARCHAR2,template_nameINVARCHAR2,expirationINNUMBER,dbidINNUMBERDEFAULTNULL);

示例:

单一基线模板

先查询当前的时间:

SQL>selectsysdatefromdual;SYSDATE-------------------2013-05-2915:47:13

BASELINE_TEMPLATE是需要有任何部分包含未发生的时间才能用的。

为此,我们来特别证明下:

SQL>BEGIN2DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE(3start_time=>'2013-05-2510:00:00',4end_time=>'2013-05-2915:00:00',5baseline_name=>'FALL29',6template_name=>'FALL29',7expiration=>NULL);8END;9/BEGIN*第1行出现错误:ORA-13537:为创建基线模板而输入的内容无效(end_time,end_timeislessthanSYSDATE)ORA-06512:在"SYS.DBMS_WORKLOAD_REPOSITORY",line768ORA-06512:在"SYS.DBMS_WORKLOAD_REPOSITORY",line818ORA-06512:在line2

果然如此,验证之前说的过去的某时段必须要是使用CREATE_BASELINE,反之包含任何时段的未来则使用CREATE_BASELINE_TEMPLATE过程。

SQL>BEGIN2DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE(3start_time=>'2013-05-2510:00:00',4end_time=>'2013-05-2916:00:00',5baseline_name=>'FALL29',6template_name=>'FALL29',7expiration=>NULL);8END;9/PL/SQL过程已成功完成。

重复基线模板

创建名template_2013_mondays的基线模板:每周一(day_of_week)早上8点开始(hour_in_day)持续12个小时(duration)且将保留30天(expiration),开始于2013-05-25 10:00:00,结束于2013-05-30 17:00:00。

SQL>BEGIN2DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE(3day_of_week=>'monday',hour_in_day=>8,4duration=>12,expiration=>30,5start_time=>'2013-05-2510:00:00',6end_time=>'2013-05-3017:00:00',7baseline_name_prefix=>'baseline_2013_mondays_',8template_name=>'template_2013_mondays',9dbid=>NULL);10END;11/PL/SQL过程已成功完成。

查询有哪些基线模板

SQL>colREPEAT_INTERVALfora60SQL>selectDBID,TEMPLATE_ID,TEMPLATE_NAME,TEMPLATE_TYPE,DURATION,EXPIRATION,REPEAT_INTERVALfromdba_hist_baseline_template;DBIDTEMPLATE_IDTEMPLATE_NAMETEMPLATE_DURATIONEXPIRATIONREPEAT_INTERVAL----------------------------------------------------------------------------------------------------------------------------------21975307202FALL08SINGLE21975307203FALL09SINGLE21975307204FALL19SINGLE21975307205FALL29SINGLE21975307206template_2013_mondayREPEATING1230FREQ=WEEKLY;INTERVAL=1;BYDAY=MON;BYHOUR=8;BYMINUTE=0;BYSECONsD=0

————————————————————————————-

删除基线模板

查询已存在的基线模板,确定需要删除的基线名称,比如template_2013_monday

BEGINDBMS_WORKLOAD_REPOSITORY.DROP_BASELINE_TEMPLATE(template_name=>'template_2013_mondays',dbid=>null);END;/修改默认的Moving Window Baselin的大小

在11gR2中AWR默认的配置是保留期为8天,快照每小时生成一次。

SQL>colSNAP_INTERVALfora20SQL>colRETENTIONfora20SQL>select*fromdba_hist_wr_control;DBIDSNAP_INTERVALRETENTIONTOPNSQL------------------------------------------------------------2197530720+0000001:00:00.0+0000800:00:00.0DEFAULT

现在想要改变AWR配置满足系统的需求

SQL>BEGIN2DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(retention=>7200,3interval=>30,topnsql=>100);4END;5/BEGIN*第1行出现错误:ORA-13541:系统移动窗口基线大小(691200)大于保留时间(345600)ORA-06512:在"SYS.DBMS_WORKLOAD_REPOSITORY",line174ORA-06512:在"SYS.DBMS_WORKLOAD_REPOSITORY",line222ORA-06512:在line2

出现ORA-13541: system moving window baseline size (691200) greater than retention (518400)错误,根据错误提示,系统移动窗口基线(Moving Window Baseline)是691200,即是8天。也就是说修改AWR保留期的值,跟此数值有关系,必须要大于此数值。

查看当前Moving Window Baseline的值

SQL>colBASELINE_NAMEfora30SQL>selectdbid,baseline_name,baseline_type,moving_window_sizefromdba_hist_baseline;DBIDBASELINE_NAMEBASELINE_TYPEMOVING_WINDOW_SIZE-----------------------------------------------------------------------2197530720SYSTEM_MOVING_WINDOWMOVING_WINDOW8

既然知道了原因,解决就很方便了,Modifying the Window Size of the Default Moving Window Baseline

BEGINDBMS_WORKLOAD_REPOSITORY.MODIFY_BASELINE_WINDOW_SIZE(window_size=>5,dbid=>3310949047);END;/

其中要注意:window size必须设置为一个小于或等于AWR设置的保留值。

In this example, the optional dbid parameter specifies the database identifier is 3310949047. If you do not specify a value for dbid, then the local database identifier is used as the default value.

检查当前Moving Window Baseline的值,看是否修改的如你所愿

SQL>selectdbid,baseline_name,baseline_type,moving_window_sizefromdba_hist_baseline;DBIDBASELINE_NAMEBASELINE_TYPEMOVING_WINDOW_SIZE-----------------------------------------------------------------------2197530720SYSTEM_MOVING_WINDOWMOVING_WINDOW5

继续之前的修改

SQL>BEGIN2DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(retention=>7200,3interval=>30,topnsql=>100);4END;5/PL/SQL过程已成功完成。

修改完后查看当前AWR配置

SQL>select*fromdba_hist_wr_control;DBIDSNAP_INTERVALRETENTIONTOPNSQL------------------------------------------------------------2197530720+0000000:30:00.0+0000500:00:00.0100

到此问题已解决。

到此,相信大家对“Baseline相关知识点有哪些”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!