溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Baseline相關(guān)知識點(diǎn)有哪些

發(fā)布時(shí)間:2021-12-07 11:38:08 來源:億速云 閱讀:136 作者:iii 欄目:數(shù)據(jù)庫

本篇內(nèi)容主要講解“Baseline相關(guān)知識點(diǎn)有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Baseline相關(guān)知識點(diǎn)有哪些”吧!

在 Oracle Database 11g 中,AWR基線提供了定義動(dòng)態(tài)和未來基線的強(qiáng)大功能,并在很大程度上簡化了創(chuàng)建和管理性能數(shù)據(jù)(以便比較)的過程。

Oracle Database 11g 默認(rèn)具備一個(gè)系統(tǒng)定義的Moving Window Baseline,該基線對應(yīng)于 AWR 保留期中的所有 AWR 數(shù)據(jù)。僅可存在一個(gè)Moving Window Baseline。系統(tǒng)定義的Moving Window Baseline認(rèn)大小為當(dāng)前的AWR保留期,即默認(rèn)為八天。

如果要增大Moving Window Baseline,首先需要相應(yīng)增大AWR保留期。AWR保留期和系統(tǒng)定義的Moving Window Baseline的大小是兩個(gè)獨(dú)立的參數(shù)。但是AWR保留期必須大于或等于系統(tǒng)定義的Moving Window Baseline的大小。

Oracle Database 11g 提供了收集兩種基線的功能:靜態(tài)基線和Moving Window Baseline。 靜態(tài)基線可以是單一的,也可以是重復(fù)的。單一 AWR 基線是在單一時(shí)段內(nèi)收集的。重復(fù)基線是在重復(fù)的時(shí)段(例如,六月份的每個(gè)星期一)內(nèi)收集的。

在 Oracle Database 11g 中,如果 STATISTICS_LEVEL=TYPICAL 或 ALL,則默認(rèn)啟用基線。

基線視圖

  • DBA_HIST_BASELINE:顯示有關(guān)系統(tǒng)中所獲取的基線的信息。對于每個(gè)基線,該視圖顯示完整的時(shí)間范圍,以及該基線是否為默認(rèn)基線。其它信息包括創(chuàng)建日期、上一次統(tǒng)計(jì)信息計(jì)算的時(shí)間和基線類型。

  • DBA_HIST_BASELINE_DETAILS:顯示可用來確定給定基線有效性的信息,如基線時(shí)段期間是否存在關(guān)閉操作及基線時(shí)段中由快照數(shù)據(jù)覆蓋的百分比。

  • DBA_HIST_BASELINE_TEMPLATE:保存了基線模板。該視圖提供了 MMON 所需的信息,用以確定何時(shí)根據(jù)模板創(chuàng)建基線,以及何時(shí)應(yīng)刪除基線。

  • DBA_HIST_BASELINE_METADATA:顯示基線的元數(shù)據(jù)信息,包括名稱、類型、創(chuàng)建時(shí)間、模板和失效時(shí)間。

如果要在過去的某個(gè)時(shí)段創(chuàng)建基線,則使用 CREATE_BASELINE 過程;如果時(shí)段有任何部分處于未來,則使用 CREATE_BASELINE_TEMPLATE 過程。

Baseline相關(guān)知識點(diǎn)有哪些

單一AWR基線

CREATE_BASELINE

語法:

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_snap_id    IN  NUMBER,
   end_snap_id      IN  NUMBER,
   baseline_name    IN  VARCHAR2,
   dbid             IN  NUMBER DEFAULT NULL,
   expiration       IN  NUMBER DEFAULT NULL)
 RETURN NUMBER;

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);

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);
 RETURN NUMBER;

示例:

創(chuàng)建一個(gè)名為TEST39,從2013-05-25 10:00:00開始到2013-05-29 11:00:00結(jié)束的,且永遠(yuǎn)不會(huì)過期的baseline

