首頁 資料庫 mysql教程 通过案例学调优之--AWRBaseLine管理

通过案例学调优之--AWRBaseLine管理

Jun 07, 2016 pm 02:53 PM
案例 管理 透過

通过案例学调优之--AWR BaseLine管理 BaseLine Baseline 是指一个特定时间段内的性能数据,保留这些数据是为了在性能问题产生时与其他类似的工作负载时间段进行比较。Baseline 中包含的快照将从自动 AWR 清理进程中排除,并无限期的保留。 在 Oracle Databas

通过案例学调优之--AWR BaseLine管理

BaseLine

     Baseline 是指一个特定时间段内的性能数据,保留这些数据是为了在性能问题产生时与其他类似的工作负载时间段进行比较。Baseline 中包含的快照将从自动 AWR 清理进程中排除,并无限期的保留。

在 Oracle Database 中存在多种类型的 baseline:

     Fixed Baseline:fixed baseline 表示的是您指定的一个固定的、连续的时间段。在创建 fixed baseline 之前,请认真考虑您选作 baseline 的时间段,因为该 baseline 应该代表系统处于良好的性能下运行。您可以在将来将该 baseline 与在性能较差的时间段捕获的其他 baseline 或 snapshot 进行比较分析。 

     Moving Window Baseline表示的是 AWR 保留期内存在的所有 AWR 数据。在使用自适应阈值时,它非常有用,因为数据库可以使用整个 AWR 保留期内的 AWR 数据来计算指标值。

     Oracle Database 会自动维护系统定义的 moving window baseline。系统定义的 moving window baseline 的默认窗口大小就是当前的 AWR 保留期,即默认为 8 天。如果您打算使用自适应阈值,请考虑使用更长的移动窗口——如30天,以便精确地计算阈值。您可以重新调整 moving window baseline,将移动窗口的大小调整为小于或等于 AWR 的保留天数。因此,要增加移动窗口的大小,必须要先增加相应的 AWR 保留期限。

     Baseline Template:您可以使用 baseline template 创建将来某个连续时间段的 baseline。Oracle 中有两种 baseline 模板:single 和 repeating

     利用 single baseline template,您可以为将来某个单独的连续时间段创建 baseline。该技术在某些情况下非常有用。例如,如果您想捕获下周计划的系统测试期间的 AWR 数据,您可以创建一个 single baseline template 来自动捕获测试发生的时间段的统计数据。

     利用 repeating baseline template ,可以根据重复的时间计划创建和删除 baseline。当您希望 Oracle Database 自动持续地捕获连续时间段的统计数据时,这非常有用。例如,您可能需要在长达一个月内捕获每周一早上的 AWR 数据。在这种情况下,您可以创建一个 repeating baseline template ,以在每周一自动创建 baseline,在指定的过期期限内自动删除过时的 baseline。

案例:

1、创建基线

Fixed Baseline:fixed baseline 表示的是您指定的一个固定的、连续的时间段。

根据snap_id创建:
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_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.

创建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 序列号,436 是结束 snapshot 序列号。expiration => 30 表示该 baseline 将在30天后自动删除,expiration =>null表示,永不过期
--创建 baseline 时,系统会自动分配一个唯一的 baseline ID 给新建的 baseline。可以通过 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 参数设置为 FALSE,指定只删除。将此参数设置为 TRUE 指定删除与该 baseline 相关联的所有快照。
登入後複製

移动窗口(Moving Window)基线

Oracle 11g引入了移动窗口(Moving Window)基线的概念,用于计算阀值的度量,窗口(window)是AWR数据在保存期限内的一个视图,窗口大小与AWR默认的保留期限8天匹配,但它可以设置为这个值的子集,在增大窗口大小前,首先要增大AWR保留期限的大小。

查询DBA_HOST_WR_CONTROL视图的RETENTION列,可以返回当前的AWR保留期限。

14:45:42 SYS@ test1 >SELECT retention FROM dba_hist_wr_control;
RETENTION
---------------------------------------------------------------------------
+00008 00:00:00.0
登入後複製

使用存储过程MODIFY_SNAPSHOT_SETTINGS可以修改保留期限,指定RETENTION参数,单位分钟。


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视图可以返回当前的移动窗口大小。

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
登入後複製

使用存储过程MODIFY_BASELINE_WINDOW_SIZE可以修改移动窗口基线,它接受WINDOW_SIZE参数,单位为天。

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建议在使用适当的阀值时,窗口大小应大于或等于30天。(应该小于或等于snapshot的retention)
登入後複製

基线模板

基线模板允许你定义可能在将来要捕获的基线,CREATE_BASELINE_TEMPLATE存储过程定义单一基线或重复基线的捕获,创建单一基线模板与创建基于时间的基线类似,除了将来的时间外。

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
登入後複製

重复基线模板稍微有点不同,因为它需要调度信息,START_TIME和END_TIME参数分别在模板激活和释放时定义,DAY_OF_WEEK,HOUR_IN_DAY和DURATION定义产生基线的日期,时间和持续时间,因为模板会产生多个基线,基线名是以BASELINE_NAME_PREFIX开始的,下面的基线模板例子将在未来6个月内运行,每周星期一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列可能保留了基线前缀或完整的基线名,主要依赖于捕获基线的类型.
登入後複製

