第3章 自动数据库性能监视器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章自动数据库性能监视器
自动数据库性能监视器(ADDM)自动检查和报告数据库的性能问题。结果作为ADDM调查报告显示在Oracle企业管理器的数据库主页中,审查ADDM调查结果让你可以快速找出性能问题。
每个ADDM调查结果都提供了一串有关减少性能问题影响的建议,审查ADDM调查结果并执行建议是你每天正常维护数据库应该要做的事情,即使数据库处于未最佳的性能状态,你也应该继续使用ADDM监视数据库性能。
3.1 自动数据库诊断监视器概述
ADDM是构建在Oracle数据库内部的自我诊断软件,ADDM检查并分析自动工作量仓库(AWR)捕获到的数据,确定Oracle数据库可能存在的性能问题,然后它定位性能问题的根本原因,为纠正这些性能问题提供建议,并量化预计的性能收益,ADDM也可以识别不需要行动的区域。
3.1.1 ADDM分析
每次AWR快照(默认每小时一次)后就会执行ADDM分析,分析报告保存在数据库中,你可以通过Oracle企业管理器来查看这些报告,在使用本指南描述的另一个性能调整方法之前,先审查一下ADDM分析报告。
ADDM分析是从上到下执行的,首先确定症状,然后完善分析报告,指出导致性能问题的根本原因,ADDM使用DB time统计信息确定性能问题,DB time是数据库除了用户请求花去的递增式时间,包括等待时间和所有非空闲会话的CPU时间。
数据库性能调整的目标是减少给定工作量的DB time,通过减少DB time,数据库使用相同数量的资源可以支持更多用户请求,ADDM报告使用了大量DB time的系统资源,将其显示在问题区域,并按消耗的DB time数量进行倒序排序,关于DB time统计信息的更多信息请参考"时间模型统计"小节的内容。
3.1.2 ADDM建议
除了诊断性能问题外,ADDM还会给出建议解决方案,并且有时会建议多个可选的解决方案让你选择,ADDM建议包括:
硬件改造
添加CPU或修改I/O子系统配置
数据库配置
修改初始化参数配置
方案修改
对表或索引进行哈希分区,或使用自动段空间管理(ASSM)
修改应用程序
为序列使用缓存选项或使用绑定变量
使用其它顾问
在高负载SQL语句上运行SQL调整顾问或在热点对象上运行分段顾问。
ADDM应用在生产系统上受益良多,即使在开发和测试系统上,ADDM也可以提前提供潜在的性能问题警报。
性能调整是一个反复的过程,修复一个问题可能会导致瓶颈转移到系统的其它部分,即使使用ADDM分析报告,也要经过多次反复的调整才能使性能达到理想的水平。
3.1.3 Oracle真正应用集群中的ADDM
在Oracle真正引用集群(Oracle RAC)环境中,你可以使用ADDM分析整个数据库集群的性能,Oracle RAC中的ADDM会认为DB time是所有数据库实例数据库时间的总和,它只会报告集群级别的重要分析结果,例如,考虑局部各个集群节点的I/O水平就没什么意义,但所有节点的I/O水平的总和对于判定集群问题就显得很重要了。
3.2 配置自动数据库诊断监视器
3.2.1 设置初始化参数启用ADDM
默认情况下自动数据库诊断监视功能是被启用的,由初始化参数CONTROL_MANAGEMENT_PACK_ACCESS和STATISTICS_LEVEL控制。
CONTROL_MANAGEMENT_PACK_ACCESS初始化参数应该被设置为DIAGNOSTIC+TUNING(默认)或DIAGNOSTIC以确保启用自动数据库诊断监视器,如果将CONTROL_MANAGEMENT_PACK_ACCESS设置为NONE,就会禁用掉许多Oracle数据库特性,包括ADDM,强烈建议不要这么做。
STATISTICS_LEVEL初始化参数应该被设置为TYPICAL(默认)或ALL以确保启用自动数据库诊断监视器,如果将STATISTICS_LEVEL 设置为BASIC将会禁用掉许多Oracle数据库特性,包括ADDM,强烈建议也不要这么做。
确定ADDM是否启用的步骤:
1.在数据库主页,点击"服务器",显示"服务器"子页面。
2.在数据库配置小节,点击"初始化参数",显示"初始化参数"页面。
3.在"名称"字段处,输入STATISTICS_LEVEL,然后点击"开始"按钮,会显示一个初始化参数设置的表格。
4.完成下面两件事情:
如果"值"列显示"ALL"或"TYPICAL",那什么都不做。
如果"值"列显示"BASIC",就选择"ALL"或"TYPICAL",然后点击"应用"按钮。
5.在"名称"字段处,输入CONTROL_MANAGEMENT_PACK_ACCESS,然后点击"开始"按钮,会显示一个初始化参数设置的表格。
6.完成下面两件事情:
如果"值"列显示"DIAGNOSTIC"或"DIAGNOSTIC+TUNING",那什么都不用做。
如果"值"列显示"NONE",就选择"DIAGNOSTIC"或"DIAGNOSTIC+TUNING",然后点击"应用"按钮。
3.2.2 设置DBIO_EXPECTED参数
ADDM分析报告中的I/O性能某种程度上依赖于一个参数:DBIO_EXPECTED。它描述了I/O子系统期望的性能,DBIO_EXPECTED的值是读取一个数据库块的平均时间,单位是微妙(一百万分之一秒),Oracle数据库默认值使用10微妙,对于大部分硬盘驱动器这是一个合适的数值,如果你的硬件非常特殊,可以考虑使用一个不同的值。
确定DBIO_EXPECTED初始化参数是否正确设置的步骤如下:
1.测量在你的硬件上读取一个数据库块的平均时间
这个测量必须采取随机I/O方式,如果你使用的是标准硬盘驱动器,包括寻道时间,大部分硬盘驱动器的测量值都在5000到20000微妙之间。
2.为后面的ADDM分析设置一次性值
例如,如果测量值是8000微妙,那就以SYS用户登陆,然后执行下面的PL/SQL代码:
EXECUTE DBMS_ADVISOR.SET_DEFAULT_TASK_PARAMETER('ADDM', 'DBIO_EXPECTED', 8000);
3.2.3 AWR快照
默认情况下,自动工作量仓库(AWR)每小时会产生一个性能数据的快照,统计信息会在工作量仓库中保留8天,你可以修改产生快照的间隔时间,也可以修改统计信息的保留时间。
Oracle建议你调整AWR保留时间到至少1个月,你也可以扩展到一个业务周期,便于你对比,如一个会计季度,你也可以创建一个AWR
基线保留快照识别重要的时间期限。
位于快照间隔之间的数据由ADDM进行分析,ADDM比较快照之间的差异确定捕获了哪个SQL语句,久而久之,ADDM分析报告显示捕获到的大量SQL语句。
3.2.3.1 创建快照
通常不需要手动创建快照,因为AWR默认每小时都会产生一个性能数据的快照,但在某些情况下,需要手动创建快照以捕获活动持续期间的差异,如当你想比较比快照间隔时间短的时间范围的性能数据。
创建快照的步骤如下:
1.在数据库主页,点击"性能",显示"性能"页面。
2.在"附加监视链接"下,点击"快照",显示"快照"页面,列出了大部分最近的快照。
3.点击"创建"按钮,显示"确认"页面。
4.点击"确定"按钮,显示"正在处理:显示创建快照页面",当快照创建完毕后,"快照"页面显示一条确认消息。
在这个例子中,快照ID是249。