溫馨提示×

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

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

通過(guò)案例學(xué)調(diào)優(yōu)之--AWR BaseLine管理

發(fā)布時(shí)間:2020-07-08 14:50:16 來(lái)源:網(wǎng)絡(luò) 閱讀:1563 作者:客居天涯 欄目:關(guān)系型數(shù)據(jù)庫(kù)

通過(guò)案例學(xué)調(diào)優(yōu)之--AWR BaseLine管理

BaseLine

     Baseline 是指一個(gè)特定時(shí)間段內(nèi)的性能數(shù)據(jù),保留這些數(shù)據(jù)是為了在性能問(wèn)題產(chǎn)生時(shí)與其他類(lèi)似的工作負(fù)載時(shí)間段進(jìn)行比較。Baseline 中包含的快照將從自動(dòng) AWR 清理進(jìn)程中排除,并無(wú)限期的保留。

在 Oracle Database 中存在多種類(lèi)型的 baseline:

     Fixed Baseline:fixed baseline 表示的是您指定的一個(gè)固定的、連續(xù)的時(shí)間段。在創(chuàng)建 fixed baseline 之前,請(qǐng)認(rèn)真考慮您選作 baseline 的時(shí)間段,因?yàn)樵?baseline 應(yīng)該代表系統(tǒng)處于良好的性能下運(yùn)行。您可以在將來(lái)將該 baseline 與在性能較差的時(shí)間段捕獲的其他 baseline 或 snapshot 進(jìn)行比較分析。 

     Moving Window Baseline表示的是 AWR 保留期內(nèi)存在的所有 AWR 數(shù)據(jù)。在使用自適應(yīng)閾值時(shí),它非常有用,因?yàn)閿?shù)據(jù)庫(kù)可以使用整個(gè) AWR 保留期內(nèi)的 AWR 數(shù)據(jù)來(lái)計(jì)算指標(biāo)值。

     Oracle Database 會(huì)自動(dòng)維護(hù)系統(tǒng)定義的 moving window baseline。系統(tǒng)定義的 moving window baseline 的默認(rèn)窗口大小就是當(dāng)前的 AWR 保留期,即默認(rèn)為 8 天。如果您打算使用自適應(yīng)閾值,請(qǐng)考慮使用更長(zhǎng)的移動(dòng)窗口——如30天,以便精確地計(jì)算閾值。您可以重新調(diào)整 moving window baseline,將移動(dòng)窗口的大小調(diào)整為小于或等于 AWR 的保留天數(shù)。因此,要增加移動(dòng)窗口的大小,必須要先增加相應(yīng)的 AWR 保留期限。

     Baseline Template:您可以使用 baseline template 創(chuàng)建將來(lái)某個(gè)連續(xù)時(shí)間段的 baseline。Oracle 中有兩種 baseline 模板:single 和 repeating

     利用 single baseline template,您可以為將來(lái)某個(gè)單獨(dú)的連續(xù)時(shí)間段創(chuàng)建 baseline。該技術(shù)在某些情況下非常有用。例如,如果您想捕獲下周計(jì)劃的系統(tǒng)測(cè)試期間的 AWR 數(shù)據(jù),您可以創(chuàng)建一個(gè) single baseline template 來(lái)自動(dòng)捕獲測(cè)試發(fā)生的時(shí)間段的統(tǒng)計(jì)數(shù)據(jù)。

     利用 repeating baseline template ,可以根據(jù)重復(fù)的時(shí)間計(jì)劃創(chuàng)建和刪除 baseline。當(dāng)您希望 Oracle Database 自動(dòng)持續(xù)地捕獲連續(xù)時(shí)間段的統(tǒng)計(jì)數(shù)據(jù)時(shí),這非常有用。例如,您可能需要在長(zhǎng)達(dá)一個(gè)月內(nèi)捕獲每周一早上的 AWR 數(shù)據(jù)。在這種情況下,您可以創(chuàng)建一個(gè) repeating baseline template ,以在每周一自動(dòng)創(chuàng)建 baseline,在指定的過(guò)期期限內(nèi)自動(dòng)刪除過(guò)時(shí)的 baseline。

案例:

1、創(chuàng)建基線

Fixed Baseline:fixed baseline 表示的是您指定的一個(gè)固定的、連續(xù)的時(shí)間段。

根據(jù)snap_id創(chuàng)建:
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);

根據(jù)時(shí)間創(chuàng)建: 
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.

