《SpotlightOnOracle使用与分析.ppt》由会员分享,可在线阅读,更多相关《SpotlightOnOracle使用与分析.ppt(72页珍藏版)》请在三一办公上搜索。
1、Spotlight On Oracle的使用与分析,测试六部:沈兵2010-4-30,3,培训日程,了解Spotlight特色主界面主要概念调优步骤培训目标启动和配置Spotlight主界面组建介绍发现问题:告警诊断问题:下钻解决问题:修改内存配置、调优SQL常见告警及对策,3,了解Spotlight,了解Spotlight,3,了解Spotlight,Tuning by Bottleneck图形化、实时显示 Oracle Instance的活动状态利用数据流、图形、颜色和声音等方式报警,识别系统问题显示有关问题的详细信息,如活动的 Sessions、资源消耗大的SQL语句、Disk I/O以
2、及Locks/Latches/等待事件内置调优建议与其它模块集成,3,了解Spotlight:其他特色,历史记录和回放Spotlight可以按时间或报警事件获取历史快照(historical snapshots)利用这些快照,可以对历史状态进行诊断即使在连接断开时仍可以查看历史快照信息集成Knowledge XpertSpotlight集成了Knowledge Xpert专家支持库,为开发人员和DBA提供一个全面的知识库收集操作系统信息收集关键的操作系统信息如CPU、内存使用等,3,主界面,Database Session informationOperating System Informa
3、tionDatabase ProcessesDatabase SGA ActivitiesBackground ProcessesDatabase Storage informationDataflows in and out of the database,3,Spotlight中的概念,MetricsThresholdsSeveritiesDataflowAlarmDrillDown,3,Metrics,每一个metric反映数据库的一个性能指标,被显示在Spotlight界面中在metric的基础上可以设定报警阀值Spotlight收集性能信息(Metric)的频率可以根据需要来设定,3
4、,Thresholds,阀值是在metric值的基础上设置的。当出现问题时,通过阀值来决定应该发送什么报警一个阀值只能属于一个metric,但一个metric可以有多个阀值在每个控件上点击右键选择“Metrics”,即可设置阀值,3,Severities,每一个阀值可以被连接到一个严重级别上,严重级别可以决定当阀值被超过时应当采取什么样的行动,主要包括:改变颜色改变数据流动速度,并闪烁发出报警声音,或执行发送e-mail等行动,3,Dataflow,在Spotlight主界面中,Panel之间是通过一系列数据流来连接的,数据流显示系统中数据库流动或交换的速度当出现性能问题时,数据流通过改变流动
5、速度和颜色的方式来报警Calibration:决定每个数据流的最大值,3,Alarm,系统出现性能问题时,Spotlight会立刻发出报警,每一个报警至少包含以下一个动作:改变出现问题的部分的报警颜色闪烁发出报警声音,3,DrillDown,通过逐渐深入可以获取更多的信息,这些逐渐深入主要包括:Top Sessions DrilldownTop SQL DrilldownActivity DrilldownI/O DrilldownAlert Log Drilldown,3,调优步骤,使用Spotlight主界面监控瓶颈使用Activity进行下钻显示全面效率和资源使用情况特别地,注意Wait
6、 Events和CPU使用率使用其它界面检查更详细的活动,3,启动和配置,Spotlight的启动与配置,3,启动和配置步骤,创建一个Spotlight用户创建一个数据库连接设置Oracle初始化参数Timed_statistics=true设置连接模式客户化Spotlight的设置设置Calibration、颜色显示、屏幕刷新频率等 View=Option=Spotlight Console,3,设置连接模式,Calibrate the system第一次建立连接时需要进行Calibration。建议为一个小时,并且在业务较忙时进行。每个连接进行一次Calibration即可可以在以后任何时
7、间通过菜单重新Calibration:File=CalibrationFast Initialize可以加快Spotlight启动速度,但在Session Details drilldown中的一些高级信息无效,18,实时监控诊断最佳工具,Spotlight on Oracle是Windows架构的Oracle 数据库监控诊断工具,它将所有监控下的数据库组件转化为图形显示,藉此协助DBA轻松掌控Oracle 数据库的真正处理结构。此外,Spotlight on Oracle还提供详尽数据库动态,包括数据库各组件间流动速度的实时图解,使用者活动、I/O活动、及操作上经常费用(Overhead)等
8、 Database Instance 主要统计数据与量测项目(metrics)的数据库图表,让DBA不须24小时stand-by,就能迅速发掘问题所在,并透过Spotlight的问题诊断与解决方式建议,及早排除数据库运作瓶颈或问题。,19,自动问题侦测(Alarm)与实时解决,它可以在数据库发生问题时,提供详尽的问题剖析,让DBA深入问题根源,一层一层发掘问题的真正肇因;也可以在数据库正常运作期间,自动记录数据库行为模式,藉由长期数据分析与情境仿真,提醒DBA数据库可能面临的增长瓶颈。,20,自动问题侦测(Alarm)与实时解决(续),Spotlight on Oracle的数据库行为模式记录
9、,主要在建立一个正常的数据库活动基准,并自动设定活动量的临界点,当数据库发展达临界点时,DBA就会看到或听到警报及声响的提醒。拥有自动化的侦测与记录,DBA可以提前获知活动量最大的使用者、SQL Statement、Lock&Latches、Wait Events、Disk I/O等数据,在问题转为危机前,实时排除数据库瓶颈。,21,数据库活动的实时显示,监控组件包括I/O、database files、the SGA及Oracle Process。这些组件移动间的脉冲(Pulse)代表数据传输的相对速率及数据库内的活动程度。Spotlight on Oracle可以透过数据库行为模式记录,自
10、动将数据库调整为指定的工作量(workload),如此流动率就可调整为数据库特定效能特性。,22,详细的 Session-Tracking功能,居首位的 Session 及Session Details 屏幕,让DBA人员迅速确定谁是最耗资源的使用者。多层控制板(Panel)显示有关Session中使用者活动每一方面信息的详细数据,这些数据可让我们观看目前及前一个 SQL、资源等待、Lock及过度的活动。,23,主页面的六个面板,A、Sessions面板 B、Host面板 C、Server Processes面板 D、SGA面板 E、Background Processes(后台进程)面板 F
11、、Disk Storage(磁盘存储)面板,24,主界面:Sessions Panel,(1)Response10,系统的响应时间(2)Total Users:总用户SESSION数-相当于 select username,status from v$session where username=CLPMAPP(3)Active Users:当前正在执行的用户SESSION数-相当于 select username,status from v$session where status=ACTIVE and username=CLPMAPP(4)从Server Processes Panel来的
12、数据传输速度(5)到Server Processes Panel去的数据传输速度,主界面:Host面板,25,(1)CPU利用率(2)Run Queue 如果绿色滚动条达100%,说明cpu瓶颈(3)Free Physical RAM 物理随机存取内存(4)StealthCollect(server上未安装)收集SQL语句的性能指标,主界面:Server Processes Panel,26,PGA Target/Used 显示PGA目标总数及当前使用数dedicated显示专用服务器进程的个数Shared显示共享服务器进程的个数。Dispatchers显示调度进程数的个数parallel q
13、uery并行查询服务器数JobQueue显示作业进程的个数,从Disk Storage Panel来的数据传输速度 从SGA Panel来的数据传输速度 每秒改变数 每秒日志入口数 每秒解析请求数 每秒SQL执行数,主界面:SGA Panel,27,当前SGA大小 Buffer Cache数据缓冲区大小 Keep缓冲池大小 Recycle缓冲池大小 Buffer Catch hit Ratio数据缓冲区命中率 Redo缓冲区大小 Shared Pool共享池大小 Shared Pool Used已使用的共享池 Java池大小 Large池大小 数据库写的速度 日志写的速度,主界面:Backgr
14、ound Processes Panel,28,数据库写进程日志写进程归档进程数据库写进程速度日志写进程速度从Disk Storage Panel来的数据传 输速度到Disk Storage Panel去的数据传输速度,主界面:Disk Storage Panel,29,DatabaseFiles:显示数据文件使用情况。联机数据文件数 联机表空间数 已使用的空间Redo Logs:联机日志文件情况。日志组数 日志大小 Archive Log归档日志情况。归档目的地数 磁盘数 总空间 自由空间,Spotlight告警,30,Spotlight告警,告警综述,31,当某一指标(Metric)不在正
15、常范围内时触发告警;严重级别变化时触发告警所有的告警都将被显示:主界面颜色改变和告警日志相关配置设置告警日志显示时长、过滤规则、行动规则View=Option=Alarm Log Option,告警种类,32,Active session alarm Archive logs alarm Average redo write time alarm Buffer busy wait alarm Buffer cache hit ratio alarm Cache buffer chains latch alarm Cache buffer LRU chains latch alarm Corru
16、pt blocks alarmCPU busy alarm CR block request latency alarmCurrent block request latency alarmDatafile read time alarm Excessive RBS activities alarm Extent failure alarm Free buffer waits alarm Global cache convert latency alarmGlobal lock convert latency alarmGlobal lock get latency alarm,Job pro
17、cesses busy alarm Library cache miss ratio alarm Lock wait alarm Log buffer space wait alarm Log switch time alarm Low free physical RAM alarm Multi-threaded server alarm Parallel query server alarm Parse ratio alarm Redo allocation and copy latch alarms Shared pool lock percentage alarmShared serve
18、r converted into dedicated server alarmSQL cache miss rate alarm Unarchived logs alarm Write complete wait alarm,显示所有告警,33,View=Alarm LogView=Alarms by time,告警场景回放,34,Spotlight收集的信息可以通过两种方式来显示Live ViewHistory Browser缺省的方式为Live View,当使用History Browser方式时,需要启动Snapshot收集功能,收集的频率有两种:按时间方式,缺省为5分钟按报警事件,当报
19、警发生时记录当时的场景,告警场景回放,35,View=History Browser,Spotlight下钻,36,Spotlight下钻,下钻综述,37,进一步显示诊断细节报表和图形方式在图形上用鼠标拖拉可以放大图像或双击进行最大化相关配置View=Go to,下钻种类,38,Top Sessions drilldownTop SQL drilldown Activity drilldown I/O drilldown Configuration and Memory drilldown,Operating System drilldownDisk Storage drilldown Tun
20、ing drilldownClusters drilldownAlarm Log drilldown,如何下钻?,39,在有颜色告警的地方点击,然后:可以查看告警信息的描述;可以执行下钻。另外,在下钻结果窗口中可以点击右上角 按钮获取当前帮助。,Top Sessions下钻结果,40,如图示:显示最耗费某些资源的会话,及其详细信息;显示执行并行查询的会话的信息;显示DBMS Jobs的信息。,Top Sessions下钻结果,41,单击列表,会在Session Information中显示该会话的所有详细信息,同样可以查看执行计划,是否存在全表扫描;查看当前哪个Session占用了大量的资源,
21、以此定位数据库问题;单击“Session Waits”可以找出与该session相关的等待事件;单击“Session Locks”可以显示相关的锁信息;,Top SQL界面,42,SQL语句过滤器(上一页的图),43,通过Parsing user 可筛选某个用户的SQL语句;通过Minimum executions可筛选出那些比较耗时间的SQL语句;通过Contents可筛选含有某关键字的SQL语句(关键字可以是表名、字段名、order by 等任何SQL语句的字符,但必须是SQL语句的前1000字节);通过sort by,可让结果按“消耗时间”、“缓冲数”、“磁盘写”等排序通过descend
22、ing order,可让结果按降序显示;,Top SQL下钻结果,44,Criteria:设定SQL的提取规则;SQL:展示符合条件的最耗资源的SQL;显示其详细的执行信息,并可以查看其执行计划。,Activity下钻结果,45,展示示例活动的详细信息:Summary显示示例总体状况。Wait和Waiting Events显示当前数据库的等待事件。Blocking Locks显示数据库的阻塞和死锁情况。可以用来进行解决数据库锁方面的问题。Lock Activity显示数据库锁资源的使用情况。Latches显示数据库Latch的活动状况。Server显示数据库服务进程的活动状况。Transact
23、ion 显示数据库事务的活动状况。Rollback Segment显示数据库回退段的配置和活动状况。Buffer Busy Waits 显示哪些数据块由于频繁访问而处于等待状态。,I/O下钻结果,46,如图示,从各个方面展示I/O信息:Summary显示I/O整体状况:TOP Sessions、TOP Datafiles。Sessions显示各会话的磁盘读写等信息。Physical显示各数据文件上的磁盘读写等信息。Segments显示对各种I/O资源使用的最多的段的信息。Logical显示逻辑I/O信息、数据行的存取信息(表扫描、ROWID)、重作记录生成信息、回滚段的逻辑I/O信息。Buff
24、er Pool显示物理读、逻辑读、块等待等信息。,Configuration下钻结果,47,显示内存及各部件使用情况以及Oracle配置参数(含隐含参数):点击Shared Pool Utilization可以查看SGA区中共享池的使用情况;点击Buffer Cache可以查看缓冲池中的详细信息;点击Oracle Parameters可以查看Oracle系统参数。Spotlight给出每个参数的具体解释和当前值。管理员可以通过Spotlight修改部分参数。,OS下钻结果,48,显示操作系统的性能信息。如CPU资源的使用、网络流量、页面交换等等。点击OS Process或OS Storage,
25、可以查看操作系统的进程和文件系统信息。,Disk Storage下钻结果,49,表空间的空间使用情况;重做日志的相关信息,包括日志切换时间等。如果想获取有关空间的进一步信息,可以启动Space Manager功能。,Tuning下钻,50,实例的总体响应时间;内存的智能化调优与配置;多CPU下Latch的使用情况。,解决问题,51,查看执行计划、修改内存配置,调优SQL,52,在TOP SQL和TOP SESSION中显示SQL语句的地方,都可以查看此语句的执行计划,并进而对其调优。,SQL语句(上一页的图),53,在Operation项中,检查是否存在Table Access Full全表扫
26、描点击工具栏的“Show Describe”可查看该SQL语句中所有表的索引(请看下图),修改内存配置,54,View=Go to=Tuning通过图示中的按钮,可以获取Spotlight推荐的内存配置。,常见告警及对策,55,常见告警及对策,Active session alarm,56,当活动会话数与总会话数超过一定百分比后报警。这可能并不是一个严重的问题。但是这种问题如果经常发生至少说明了数据库可能存在瓶颈或负载过重。这时,你应该:看看其他报警;通过Top Sessions查看那些会话是活动的、在做什么;通过Activity看看资源使用情况和最严重的等待事件是什么。,Average re
27、do write time alarm,57,当重做日志写的时间超过一定的阀值后触发。不像其他的Oracle写I/O,会话必须要等到重做日志写完成之后才能继续运行。因此,重做日志必须比放在一单独的快速设备上。,Buffer Busy Wait Alarm,58,如果主要的原因是data block引起的等待(通过对此告警下钻可以得知当前引起等待的类型),你需要增加freelists、freelist_groups或pctfree参数。如果undo header或undo block比较多,则需要增加回滚段的数目。,Datafile Read Time Alarm,59,当随机读的平均时间超过了
28、阀值后报警。大多数现代磁盘的随机请求时间都在20ms以内,如果超过这个值,可能存在磁盘的I/O竞争。,Parse Ratio Alarm,60,当解析和执行比率超过阀值后报警。在为执行准备一个SQL语句时要求一次解析。一旦被解析,同样的SQL语句就可以执行多次。额外的解析会浪费CPU,也可能会引起栓竞争。,Writer Complete Wait Alarm,61,当写完成等待时间占总等待时间的比例超过阀值后报警。通常是在一个会话视图要求修改一个正在被数据库写进程写入磁盘的块时发生。如果此报警经常发生,说明数据库写不够快,应该增加数据库写进程的数目。,ORACLE-AWR,62,ORACLE-
29、ARW,ORACLE-ARW,63,AWR(Automatic Workload Repository)是 Oracle 10g 版本推出的新特性-自动负载信息库。它主要包括awr内存区,历史数据存储文件和ash等部件。AWR 实质上是一个 Oracle 的内置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。AWR报告的主要内容包括以下几部分:前言部分:这是awr报告的第一段,用于描述环境包括数据库名,数据库版本,是否为rac节点,快照报告的采集时间等。综述部分:包括等待事件段,load profile段,实例效率统计段,share pool统计段,cach
30、e size段,其中最重要的是等待事件段,它告诉我们在快照时间内数据库遇到那些性能瓶颈,它们将是性能调整或问题诊断的主要候选对象。,ORACLE-ARW,64,SQL部分:无效的sql的语句是性能不好的主要原因,这部分对这段事件区间内的sql按照执行时间,逻辑度,磁盘读等指标进行了分类和排序,和statspack不同的是,从awr报告中可以直接查到该sql的文本和发送请求的客户端进程信息,极大提高了sql分析的效率。实例活动统计部分:这部分是快照期间对实例的各个内部模块的活动和各种资源使用情况的统计,主要包括cpu使用情况,sql*net消息,链接的行存取和pga使用情况。段统计部分:告诉哪些
31、段(包括表和索引)在快照期间经历最高的磁盘读操作,这些信息可以帮助我们决定是否需要重建索引,或对段进行分区来减少发生在这些数据文件上的I/O。,ORACLE-ARW,65,实施:SQL SQLPLUS/AS SYSDBASQL exec dbms_workload_repository.create_snapshotSQL var snap_id numberSQL exec:snap_id:=dbms_workload_repository.create_snapshotSQL print snap_idSQL?/rdbms/admin/awrrpt.sql,ORACLE-ARW,66,Or
32、acle AWR速查:1.查看当前的AWR保存策略select*from dba_hist_wr_control;DBID,SNAP_INTERVAL,RETENTION,TOPNSQL860524039,+00 01:00:00.000000,+07 00:00:00.000000,DEFAULT以上结果表示,每小时产生一个SNAPSHOT,保留7天2.调整AWR配置AWR配置都是通过dbms_workload_repository包进行配置2.1调整AWR产生snapshot的频率和保留策略,如:如将收集间隔时间改为30 分钟一次。并且保留5天时间(注:单位都是为分钟):exec dbms
33、_workload_repository.modify_snapshot_settings(interval=30,retention=5*24*60);2.2关闭AWR,把interval设为0则关闭自动捕捉快照2.3手工创建一个快照exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();,ORACLE-ARW,67,2.4 查看快照select*from sys.wrh$_active_session_history2.5手工删除指定范围的快照exec WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(low_snap_
34、id=22,high_snap_id=32,dbid=3310949047);2.6创建baselineexec dbms_workload_repository.create_baseline(56,59,apply_interest_1)2.7删除baselineexec DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE(baseline_name=apply_interest_1,cascade=FALSE);,ORACLE-ARW,68,AWR报告日常分析:SQL ordered by Elapsed Time:记录了执行总和时间的TOP SQL(请注意是监
35、控范围内该SQL的执行时间 总和,而不是单次SQL执行时间 Elapsed Time=CPU Time+Wait Time)。Elapsed Time(S):SQL语句执行用总时长,此排序就是按照这个字段 进行的。注意该时间不是单个SQL跑的时间,而是监控范围内SQL执行 次数的总和时间。单位时间为秒。Elapsed Time=CPU Time+Wait TimeCPU Time(s):为SQL语句执行时CPU占用时间总时长,此时间会 小于等于Elapsed Time时间。单位时间为秒。Executions:SQL语句在监控范围内的执行次数总计。Elap per Exec(s):执行一次SQL
36、的平均时间。单位时间为秒。,ORACLE-ARW,69,%Total DB Time:为SQL的Elapsed Time时间占数据库总时间的百分比。SQL ID:SQL语句的ID编号,点击之后就能导航到下边的SQL详细列表 中,击IE的返回可以回到当前SQL ID的地方。SQL Module:显示该SQL是用什么方式连接到数据库执行的,如果是用 SQL*Plus或者PL/SQL链接上来的那基本上都是有人在调试程序。一般用 前台应用链接过来执行的sql该位置为空。SQL Text:简单的sql提示,详细的需要点击SQL ID。SQL ordered by CPU Time:记录了执行占CPU时间
37、总和时间最长的TOP SQL(请注意是监控范围 内该SQL的执行占CPU时间总和,而不是单次SQL执行时间)。,ORACLE-ARW,70,SQL ordered by Gets:记录了执行占总buffer gets(逻辑IO)的TOP SQL(请注意是监控范围内该SQL的执行占Gets总和,而不是单次SQL执行所占的Gets).SQL ordered by Reads:记录了执行占总磁盘物理读(物理IO)的TOP SQL(请注意是监控范围内该SQL的执行占磁盘物理读总和,而不是单次SQL执行所占的磁盘物理读)。SQL ordered by Executions:记录了按照SQL的执行次数排序
38、的TOP SQL。该排序可以看出监控范围内的SQL执行次数。,ORACLE-ARW,71,SQL ordered by Parse Calls:记录了SQL的软解析次数的TOP SQL。SQL ordered by Sharable Memory:记录了SQL占用library cache的大小的TOP SQL。Sharable Mem(b):占用library cache的大小。单位是byte。SQL ordered by Version Count:记录了SQL的打开子游标的TOP SQL。SQL ordered by Cluster Wait Time:记录了集群的等待时间的TOP SQL,72,保密须知:本文件及其书面或其他任何形式的附件乃以保密形式提供,其著作权归属于本公司,仅供阁下内部使用。未经过本公司的审核、确认及书面授权,阁下不得以任何方式在任何媒体(包括互联网)上公开引用或在阁下的任何资料中引用本文件及其附件中的任何数据和信息,不得以任何方式将本文件及其附件中的任何内容提供、披露给其他单位或个人。敬希阁下与我们共同遵守法律。,