1. 首页
  2. IT资讯

10G新特性笔记之AWR,ASH,METRIC,ALERT&ADVISOR

http://empo007.itpub.net/post/12076/465449[@more@]

这里对10G的AWR,ASH,METRIC,ALERT&ADVISOR进行下总结

1、AWR架构包含两个部分,一个是in-memory statistics,存放在内存中,一个是persistent portion2、AWR中存放下面的统计信息:Object statistics,new SQL statistics,The new wait classes interface,The new time-model statistics,V$SYSSTAT and V$SESSTAT,Oracle optimizer statistics,Operating system statistics,Active Session History,Metrics3、ASH中包含最近会话的活动信息,系统每秒对v$session进行抽样,放在SGA中的ASH区,该ASH区采用的是循环使用的机制,V$ACTIVE_SESSION_HISTORY中包含的是活动会话的信息。不是所有的ASH数据被写入磁盘,因为数据量太大,所以进行了过滤。通常每60分钟MMON进程会写这些信息,当ASH BUFFER满的话MMNL进程会写。4、每CPU的ASH内存为2M,ASH内存不超过shared pool的5%5、Base Statistics和Metrics:base statistics是指收集的裸信息Metrics是基于base statistics的第二层信息,可以跟踪数据库的活动变化情况。该统计信息每分钟由MMON进程进行更新。METRIC的值由MMON进程计算,保存在内存中一个小时相关视图:V$SYSMETRIC, V$SESSMETRIC, V$SERVICEMETRIC, V$METRICNAMEV$FILEMETRIC, V$EVENTMETRIC, V$WAITCLASSMETRIC相关历史信息:v$sysmetric_history,dba_hist_*6、workload repository驻留在SYSAUX表空间,可以通过DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE设置AWR Snapshot Baselines给某个时间段的snapshots加标签。DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS用于更改AWR SNAPSHOT的保留时间和收集间隔。DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT用于手动创建SNAPSHOT。7、随着MMON进程的引入,ORACLE的一些内部组件可以周期性进行监控的动作,对发现的问题产生相应的alert信息。alert信息的产生是基于一些threshold值或者特定事件。相关alert信息分两种:EM产生的和SERVER产生的。两者的差别在于一个是通过EMD(EM daemon)直接访问SGA得到,一个是由MMON进程得到。SERVER产生的alert信息在alert_que中排队,该队列的主要consumer是DBCONSOLE。8、SERVER产生的alert可分为两种,一种是基于threshold,一种是基于event。基于threshold的alert信息可以在DBA_OUTSTANDING_ALERTS中找到,当被clear的时候,会进入DBA_ALERT_HISTORY,而alert history被purge也是基于AWR信息的purge策略。基于事件的alert比如下面这些:Snapshot Too Old,Recovery Area Low On Free Space,Resumable Session Suspended。这部分alert信息由DBCONSOLE控制,因为DBCONSOLE会把相关信息存放在自己的repository中。相关视图:DBA_THRESHOLDS,v$alert_types包:DBMS_SERVER_ALERT,过程:SET_THRESHOLD,GET_THRESHOLD9、如何使用自己的工具而不是DBCONSOLE来显示alert信息:首先通过DBMS_AQADM包的CREATE_AQ_AGENT创建一个AGENGT,并用ADD_SUBSCRIBER将AGENT进行SUBSCRIBE,然后将用户和agent建立联系,并给用户赋权限,这需要下面两个过程:ENABLE_DB_ACCESS和GRANT_QUEUE_PRIVILEGE。使用下面两个过程可以读取相关的ALERT信息:DBMS_AQ.DEQUEUE和DBMS_SERVER_ALERT.EXPAND_MESSAGE。过程DBMS_AQ.REGISTER用于当alert进入alert_que的时候接收一个异步的通知信息。BEGINdbms_aqadm.add_subscriber(‘SYS.ALERT_QUE’,sys.aq$_agent(‘alrt_usr1’,”, 0));dbms_aqadm.enable_db_access(‘alrt_usr1′,’alrt_usr1’);dbms_aqadm.grant_queue_privilege(‘DEQUEUE’,’alert_que’,’alrt_usr1′, false);END;BEGINdbms_aq.dequeue(‘SYS.ALERT_QUE’, dequeue_options,message_properties, message, message_handle);dbms_output.put_line(‘Reason: ‘ ||dbms_server_alert.expand_message(userenv(‘LANGUAGE’),message.message_id, message.reason_argument_1,message.reason_argument_2,message.reason_argument_3,message.reason_argument_4,message.reason_argument_5));END;10、通过SCHEDULER管理自动例行任务首先定义一个管理窗口,然后将JOB和该时间窗口或者窗口组建立联系。JOB级别与资源使用要求相关。下面是个例子:DBMS_SCHEDULER.CREATE_JOB(job_name => ‘table_reorg’,job_type => ‘STORED_PROCEDURE’,job_action => ‘mypack.tab_reorg_job_proc’,job_class => ‘AUTO_TASKS_JOB_CLASS’,schedule_name => ‘WEEKEND_WINDOW’);11、Advisory下面是相关的几个Advisory的列表:ADDM,SQL Tuning Advisor,SQL Access Advisor,PGA Advisor,SGA Advisor,Segment Advisor,Undo Advisor所有的advisor都使用一致的接口;所有的advisor的一般源数据和结果都存放在workload repository.一个典型的调整会话包含下面几个步骤:首先是创建调整任务:DBMS_ADVISOR.CREATE_TASK选择合适的任务参数:DBMS_ADVISOR.SET_TASK_PARAMETER,典型的参数包含TARGET_OBJECTS, TIME_WINDOW和TIME_LIMIT进行分析:DBMS_ADVISOR.EXECUTE_TASK查看结果:DBMS_ADVISOR.GET_TASK_REPORT相关视图:DBA_ADVISOR_DEFINITIONS,DBA_ADVISOR_TASKS,DBA_ADVISOR_LOG,DBA_ADVISOR_PARAMETERS,DBA_ADVISOR_COMMANDS,DBA_ADVISOR_OBJECTS,DBA_ADVISOR_FINDINGS,DBA_ADVISOR_RECOMMENDATIONS,DBA_ADVISOR_ACTIONS,DBA_ADVISOR_RATIONALE,DBA_ADVISOR_USAGE

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/450962/viewspace-1027699/,如需转载,请注明出处,否则将追究法律责任。

主题测试文章,只做测试使用。发布者:布吉卡,转转请注明出处:http://www.cxybcw.com/194762.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code