創(chuàng)建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 序列號(hào),436 是結(jié)束 snapshot 序列號(hào)。expiration => 30 表示該 baseline 將在30天后自動(dòng)刪除,expiration =>null表示,永不過(guò)期
--創(chuàng)建 baseline 時(shí),系統(tǒng)會(huì)自動(dòng)分配一個(gè)唯一的 baseline ID 給新建的 baseline??梢酝ㄟ^(guò) 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 參數(shù)設(shè)置為 FALSE,指定只刪除。將此參數(shù)設(shè)置為 TRUE 指定刪除與該 baseline 相關(guān)聯(lián)的所有快照。

移動(dòng)窗口(Moving Window)基線

       Oracle 11g引入了移動(dòng)窗口(Moving Window)基線的概念,用于計(jì)算閥值的度量,窗口(window)是AWR數(shù)據(jù)在保存期限內(nèi)的一個(gè)視圖,窗口大小與AWR默認(rèn)的保留期限8天匹配,但它可以設(shè)置為這個(gè)值的子集,在增大窗口大小前,首先要增大AWR保留期限的大小。

查詢DBA_HOST_WR_CONTROL視圖的RETENTION列,可以返回當(dāng)前的AWR保留期限。

14:45:42 SYS@ test1 >SELECT retention FROM dba_hist_wr_control;
RETENTION
---------------------------------------------------------------------------
+00008 00:00:00.0

使用存儲(chǔ)過(guò)程MODIFY_SNAPSHOT_SETTINGS可以修改保留期限,指定RETENTION參數(shù),單位分鐘。


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視圖可以返回當(dāng)前的移動(dòng)窗口大小。

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

使用存儲(chǔ)過(guò)程MODIFY_BASELINE_WINDOW_SIZE可以修改移動(dòng)窗口基線,它接受WINDOW_SIZE參數(shù),單位為天。

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建議在使用適當(dāng)?shù)拈y值時(shí),窗口大小應(yīng)大于或等于30天。(應(yīng)該小于或等于snapshot的retention)

基線模板

      基線模板允許你定義可能在將來(lái)要捕獲的基線,CREATE_BASELINE_TEMPLATE存儲(chǔ)過(guò)程定義單一基線或重復(fù)基線的捕獲,創(chuàng)建單一基線模板與創(chuàng)建基于時(shí)間的基線類(lèi)似,除了將來(lái)的時(shí)間外。

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

       重復(fù)基線模板稍微有點(diǎn)不同,因?yàn)樗枰{(diào)度信息,START_TIME和END_TIME參數(shù)分別在模板激活和釋放時(shí)定義,DAY_OF_WEEK,HOUR_IN_DAY和DURATION定義產(chǎn)生基線的日期,時(shí)間和持續(xù)時(shí)間,因?yàn)槟0鍟?huì)產(chǎn)生多個(gè)基線,基線名是以BASELINE_NAME_PREFIX開(kāi)始的,下面的基線模板例子將在未來(lái)6個(gè)月內(nèi)運(yùn)行,每周星期一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列可能保留了基線前綴或完整的基線名,主要依賴(lài)于捕獲基線的類(lèi)型.

DROP_BASELINE_TEMPLATE存儲(chǔ)過(guò)程刪除基線模板

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:顯示有關(guān)系統(tǒng)中所獲取的基線的信息。對(duì)于每個(gè)基線,該視圖顯示完整的時(shí)間范圍,以及該基線是否為默認(rèn)基線。其它信息包括創(chuàng)建日期、上一次統(tǒng)計(jì)信息計(jì)算的時(shí)間和基線類(lèi)型。
DBA_HIST_BASELINE_DETAILS:顯示可用來(lái)確定給定基線有效性的信息,如基線時(shí)段期間是否存在關(guān)閉操作及基線時(shí)段中由快照數(shù)據(jù)覆蓋的百分比。
DBA_HIST_BASELINE_TEMPLATE:保存了基線模板。該視圖提供了 MMON 所需的信息,用以確定何時(shí)根據(jù)模板創(chuàng)建基線,以及何時(shí)應(yīng)刪除基線。
DBA_HIST_BASELINE_METADATA:顯示基線的元數(shù)據(jù)信息,包括名稱(chēng)、類(lèi)型、創(chuàng)建時(shí)間、模板和失效時(shí)間。
如果要在過(guò)去的某個(gè)時(shí)段創(chuàng)建基線,則使用 CREATE_BASELINE 過(guò)程;如果時(shí)段有任何部分處于未來(lái),則使用CREATE_BASELINE_TEMPLATE 過(guò)程。

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

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

AI