DROP_BASELINE_TEMPLATE存储过程删除基线模板

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:显示有关系统中所获取的基线的信息。对于每个基线,该视图显示完整的时间范围,以及该基线是否为默认基线。其它信息包括创建日期、上一次统计信息计算的时间和基线类型。
DBA_HIST_BASELINE_DETAILS:显示可用来确定给定基线有效性的信息,如基线时段期间是否存在关闭操作及基线时段中由快照数据覆盖的百分比。
DBA_HIST_BASELINE_TEMPLATE:保存了基线模板。该视图提供了 MMON 所需的信息,用以确定何时根据模板创建基线,以及何时应删除基线。
DBA_HIST_BASELINE_METADATA:显示基线的元数据信息,包括名称、类型、创建时间、模板和失效时间。
如果要在过去的某个时段创建基线,则使用 CREATE_BASELINE 过程;如果时段有任何部分处于未来,则使用CREATE_BASELINE_TEMPLATE 过程。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1317
25
PHP教程
1268
29
C# 教程
1248
24
如何利用Redis實現分散式事務管理 如何利用Redis實現分散式事務管理 Nov 07, 2023 pm 12:07 PM

如何利用Redis實現分散式事務管理引言:隨著網際網路的快速發展,分散式系統的使用越來越廣泛。在分散式系統中,事務管理是一項重要的挑戰。傳統的事務管理方式在分散式系統中難以實現,且效率低。而利用Redis的特性,我們可以輕鬆實現分散式事務管理,提高系統的效能和可靠性。一、Redis簡介Redis是一種基於記憶體的資料儲存系統,具有高效的讀寫效能和豐富的數據

如何實現Java中的學生成績管理功能? 如何實現Java中的學生成績管理功能? Nov 04, 2023 pm 12:00 PM

如何實現Java中的學生成績管理功能?在現代教育系統中,學生成績管理是一項非常重要的任務。透過對學生成績的管理,學校能夠更好地監測學生的學習進度、了解他們的弱點和優勢,並根據這些資訊做出更有針對性的教學計劃。在這篇文章中,我們將討論如何使用Java程式語言來實現學生成績管理功能。首先,我們需要確定學生成績的資料結構。通常,學生成績可以被表示為一個包含學生訊息

Laravel擴充包管理:輕鬆整合第三方程式碼和功能 Laravel擴充包管理:輕鬆整合第三方程式碼和功能 Aug 25, 2023 pm 04:07 PM

Laravel擴充包管理:輕鬆整合第三方程式碼和功能引言:在Laravel開發中,我們經常使用第三方程式碼和功能來提高專案的效率和穩定性。而Laravel擴充包管理系統讓我們可以輕鬆整合這些第三方程式碼和功能,使得我們的開發工作更加便利和有效率。本文將介紹Laravel擴充包管理的基本概念和使用方法,並透過一些實際的程式碼範例來幫助讀者更好地理解和應用。什麼是Lara

如何在麒麟作業系統上進行網路伺服器的設定與管理? 如何在麒麟作業系統上進行網路伺服器的設定與管理? Aug 04, 2023 pm 09:25 PM

如何在麒麟作業系統上進行網路伺服器的設定與管理?麒麟作業系統是中國自主開發的一種基於Linux的作業系統。它具有開源、安全、穩定等特點,在國內得到了廣泛的應用。本文將介紹如何在麒麟作業系統上進行網頁伺服器的設定與管理,幫助讀者更能建構和管理自己的網路伺服器。一、安裝相關軟體在開始設定和管理網路伺服器之前,我們需要先安裝一些必要的軟體。在麒麟作業系統上,可以

win10右鍵選單管理打不開怎麼辦 win10右鍵選單管理打不開怎麼辦 Jan 04, 2024 pm 07:07 PM

我們在使用win10系統的時候,使用滑鼠去右鍵桌面或是右鍵選單的時候,發現選單等都打不開,無法正常的去使用電腦了,這時候就需要恢復系統來解決問題。 win10右鍵選單管理打不開:1、先開啟我們的控制面板,然後點選。 2、然後點選安全性和維護下的。 3.再點擊右側的來恢復系統即可。 4.如果還是無法使用,是看是否是滑鼠本身出了問題。 5.如果確定滑鼠沒有問題的話,按下+,輸入。 6.執行完畢後,重啟電腦即可。

MongoDB技術開發中遇到的事務管理問題解決方案分析 MongoDB技術開發中遇到的事務管理問題解決方案分析 Oct 08, 2023 am 08:15 AM

MongoDB技術開發中遇到的事務管理問題解決方案分析隨著現代應用程式變得越來越複雜和龐大,對資料的事務處理需求也越來越高。作為一種流行的NoSQL資料庫,MongoDB在資料管理方面有著出色的效能和擴展性。然而,MongoDB在資料一致性和事務管理方面相對較弱,為開發人員帶來了挑戰。在本文中,我們將探討在MongoDB開發中遇到的事務管理問題,並提出一些解

如何使用Hyperf框架進行快取管理 如何使用Hyperf框架進行快取管理 Oct 21, 2023 am 08:36 AM

如何使用Hyperf框架進行快取管理快取是提高應用效能的重要手段之一,而現代框架為我們提供了更便利的快取管理工具。本文將介紹如何使用Hyperf框架進行快取管理,並提供具體的程式碼範例。 Hyperf框架是基於Swoole拓展開發的高效能框架,內建了豐富的元件和工具,其中包括強大的快取管理功能。 Hyperf框架支援多種快取驅動,如Redis、Memcach

Oracle資料庫中主目錄的作用與管理方式探究 Oracle資料庫中主目錄的作用與管理方式探究 Mar 07, 2024 pm 02:27 PM

Oracle資料庫中主目錄的作用和管理方式探究在Oracle資料庫中,主目錄(MasterDirectory)是一個重要的對象,它的主要作用是用於指定Oracle資料庫中所有資料檔案和控製檔案的預設儲存位置。透過設定主目錄,可以方便地管理資料庫檔案的儲存和訪問,提高資料庫的效能和安全性。主目錄可以透過以下方式管理:1.建立主目錄要建立一個主目錄,可以

See all articles