资源描述
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以及Locks/Latches/等待事件 内置调优建议 与其它模块集成,3,了解Spotlight:其他特色,历史记录和回放 Spotlight可以按时间或报警事件获取历史快照(historical snapshots) 利用这些快照,可以对历史状态进行诊断 即使在连接断开时仍可以查看历史快照信息 集成Knowledge Xpert Spotlight集成了Knowledge Xpert专家支持库,为开发人员和DBA提供一个全面的知识库 收集操作系统信息 收集关键的操作系统信息如CPU、内存使用等,3,主界面,Database Session information Operating System Information Database Processes Database SGA Activities Background Processes Database Storage information Dataflows in and out of the database,3,Spotlight中的概念,Metrics Thresholds Severities Dataflow Alarm DrillDown,3,Metrics,每一个metric反映数据库的一个性能指标,被显示在Spotlight界面中 在metric的基础上可以设定报警阀值 Spotlight收集性能信息(Metric)的频率可以根据需要来设定,3,Thresholds,阀值是在metric值的基础上设置的。当出现问题时,通过阀值来决定应该发送什么报警 一个阀值只能属于一个metric,但一个metric可以有多个阀值 在每个控件上点击右键选择“Metrics”,即可设置阀值,3,Severities,每一个阀值可以被连接到一个严重级别上,严重级别可以决定当阀值被超过时应当采取什么样的行动,主要包括: 改变颜色 改变数据流动速度,并闪烁 发出报警声音,或执行发送e-mail等行动,3,Dataflow,在Spotlight主界面中,Panel之间是通过一系列数据流来连接的,数据流显示系统中数据库流动或交换的速度 当出现性能问题时,数据流通过改变流动速度和颜色的方式来报警 Calibration:决定每个数据流的最大值,3,Alarm,系统出现性能问题时,Spotlight会立刻发出报警,每一个报警至少包含以下一个动作: 改变出现问题的部分的报警颜色 闪烁 发出报警声音,3,DrillDown,通过逐渐深入可以获取更多的信息,这些逐渐深入主要包括: Top Sessions Drilldown Top SQL Drilldown Activity Drilldown I/O Drilldown Alert Log Drilldown,3,调优步骤,使用Spotlight主界面监控瓶颈 使用Activity进行下钻显示全面效率和资源使用情况 特别地,注意Wait Events和CPU使用率 使用其它界面检查更详细的活动,3,启动和配置,Spotlight的启动与配置,3,启动和配置步骤,创建一个Spotlight用户 创建一个数据库连接 设置Oracle初始化参数 Timed_statistics=true 设置连接模式 客户化Spotlight的设置 设置Calibration、颜色显示、屏幕刷新频率等 View=Option=Spotlight Console,3,设置连接模式,Calibrate the system 第一次建立连接时需要进行Calibration。建议为一个小时,并且在业务较忙时进行。 每个连接进行一次Calibration即可 可以在以后任何时间通过菜单重新Calibration: File=Calibration Fast Initialize 可以加快Spotlight启动速度,但在Session Details drilldown中的一些高级信息无效,18,实时监控诊断最佳工具,Spotlight on Oracle是Windows架构的Oracle 数据库监控诊断工具,它将所有监控下的数据库组件转化为图形显示,藉此协助DBA轻松掌控Oracle 数据库的真正处理结构。此外,Spotlight on Oracle还提供详尽数据库动态,包括数据库各组件间流动速度的实时图解,使用者活动、I/O活动、及操作上经常费用 (Overhead) 等 Database Instance 主要统计数据与量测项目(metrics)的数据库图表,让DBA不须24小时stand-by,就能迅速发掘问题所在,并透过Spotlight的问题诊断与解决方式建议,及早排除数据库运作瓶颈或问题。,19,自动问题侦测(Alarm)与实时解决,它可以在数据库发生问题时,提供详尽的问题剖析,让DBA深入问题根源,一层一层发掘问题的真正肇因;也可以在数据库正常运作期间,自动记录数据库行为模式,藉由长期数据分析与情境仿真,提醒DBA数据库可能面临的增长瓶颈。,20,自动问题侦测(Alarm)与实时解决(续),Spotlight on Oracle的数据库行为模式记录,主要在建立一个正常的数据库活动基准,并自动设定活动量的临界点,当数据库发展达临界点时,DBA就会看到或听到警报及声响的提醒。拥有自动化的侦测与记录,DBA可以提前获知活动量最大的使用者、SQL Statement、Lock DBID,SNAP_INTERVAL,RETENTION,TOPNSQL 860524039,+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_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_history 2.5手工删除指定范围的快照 exec WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(low_snap_id = 22, high_snap_id = 32, dbid = 3310949047); 2.6创建baseline exec dbms_workload_repository.create_baseline (56,59,apply_interest_1) 2.7删除baseline exec DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE(baseline_name = apply_interest_1, cascade = FALSE);,ORACLE-ARW,68,AWR报告日常分析: SQL ordered by Elapsed Time: 记录了执行总和时间的TOP SQL(请注意是监控范围内该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的平均时间。单位时间为秒。,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时间总和时间最长的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的执行次数排序的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,保密须知:本文件及其书面或其他任何形式的附件乃以保密形式提供,其著作权归属于本公司,仅供阁下内部使用。未经过本公司的审核、确认及书面授权,阁下不得以任何方式在任何媒体(包括互联网)上公开引用或在阁下的任何资料中引用本文件及其附件中的任何数据和信息,不得以任何方式将本文件及其附件中的任何内容提供、披露给其他单位或个人。敬希阁下与我们共同遵守法律。,
展开阅读全文