热点推荐
ZOL首页 > 服务器 > 知识学堂 > Oracle > Oracle 11g R1中AWR基线增强(1)

Oracle 11g R1中AWR基线增强(1)


51cto 【转载】 2009年03月13日 10:28

自动工作量仓库是从Oracle 10g开始引入的,不过只包括了一些简单的基线功能,创建一个基线允许保留指定范围内的快照用于性能对比,与AWR保留策略无关,可以使用DBMS_WORKLOAD_REPOSITORY包来管理这个功能,在11g中,它被增强了。

注意,DBMS_WORKLOAD_REPOSITORY包中的大部分存储过程和函数接受DBID参数,该参数是本地数据库的默认标识符,由于这个原因,下面的例子中将会省略掉该参数。

固定基线

相对Oracle 10g而言,11g中的固定或静态基线功能更丰富,最初,在Oracle 10g中,DBMS_WORKLOAD_REPOSITORY包中只提供了一个CREATE_BASELINE存储过程允许你使用特定的快照ID来定义基线,在Oracle 11g中,包括了更多的用于创建基线存储过程和函数,它们使用开始时间和截至时间进行基线创建,这样有助于计算出有关的快照ID,函数与存储过程的参数一样,但返回的是基线的ID,默认基线永远保存,但新的有效期参数expiration允许指定在某一日期后那些基线将自动失效。


SET SERVEROUTPUT ONDECLARE l_return NUMBER;BEGIN -- Using procedures. DBMS_WORKLOAD_REPOSITORY.create_baseline( start_snap_id => 2490,【快照开始ID】 end_snap_id => 2491,【快照截至ID】 baseline_name => 'test1_bl', expiration => 60);【60天后失效】 DBMS_WORKLOAD_REPOSITORY.create_baseline( start_time => TO_DATE('09-JUL-2008 17:00', 'DD-MON-YYYY HH24:MI'),【开始时间】 end_time => TO_DATE('09-JUL-2008 18:00', 'DD-MON-YYYY HH24:MI'),【截至时间】 baseline_name => 'test2_bl', expiration => NULL);【永远都不失效】 -- Using functions. l_return := DBMS_WORKLOAD_REPOSITORY.create_baseline( start_snap_id => 2492, end_snap_id => 2493, baseline_name => 'test3_bl', expiration => 30); DBMS_OUTPUT.put_line('Return: ' || l_return); l_return := DBMS_WORKLOAD_REPOSITORY.create_baseline( start_time => TO_DATE('09-JUL-2008 19:00', 'DD-MON-YYYY HH24:MI'), end_time => TO_DATE('09-JUL-2008 20:00', 'DD-MON-YYYY HH24:MI'), baseline_name => 'test4_bl', expiration => NULL); DBMS_OUTPUT.put_line('Return: ' || l_return);END;/Return: 8Return: 9PL/SQL procedure successfully completed.SQL>

新的基线在DBA_HIST_BASELINE视图中可见。

COLUMN baseline_name FORMAT A15SELECT baseline_id, baseline_name, START_SNAP_ID, TO_CHAR(start_snap_time, 'DD-MON-YYYY HH24:MI') AS start_snap_time, END_SNAP_ID, TO_CHAR(end_snap_time, 'DD-MON-YYYY HH24:MI') AS end_snap_timeFROM dba_hist_baselineWHERE baseline_type = 'STATIC'ORDER BY baseline_id;BASELINE_ID BASELINE_NAME START_SNAP_ID START_SNAP_TIME END_SNAP_ID END_SNAP_TIME----------- --------------- ------------- ----------------- ----------- ----------------- 6 test1_bl 2490 09-JUL-2008 17:00 2491 09-JUL-2008 18:00 7 test2_bl 2490 09-JUL-2008 17:00 2491 09-JUL-2008 18:00 8 test3_bl 2492 09-JUL-2008 19:00 2493 09-JUL-2008 20:00 9 test4_bl 2492 09-JUL-2008 19:00 2493 09-JUL-2008 20:004 rows selected.SQL>

使用管道表函数SELECT_BASELINE_DETAILS,指定BASELINE_ID参数,可以返回某个特定基线的信息,也可以使用管道表函数SELECT_BASELINE_METRIC,指定BASELINE_NAM参数,返回同样的结果。

SELECT * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.select_baseline_details(6));SELECT * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.select_baseline_metric('SYSTEM_MOVING_WINDOW'));

基线可以使用存储过程RENAME_BASELINE进行重命名。

BEGIN DBMS_WORKLOAD_REPOSITORY.rename_baseline( old_baseline_name => 'test4_bl', new_baseline_name => 'test5_bl');END;/

使用存储过程DROP_BASELINE可以删除基线。

BEGIN DBMS_WORKLOAD_REPOSITORY.drop_baseline(baseline_name => 'test1_bl'); DBMS_WORKLOAD_REPOSITORY.drop_baseline(baseline_name => 'test2_bl'); DBMS_WORKLOAD_REPOSITORY.drop_baseline(baseline_name => 'test3_bl'); DBMS_WORKLOAD_REPOSITORY.drop_baseline(baseline_name => 'test5_bl');END;/