BEGIN 
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE ( 
  start_time  => '2013-05-25 10:00:00', 
  end_time   => '2013-05-29 11:00:00', 
  baseline_name  => 'TEST39', 
  expiration     => NULL ); 
END;

查看已經(jīng)創(chuàng)建了哪些baseline

SQL> set line 1000
SQL> col TEMPLATE_NAME for a20
SQL> col BASELINE_NAME for a20
SQL> select DBID,BASELINE_ID,BASELINE_NAME,BASELINE_TYPE,EXPIRATION,TEMPLATE_NAME from dba_hist_baseline;

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

刪除基線

先確定已存在的基線名稱,比如是TEST3

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

cascade參數(shù)選擇FALSE,如果選擇TRUE則會(huì)將刪除基線相關(guān)的快照

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

重命名基線

查看已經(jīng)存在的基線,然后重命名

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

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

基線模板

CREATE_BASELINE_TEMPLATE

語法:

Specifies a template for generating a baseline for a single time period in the future.

DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE(
   start_time              IN DATE,
   end_time                IN DATE,
   baseline_name           IN VARCHAR2,
   template_name           IN VARCHAR2,
   expiration              IN NUMBER,
   dbid                    IN NUMBER DEFAULT NULL);
Specifies a template for creating and dropping baseline based on repeating time periods:

DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE(
   day_of_week             IN VARCHAR2,
   hour_in_day             IN NUMBER, 
   duration                IN NUMBER,
   start_time              IN DATE,
   end_time                IN DATE,
   baseline_name_prefix    IN VARCHAR2,
   template_name           IN VARCHAR2,
   expiration              IN NUMBER,
   dbid                    IN NUMBER DEFAULT NULL);

示例:

單一基線模板

先查詢當(dāng)前的時(shí)間:

SQL> select sysdate from dual;

SYSDATE
-------------------
2013-05-29 15:47:13

BASELINE_TEMPLATE是需要有任何部分包含未發(fā)生的時(shí)間才能用的。

為此,我們來特別證明下:

SQL> BEGIN 
  2  DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE ( 
  3    start_time  => '2013-05-25 10:00:00', 
  4    end_time   => '2013-05-29 15:00:00', 
  5    baseline_name  => 'FALL29', 
  6   template_name  => 'FALL29', 
  7    expiration     => NULL ); 
  8  END; 
  9  /
BEGIN
*
第 1 行出現(xiàn)錯(cuò)誤:
ORA-13537: 為創(chuàng)建基線模板而輸入的內(nèi)容無效 (end_time, end_time is less than SYSDATE) ORA-06512: 在
"SYS.DBMS_WORKLOAD_REPOSITORY", line 768
ORA-06512: 在 "SYS.DBMS_WORKLOAD_REPOSITORY", line 818
ORA-06512: 在 line 2

果然如此,驗(yàn)證之前說的過去的某時(shí)段必須要是使用CREATE_BASELINE,反之包含任何時(shí)段的未來則使用 CREATE_BASELINE_TEMPLATE 過程。

SQL> BEGIN 
  2  DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE ( 
  3    start_time  => '2013-05-25 10:00:00', 
  4    end_time   => '2013-05-29 16:00:00', 
  5    baseline_name  => 'FALL29', 
  6   template_name  => 'FALL29', 
  7    expiration     => NULL ); 
  8  END; 
  9  /

PL/SQL 過程已成功完成。

重復(fù)基線模板

創(chuàng)建名template_2013_mondays的基線模板:每周一(day_of_week)早上8點(diǎn)開始(hour_in_day)持續(xù)12個(gè)小時(shí)(duration)且將保留30天(expiration),開始于2013-05-25 10:00:00,結(jié)束于2013-05-30 17:00:00。

SQL> BEGIN
  2      DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (
  3                     day_of_week => 'monday', hour_in_day => 8,
  4                     duration => 12, expiration => 30,
  5    start_time  => '2013-05-25 10:00:00', 
  6    end_time   => '2013-05-30 17:00:00', 
  7                     baseline_name_prefix => 'baseline_2013_mondays_', 
  8                     template_name => 'template_2013_mondays',
  9                     dbid => NULL);
 10  END;
 11  /

