《Spotlight On Oracle实时监控诊断工具使用指南.ppt》由会员分享,可在线阅读,更多相关《Spotlight On Oracle实时监控诊断工具使用指南.ppt(29页珍藏版)》请在三一办公上搜索。
1、Spotlight On Oracle实时监控诊断工具使用指南,一、Spotlight On Oracle的产品特色及 主要功能二、Spotlight On Oracle的使用及诊断分析,一、Spotlight On Oracle的产品特色及主要功能,1)实时监控诊断最佳工具2)自动问题侦测与实时解决3)数据库活动的实时显示4)详细的 Session-Tracking 功能,1)实时监控诊断最佳工具,Spotlight on Oracle是Windows架构的Oracle 数据库监控诊断工具,它将所有监控下的数据库组件转化为图形显示,藉此协助DBA轻松掌控Oracle 数据库的真正处理结构。,
2、此外,Spotlight on Oracle还提供详尽数据库动态,包括数据库各组件间流动速度的实时图解,使用者活动、I/O活动、及操作上经常费用(Overhead)等 Database Instance 主要统计数据与量测项目(metrics)的数据库图表,让DBA不须24小时stand-by,就能迅速发掘问题所在,并透过Spotlight的问题诊断与解决方式建议,及早排除数据库运作瓶颈或问题。,1)实时监控诊断最佳工具(续),2)自动问题侦测(Alarm)与实时解决,它可以在数据库发生问题时,提供详尽的问题剖析,让DBA深入问题根源,一层一层发掘问题的真正肇因;也可以在数据库正常运作期间,自
3、动记录数据库行为模式,藉由长期数据分析与情境仿真,提醒DBA数据库可能面临的增长瓶颈。,Spotlight on Oracle的数据库行为模式记录,主要在建立一个正常的数据库活动基准,并自动设定活动量的临界点,当数据库发展达临界点时,DBA就会看到或听到警报及声响的提醒。拥有自动化的侦测与记录,DBA可以提前获知活动量最大的使用者、SQL Statement、Lock&Latches、Wait Events、Disk I/O等数据,在问题转为危机前,实时排除数据库瓶颈。,2)自动问题侦测(Alarm)与实时解决(续),3)数据库活动的实时显示,监控组件包括I/O、database files、
4、the SGA及Oracle Process。这些组件移动间的脉冲(Pulse)代表数据传输的相对速率及数据库内的活动程度。Spotlight on Oracle可以透过数据库行为模式记录,自动将数据库调整为指定的工作量(workload),如此流动率就可调整为数据库特定效能特性。,4)详细的 Session-Tracking 功能,居首位的 Session 及Session Details 屏幕,让DBA人员迅速确定谁是最耗资源的使用者。多层控制板(Panel)显示有关Session中使用者活动每一方面信息的详细数据,这些数据可让我们观看目前及前一个 SQL、资源等待、Lock及过度的活动。
5、,二、Spotlight On Oracle的使用及诊断分析,1)主页面的六个面板2)Top Sessions3)Top SQL4)Activity,1)主页面的六个面板,A、Sessions面板 B、Host面板 C、Server Processes面板 D、SGA面板 E、Background Processes(后台进程)面板 F、Disk Storage(磁盘存储)面板,A、Sessions面板,(1)Response10,系统的响应时间(2)Total Users:总用户SESSION数-相当于 select username,status from v$session where
6、username=CLPMAPP(3)Active Users:当前正在执行的用户SESSION数-相当于 select username,status from v$session where status=ACTIVE and username=CLPMAPP,B、Host面板,(1)CPU利用率(2)Run Queue 如果绿色滚动条达100%,说明cpu瓶颈(3)Free Physical RAM 物理随机存取内存(4)StealthCollect(server上未安装)收集SQL语句的性能指标,C、Server Processes面板,(1)PGA Target/Used 显示PGA
7、目标总数及当前使用数(2)dedicated显示专用服务器进程的个数(3)Shared显示共享服务器进程的个数。(4)Dispatchers显示dispathers的个数(5)parallel query并发度(6)JobQueue显示作业进程的个数,D、SGA面板,(1)CurrentSize显示当前sga使用M数(2)BufferCache,KeepPool,RecyclePool 显示数据缓冲区的内存情况(3)SharedPool:共享池的使用情况(4)RedoLog:重作日志的使用情况(5)LargePool:大池的使用情况(6)JavaPool:java池的使用情况,E、Backgr
8、ound Processes(后台进程)面板,(1)DBWR 数据写入进程(2)LGWR 日志进程(3)ARCH 归档进程式,F、Disk Storage(磁盘存储)面板,(1)DatabaseFiles:显示数据文件使用情况。(2)联机日志文件情况。包括组数及大小。(3)归档日志情况。,2)Top Sessions,Top Sessions(请看上一页的图),单击列表,会在Session Information中显示该会话的所有详细信息,同样可以查看执行计划,是否存在全表扫描;查看当前哪个Session占用了大量的资源,以此定位数据库问题;单击“Session Waits”可以找出与该ses
9、sion相关的等待事件;单击“Session Locks”可以显示相关的锁信息;,3)Top SQL,A、SQL语句过滤器(上一页的图),通过Parsing user 可筛选某个用户的SQL语句;通过Minimum executions可筛选出那些比较耗时间的SQL语句;通过Contents可筛选含有某关键字的SQL语句(关键字可以是表名、字段名、order by 等任何SQL语句的字符,但必须是SQL语句的前1000字节);通过sort by,可让结果按“消耗时间”、“缓冲数”、“磁盘写”等排序通过descending order,可让结果按降序显示;,B、所执行的SQL语句(上一页的图),
10、如果Optimizer cost 的值较大,可能存在Table Access Full;如果Hit rate 的值较小,也就是命中率比较低,说明效率较低(一般小于95%);,C、SQL语句(上一页的图),在Operation项中,检查是否存在Table Access Full全表扫描点击工具栏的“Show Describe”可查看该SQL语句中所有表的索引(请看下图),4)Activity,一、Logical I/O 1、Block changes-修改数据阻塞 2、Current reads-更新数据阻塞的数目 3、Consistent reads-查询数据阻塞的数目二、Physical I
11、/O 1、Datafile reads读取数据文件的文件数目 2、Datafile writes写入数据文件的文件数目 3、Redo writes写入重做日志的文件数目三、Event waits 1、Contrl File IO-控制文件的读写等待时间 2、Buffer busy-高速缓存繁忙等待时间 3、Other-其他的等待时间4、Single block read-单个数据阻塞的等候时间 5、Multi-block read-多个数据阻塞的等候时间 6、Direct path read-直接读取的等候时间 7、Datafile write-数据文件写的等待时间 8、Log write-日
12、志文件写得等待时间,四、Sessions 1、Idle-空闲session的数目 2、Active-正在运行的session的数目 3、System-system session的数目 五、Call rates 1、Parse分析请求执行的SQL语句的调用次数 2、Execute-执行的次数 3、Commit-提交的调用次数 4、Rollback-回滚的调用次数 5、Hard parse-分析请求执行的SQL语句,并分配堆栈空间的访问调用次数六、Miss rates 1、Buffer cache-在高速缓存读取不命中率 2、SQL area-向高速缓存请求分析SQL语句的不命中率 3、Latc
13、h-第一次尝试闭锁请求的不命中率,对前面Activity图进行解释,Logical I/O-每秒逻辑读/写的次数,当我们向数据库作任何的操作,Oracle都会先到SGA中查找一下有没有我们所需要的数据,如有就即时返回,没有再去通过Physical I/O来向data file 读数据,从而减少Physical I/O的读写 Physical I/O-每秒磁盘物理读/写次数,当读/写次数多的时候,I/O设备消耗时间多了,必然导致数据库性能下降,对前面Activity图进行解释(续),如果主要等待事件为buffer busy wait,等待类别为data block,那么可能是以下原因 a、一种是
14、高并发会话在对相同的对象执行DML,同时db_block_size尺寸较大(因同一个块包含更多的行)。b、另外就是多个session并发请求相同的数据块,但因该数据块不在buffer_cache中而必须从磁盘读取,处理这种情况,oracle会只让其中一个sesion进行磁盘读取,此时其它session等待块从磁盘上读取进buffer_cache而抛出buffer busy wait等待事件。,另外:根据Event Wait,找出相关的问题,查询(select):主要记录以下指标:磁盘读的速度,命中率,Parallel query,Logical Reads,Miss Rate,Block wait。找出读表所需要时间,所建立表的索引是否合理,对缓存区的命中读。增删改(insert、delete、update):主要记录以下指标:表的表空间,DBWR(N)进程,Buffer Cache,磁盘写的速度,Rollback Segment Logical I/O,LGWR(N)进程,Redo Buffer Cache,Redo Generation(重做日志的生成时间),磁盘数据空间大小变化,索引空间的大小变化。找出写表所需要的时间,所建立的表空间是否合理,回滚段的使用情况。,另外:根据SQL语句的操作,记录相关的指标,