企业管理器可能是管理AWR基线最方便的方法。在“AWR基线”屏幕上(服务器AWR基线),点击“创建”按钮。

 

 选择时间间隔类型“单一”,然后点击“继续”按钮。

 

 输入基线的名字,然后通过选择起止快照ID或指定时间范围来指定基线的起止点。然后点击“完成”按钮。

 

 新创建的基线显示在“AWR基线”屏幕。

 

可以选中基线名称后,点“删除”按钮将该基线删除,点“查看”按钮查看该基线的详细信息。在“AWR基线”屏幕,选择基线后,从操作下拉列表中选择“调度统计信息计算”,然后点击“开始”按钮,可以进行调度统计。


 
移动窗口(Moving Window)基线

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

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

SELECT retention FROM dba_hist_wr_control;RETENTION---------------------------------------------------------------------------+00008 00:00:00.01 row selected.SQL>

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

BEGIN DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings( retention => 43200); -- Minutes (= 30 Days).END;/SELECT retention FROM dba_hist_wr_control;RETENTION---------------------------------------------------------------------------+00030 00:00:00.01 row selected.SQL>

查询DBA_HIST_BASELINE视图可以返回当前的移动窗口大小。

SELECT moving_window_sizeFROM dba_hist_baselineWHERE baseline_type = 'MOVING_WINDOW';MOVING_WINDOW_SIZE------------------ 81 row selected.SQL>

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

BEGIN DBMS_WORKLOAD_REPOSITORY.modify_baseline_window_size( window_size => 20);END;/SELECT moving_window_sizeFROM dba_hist_baselineWHERE baseline_type = 'MOVING_WINDOW';MOVING_WINDOW_SIZE------------------ 201 row selected.SQL>

Oracle建议在使用适当的阀值时,窗口大小应大于或等于30天。

要在企业管理器中调整保留期限,在“自动工作量档案库”屏幕点击“编辑”按钮(服务器自动工作量档案库)。

 

 编辑“使用基于时间的保留”,指定一个合适的天数,然后点击“确定”按钮。


 
接下来,进入“AWR基线”屏幕(服务器AWR基线),选择“SYSTEM_MOVING_WINDOW”基线,然后点“编辑”按钮。

 

 设置合适的“窗口大小”值,然后点“应用”按钮。

 


 
基线模板

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

BEGIN DBMS_WORKLOAD_REPOSITORY.create_baseline_template( start_time => TO_DATE('01-DEC-2008 00:00', 'DD-MON-YYYY HH24:MI'), end_time => TO_DATE('01-DEC-2008 05:00', 'DD-MON-YYYY HH24:MI'), baseline_name => '01_dec_008_00_05_bl', template_name => '01_dec_008_00_05_tp', expiration => 100);END;/

重复基线模板稍微有点不同,因为它需要调度信息,START_TIME和END_TIME参数分别在模板激活和释放时定义,DAY_OF_WEEK,HOUR_IN_DAY和DURATION定义产生基线的日期,时间和持续时间,因为模板会产生多个基线,基线名是以BASELINE_NAME_PREFIX开始的,下面的基线模板例子将在未来6个月内运行,每周星期一00:00大盘05:00收集基线。

BEGIN 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);END;/

查询DBA_HIST_BASELINE_TEMPLATE视图可以查看基线模板的详细信息。

SELECT template_name, template_type, baseline_name_prefix, start_time, end_time, day_of_week, hour_in_day, duration, expirationFROM dba_hist_baseline_template;

 

注意BASELINE_NAME_PREFIX列可能保留了基线前缀或完整的基线名,主要依赖于捕获基线的类型,DROP_BASELINE_TEMPLATE存储过程删除基线模板。

BEGIN DBMS_WORKLOAD_REPOSITORY.drop_baseline_template (template_name => '01_dec_008_00_05_tp'); DBMS_WORKLOAD_REPOSITORY.drop_baseline_template (template_name => 'monday_morning_tp');END;/

企业管理器使用创建基线一样的屏幕来创建基线模板,导航到“AWR基线”屏幕(服务器AWR基线),然后点击“创建”按钮,选择间隔类型“单一”,然后点“继续”按钮,输入基线模板名称,指定时间范围,点“完成”按钮,如果时间范围指未来一段时间,将自动创建基线模板,而不是基线。

在“AWR屏幕”下方,点“AWR基线模板”,可以看到新创建的基线模板。

 

 要才重复基线模板,在选择时间间隔类型时选择“重复”。重复基线模板和单一基线模板创建后在“AWR基线模板”屏幕可见。


给文章打分 5分为满分(共0人参与) 查看排行>>
频道热词:LED照明  工作站  云计算  
视觉焦点
服务器知识学堂热点
排行 文章标题
TOP10周热门服务器排行榜
  • 热门
  • 新品
  • 系列
查看完整榜单>>
 
基线度量阀值

Oracle 11g简化了基线度量阀值的定义,允许它们被应用到基线,包括移动窗口(moving window)基线,开始使用基线度量阀值的最简单的方法是在“基线度量阀值”屏幕点击“快速配置”按钮(首页基线度量阀值)。

 

 选择一个“工作量概要文件”,然后点击“继续”按钮。

 

 然后在回顾屏幕,点击“完成”按钮。

 

 在“基线度量阀值”屏幕显示合适的阀值,点击“类别/名称”或点击“编辑阀值”图标编辑阀值设置。

 

 如果你需要修改阀值设置,修改完后别忘了点击“应用阀值”按钮。