PL/SQL 過程已成功完成。

查詢有哪些基線模板

SQL> col REPEAT_INTERVAL for a60
SQL> 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_INTERVAL
---------- ----------- -------------------- --------- ---------- ---------- ------------------------------------------------------------
2197530720           2 FALL08               SINGLE
2197530720           3 FALL09               SINGLE
2197530720           4 FALL19               SINGLE
2197530720           5 FALL29               SINGLE
2197530720           6 template_2013_monday REPEATING         12         30 FREQ=WEEKLY;INTERVAL=1;BYDAY=MON;BYHOUR=8;BYMINUTE=0;BYSECON
                       s                                                    D=0

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

刪除基線模板

查詢已存在的基線模板,確定需要?jiǎng)h除的基線名稱,比如template_2013_monday

BEGIN
  DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE_TEMPLATE (
                   template_name => 'template_2013_mondays',
                   dbid => null);
END;
/

修改默認(rèn)的Moving Window Baselin的大小

在11gR2中AWR默認(rèn)的配置是保留期為8天,快照每小時(shí)生成一次。

SQL> col SNAP_INTERVAL for a20
SQL> col RETENTION for a20
SQL> select * from dba_hist_wr_control;

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

現(xiàn)在想要改變AWR配置滿足系統(tǒng)的需求

SQL> BEGIN
  2    DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention => 7200, 
  3                   interval => 30, topnsql => 100);
  4  END;
  5  /
BEGIN
*
第 1 行出現(xiàn)錯(cuò)誤:
ORA-13541: 系統(tǒng)移動(dòng)窗口基線大小 (691200) 大于保留時(shí)間 (345600) ORA-06512: 在
"SYS.DBMS_WORKLOAD_REPOSITORY", line 174
ORA-06512: 在 "SYS.DBMS_WORKLOAD_REPOSITORY", line 222
ORA-06512: 在 line 2

出現(xiàn)ORA-13541: system moving window baseline size (691200) greater than retention (518400)錯(cuò)誤,根據(jù)錯(cuò)誤提示,系統(tǒng)移動(dòng)窗口基線(Moving Window Baseline)是691200,即是8天。也就是說修改AWR保留期的值,跟此數(shù)值有關(guān)系,必須要大于此數(shù)值。

查看當(dāng)前Moving Window Baseline的值

SQL> col BASELINE_NAME for a30
SQL> select dbid, baseline_name, baseline_type, moving_window_size from dba_hist_baseline;

      DBID BASELINE_NAME                  BASELINE_TYPE MOVING_WINDOW_SIZE
---------- ------------------------------ ------------- ------------------
2197530720 SYSTEM_MOVING_WINDOW           MOVING_WINDOW                  8

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

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

其中要注意:window size必須設(shè)置為一個(gè)小于或等于AWR設(shè)置的保留值。

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.

檢查當(dāng)前Moving Window Baseline的值,看是否修改的如你所愿

SQL> select dbid, baseline_name, baseline_type, moving_window_size from dba_hist_baseline;

      DBID BASELINE_NAME                  BASELINE_TYPE MOVING_WINDOW_SIZE
---------- ------------------------------ ------------- ------------------
2197530720 SYSTEM_MOVING_WINDOW           MOVING_WINDOW                  5

繼續(xù)之前的修改

SQL> BEGIN
  2    DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention => 7200, 
  3                   interval => 30, topnsql => 100);
  4  END;
  5  /

PL/SQL 過程已成功完成。

修改完后查看當(dāng)前AWR配置

SQL> select * from dba_hist_wr_control;

      DBID SNAP_INTERVAL        RETENTION            TOPNSQL
---------- -------------------- -------------------- ----------
2197530720 +00000 00:30:00.0    +00005 00:00:00.0           100

到此問題已解決。

到此,相信大家對“Baseline相關(guān)知識點(diǎn)有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI