您好,登錄后才能下訂單哦!
本篇內容主要講解“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 過程。
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;
示例:
創建一個名為TEST39,從2013-05-25 10:00:00開始到2013-05-29 11:00:00結束的,且永遠不會過期的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;
查看已經創建了哪些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參數選擇FALSE,如果選擇TRUE則會將刪除基線相關的快照
—————————————————————————————-
重命名基線
查看已經存在的基線,然后重命名
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);
示例:
單一基線模板
先查詢當前的時間:
SQL> select sysdate from dual; SYSDATE ------------------- 2013-05-29 15:47:13
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 15:00:00', 5 baseline_name => 'FALL29', 6 template_name => 'FALL29', 7 expiration => NULL ); 8 END; 9 / BEGIN * 第 1 行出現錯誤: ORA-13537: 為創建基線模板而輸入的內容無效 (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 過程已成功完成。
重復基線模板
創建名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> 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); END; /
在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
現在想要改變AWR配置滿足系統的需求
SQL> BEGIN 2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention => 7200, 3 interval => 30, topnsql => 100); 4 END; 5 / BEGIN * 第 1 行出現錯誤: ORA-13541: 系統移動窗口基線大小 (691200) 大于保留時間 (345600) ORA-06512: 在 "SYS.DBMS_WORKLOAD_REPOSITORY", line 174 ORA-06512: 在 "SYS.DBMS_WORKLOAD_REPOSITORY", line 222 ORA-06512: 在 line 2
出現ORA-13541: system moving window baseline size (691200) greater than retention (518400)錯誤,根據錯誤提示,系統移動窗口基線(Moving Window Baseline)是691200,即是8天。也就是說修改AWR保留期的值,跟此數值有關系,必須要大于此數值。
查看當前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必須設置為一個小于或等于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> 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
繼續之前的修改
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相關知識點有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。