共計 7699 個字符,預計需要花費 20 分鐘才能閱讀完成。
本篇內(nèi)容主要講解“Baseline 相關(guān)知識點有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“Baseline 相關(guān)知識點有哪些”吧!
在 Oracle Database 11g 中,AWR 基線提供了定義動態(tài)和未來基線的強大功能,并在很大程度上簡化了創(chuàng)建和管理性能數(shù)據(jù)(以便比較)的過程。
Oracle Database 11g 默認具備一個系統(tǒng)定義的 Moving Window Baseline,該基線對應(yīng)于 AWR 保留期中的所有 AWR 數(shù)據(jù)。僅可存在一個 Moving Window Baseline。系統(tǒng)定義的 Moving Window Baseline 認大小為當前的 AWR 保留期,即默認為八天。
如果要增大 Moving Window Baseline,首先需要相應(yīng)增大 AWR 保留期。AWR 保留期和系統(tǒng)定義的 Moving Window Baseline 的大小是兩個獨立的參數(shù)。但是 AWR 保留期必須大于或等于系統(tǒng)定義的 Moving Window Baseline 的大小。
Oracle Database 11g 提供了收集兩種基線的功能:靜態(tài)基線和 Moving Window Baseline。靜態(tài)基線可以是單一的,也可以是重復的。單一 AWR 基線是在單一時段內(nèi)收集的。重復基線是在重復的時段(例如,六月份的每個星期一)內(nèi)收集的。
在 Oracle Database 11g 中,如果 STATISTICS_LEVEL=TYPICAL 或 ALL,則默認啟用基線。
基線視圖
DBA_HIST_BASELINE:顯示有關(guān)系統(tǒng)中所獲取的基線的信息。對于每個基線,該視圖顯示完整的時間范圍,以及該基線是否為默認基線。其它信息包括創(chuàng)建日期、上一次統(tǒng)計信息計算的時間和基線類型。
DBA_HIST_BASELINE_DETAILS:顯示可用來確定給定基線有效性的信息,如基線時段期間是否存在關(guān)閉操作及基線時段中由快照數(shù)據(jù)覆蓋的百分比。
DBA_HIST_BASELINE_TEMPLATE:保存了基線模板。該視圖提供了 MMON 所需的信息,用以確定何時根據(jù)模板創(chuàng)建基線,以及何時應(yīng)刪除基線。
DBA_HIST_BASELINE_METADATA:顯示基線的元數(shù)據(jù)信息,包括名稱、類型、創(chuàng)建時間、模板和失效時間。
如果要在過去的某個時段創(chuàng)建基線,則使用 CREATE_BASELINE 過程;如果時段有任何部分處于未來,則使用 CREATE_BASELINE_TEMPLATE 過程。
單一 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)建一個名為 TEST39,從 2013-05-25 10:00:00 開始到 2013-05-29 11:00:00 結(jié)束的,且永遠不會過期的 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);
/
cascade 參數(shù)選擇 FALSE,如果選擇 TRUE 則會將刪除基線相關(guān)的快照
—————————————————————————————-
重命名基線
查看已經(jīng)存在的基線,然后重命名
BEGIN
DBMS_WORKLOAD_REPOSITORY.RENAME_BASELINE (
old_baseline_name = TEST3 ,
new_baseline_name = NTEST3 ,
);
/
============================================================
基線模板
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);
示例:
單一基線模板
先查詢當前的時間:
SQL select sysdate from dual;
SYSDATE
-------------------
2013-05-29 15:47:13
BASELINE_TEMPLATE 是需要有任何部分包含未發(fā)生的時間才能用的。
為此,我們來特別證明下:
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)錯誤:
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
果然如此,驗證之前說的過去的某時段必須要是使用 CREATE_BASELINE,反之包含任何時段的未來則使用 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 過程已成功完成。
重復基線模板
創(chuàng)建名 template_2013_mondays 的基線模板:每周一(day_of_week)早上 8 點開始(hour_in_day)持續(xù) 12 個小時(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
————————————————————————————-
刪除基線模板
查詢已存在的基線模板,確定需要刪除的基線名稱,比如 template_2013_monday
BEGIN
DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE_TEMPLATE (
template_name = template_2013_mondays ,
dbid = null);
/
修改默認的 Moving Window Baselin 的大小
在 11gR2 中 AWR 默認的配置是保留期為 8 天,快照每小時生成一次。
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)錯誤:
ORA-13541: 系統(tǒng)移動窗口基線大小 (691200) 大于保留時間 (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) 錯誤,根據(jù)錯誤提示,系統(tǒng)移動窗口基線(Moving Window Baseline)是 691200,即是 8 天。也就是說修改 AWR 保留期的值,跟此數(shù)值有關(guān)系,必須要大于此數(shù)值。
查看當前 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);
/
其中要注意:window size 必須設(shè)置為一個小于或等于 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.
檢查當前 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 過程已成功完成。
修改完后查看當前 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)知識點有哪些”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!