《Spotlight_on_oracle的使用与分析》由会员分享,可在线阅读,更多相关《Spotlight_on_oracle的使用与分析(31页珍藏版)》请在金锄头文库上搜索。
1、Welcome!部门:测试二部 作者:陈茂川 日期:2008-8-12Spotlight On Oracle一、Spotlight On Oracle的产品特色及 主要功能二、 Spotlight On Oracle的使用及诊断分析一、Spotlight On Oracle的产品特色及主要功能 1)实时监控诊断最佳工具 2)自动问题侦测与实时解决 3)数据库活动的实时显示 4)详细的 Session-Tracking 功能1)实时监控诊断最佳工具Spotlight on Oracle是Windows架构的Oracle 数据库监控诊断工具,它将所有监控下的数据库组件转化为图形显示,藉此协助DBA
2、轻松掌控Oracle 数据库的真正处理结构。此外,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
4、/O、database files、the SGA及Oracle Process。 这些组件移动间的脉冲(Pulse)代表数据传输的相对速率及数据库内的活动程度。Spotlight on Oracle可以透过数据库行为模式记录,自动将数据库调整为指定的工作量(workload),如此流动率就可调整为数据库特定效能特性。4)详细的 Session-Tracking 功能居首位的 Session 及Session Details 屏幕,让DBA人员迅速确定谁是最耗资源的使用者。多层控制板 (Panel) 显示有关Session中使用者活动每一方面信息的详细数据,这些数据可让我们观看目前及前一个 S
5、QL、资源等待、Lock及过度的活动。二、 Spotlight On Oracle的使用及诊断分析 1)主页面的六个面板 2)Top Sessions 3)Top SQL 4)Activity1)主页面的六个面板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
6、from v$session where 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
7、)PGA Target/Used显示PGA目标总数及当前使用数(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:j
8、ava池的使用情况E、 Background Processes (后台进程 )面板 (1)DBWR 数据写入进程(2)LGWR 日志进程(3)ARCH 归档进程式F、Disk Storage(磁盘存储)面板(1)DatabaseFiles:显示数据文件使用情况。(2)联机日志文件情况。包括组数及大小。(3)归档日志情况。2)Top SessionsTop Sessions (请看上一页的图)单击列表,会在Session Information中显示该会话的所有详细信息,同样可以查看执行计划,是否存在全表扫描;查看当前哪个Session占用了大量的资源,以此定位数据库问题;单击“Session
9、 Waits”可以找出与该session相关的等待事件;单击“Session Locks”可以显示相关的锁信息;3)Top SQLA、SQL语句过滤器(上一页的图)通过Parsing user 可筛选某个用户的SQL语句;通过Minimum executions可筛选出那些比较耗时间的SQL语句;通过Contents可筛选含有某关键字的SQL语句(关键字可以是表名、字段名、order by 等任何SQL语句的字符,但必须是SQL语句的前1000字节);通过sort by ,可让结果按“消耗时间”、“缓冲数”、“磁盘写”等排序通过descending order ,可让结果按降序显示;B、所执行
10、的SQL语句(上一页的图) 如果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-查询数据
11、阻塞的数目二、 Physical I/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
12、write-数据文件写的等待时间 8、 Log write-日志文件写得等待时间四、 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-在高速缓存读取
13、不命中率 2、 SQL area-向高速缓存请求分析SQL语句的不命中率 3、 Latch-第一次尝试闭锁请求的不命中率 对前面Activity图进行解释Logical I/O- 每秒逻辑读/写的次数,当我们向数据库作任何的操作,Oracle都会先到SGA中查找一下有没有我们所需要的数据,如有就即时返回,没有再去通过Physical I/O来向data file 读数据,从而减少Physical I/O的读写 Physical I/O- 每秒磁盘物理读/写次数,当读/写次数多的时候,I/O设备消耗时间多了,必然导致数据库性能下降 对前面Activity图进行解释(续)如果主要等待事件为buff
14、er busy wait,等待类别为data block,那么可能是以下原因a、一种是高并发会话在对相同的对象执行DML,同时db_block_size尺寸较大(因同一个块包含更多的行) 。b、另外就是多个session并发请求相同的数据块,但因该数据块不在buffer_cache中而必须从磁盘读取,处理这种情况,oracle会只让其中一个sesion进行磁盘读取,此时其它session等待块从磁盘上读取进buffer_cache而抛出buffer busy wait等待事件。 另外:根据Event Wait,找出相关的问题查询(select) :主要记录以下指标:磁盘读的速度,命中率,Par
15、allel 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语句的操作,记录相关的指标Thanks!部门:测试二部 作者:陈茂川 日期:2008-8-12