Oracle数据库监控和使用建议程序
10.1 目标
通过本节,您应该能:
- 描述Oracle自我监控架构
- 使用性能建议程序来最优化数据库性能
10.2 主动式的数据库监控
您可以使用Oracle Enterprise Manager (EM)主动监控数据库的状态性能。透过主动监视这些测量结果,例如数据库所花费的CPU时间或是每天、没小时的磁盘空间使用方式,您就可以采取必要的更正步骤,以避免将来发生性能问题。
主动式监控包括下列工作:
- 监视一般数据库状态与工作负载
- 监视性能
- 使用警示
Oracle数据库具有可自行诊断的程序引擎,称为【自动数据诊断监视器(Automatic Database Diagnostic Monitor, ADDM)】。ADDM让Oracle数据库能够诊断自己的性能,并且判断要如何解决找到的问题。
10.3 监控一般数据库状态与工作负载
您可以使用Enterprise Manager的【数据库(Database)】首页来监控数据库的状况。这个页面会提供一般数据库状态信息,以及报告有助于监控数据库状态与工作负载的信息。这些信息会定期更新。
【数据库(Database)】首页包含下列区域:
- 一般信息(General): 提供数据库的快速查看,包括数据库状态、数据库上次启动的时间、实例名称以及主机名称。
- 主机CPU(Host CPU): 显示在整个系统所使用的CPU时间百分比。这个图表会将CPU百分比分成数据库所使用的时间与其他处理作业所使用的时间的CPU百分比。如果数据库占用了大部分的CPU时间,您可以进一步参阅【活动会话数(Active Sessions)】摘要来找出原因。
- 预警(Alerts): 提供任何已发出的警示的相关信息,并为它们加上严重性等级。警示是超过测量结果临界值时发出的通知。
10.4 监控性能
您可以使用【性能(Performance)】页面来查看一段时间的整体系统状态。通常会以图形的方式表示一段时间内的信息,以协助您找出作业活动增加的一段时间。这个页面涵盖三种主要性能区: 主机、阶段作业以及执行处理传输量。您可以按一下图形取得详细信息。
【性能(Performance)】页面会以图形格式提供一定时间内的CPU使用率、内存使用率、磁盘使用率等相关信息。在这个页面上您可以查看前10个CPU常用的处理作业。
10.5 使用警示
警示可以协助您主动监视数据库。超过特定测量结果临界值时,大部分的警示都是通知。
您可以为每个警示设定【严重性临界值(Critical Threshold)】与【警告性临界值(Warning Threshold)】,这些临界值代表真正的界限值,当超过这些值时,即表示系统处于不稳的状态。除了通知外,您还可设定警示来执行某些操作,例如执行命令文件。
预设会启动下列警示:
- 表空间使用率(使用率85%为警告性临界值,使用率97%为严重性临界值)
- 快照太旧
- 恢复区的可用空间不足
- 可再继续的会话作业暂停
您可以修改这些警示,或是在其他测量结果上设定自己的警示。
当您收到警示时,请遵照警示提供的建议来执行,也可以执行ADDM或其他建议程序,以最适当的方法获得最详细的系统诊断或对象行为诊断信息。
10.6 检查度量结果阀值
度量结果是一组由Oracle定义的系统属性统计值,而【自动工作负载存储区(AWR)】会负责计算和存储这些值,然后显示在【所有度量(All Metrics)】页面。您可以在【数据库首页(Database Home)】的【相关链接(Related Links)】下方,按一下【所有度量(All Metrics)】链接来访问其页面。
当您按一下特定的测量结果时,会出现详细信息页面,这里有更多关于测量结果的详细信息。此页的在线说明会提供测量结果的说明。
您可以为每个测量结果定义警告性临界值与严重性临界值,当超过临界值时候,Oracle服务器会发出警示。警示会显示在【数据库首页(Database Home)】的【警示(Alerts)】标题下方,但如果是非数据库警示,则会显示在【相关警示(Related Alerts)】下方。
测量结果对于测量数据库的状况、作为自我调教的输入以及Oracle建议程序锁提供的建议等方面来说,都是相当重要的。
10.7 设定度量结果阀值
Oracle服务器提供了一组预先定义的度量结果, 其中有些一开始就已经定义了临界值。您可以在【编辑高级设置】页面变更现有的临界值设定,或是设定其他测量结果的临界值。
您可以执行下列步骤来设定测量临界值:
- 请在数据库首页的【相关链接(Related Links)】标题下方,按一下【度量和策略设置(Metric and Policy Settings)链接】。就会显示【度量和策略设置(Metric and Policy Settings)】页面,它会显示现有的度量结果临界值以及指定的更正操作(Corrective Actions)。请注意,您无法在此页面上编写任何临界值。
- 选择度量项并按其对应的【编辑(Edit)】按钮。会显示【编辑高级设置】页面。您可以输入新的【警告阀值(Warning Threshold)】与【严重阀值(Critical Threshold)】,或是修改此页面现有阀值。
- 因为【更正操作(Corrective Actions)】栏位已经超过了临界值,所以也可以指定发出警告时要执行的SQL命令脚本的有效路径。您也可以建立新的警示。
10.8 设定通知规则
- 设定通知方式:
– 发送邮件服务器
– 寄件者名称
– 寄件者电子邮件地址
- 指定接收电子邮件地址
- 选取通知规则
当出现需要您介入的事件时,您可以选择性的指定Oracle Enterprise Manager Database Control来发出通知。
您可以执行下列步骤来设定电子邮件通知:
- 在任何Database Control页面的标头或页尾区域中,按一下【设置(Setup)】链接。
- 在【设置(Setup)】页面选取【通知方法(Notificaiton Methods)】。
- 在【通知方法(Notification Methods)】页面的【发件 (SMTP) 服务器(Outgoing Mail (SMTP) Server)】区域中输入所需的信息。
这样就完成通知方法的设定了。接着必须建立通知的规则和电子邮件地址,以接收通知。
- 在任一个Database Control页面的标题或页尾区域中,按一下【首选项(Preferences)】链接。
- 在【首选项(Preferences)】页面上选取【一般信息(General)】。在【电子邮件地址(Email Addresses)】区域中,按一下【添加另一行(Add Another Row)】以新增您的电子邮件地址。
- 指定您的电子邮件地址。按一下【应用(Apply)】。
- 在【通知(Notification)】区域中选取【规则(Rules)】。
- 请选取在何种状况时通知您,按一下【应用(Apply)】。
10.9 诊断性能问题
- 自动数据库诊断监视器(ADDM)会标示出性能问题。
- ADDM每小时会执行一次由上而下的系统分析。
- 会在Enterprise Manager数据库首页回应发现结果。
- ADDM着重于消耗最多数据库时间的组件和操作。
- ADDM会使用活动会话历史记录以及自动工作负载存储区(AWR)所撷取的快照统计信息。
【自动数据库诊断监视器(ADDM)】会标出数据库的性能问题。为了加速使用ADDM进行自动性能诊断的过程,Oracle服务器会定期收集数据库状态与执行中的工作负载的相关信息。这些信息会以快照的形式来收集,所谓的快照就是在任何指定时间点的系统状态统计摘要。这些快照会存储在SYSAUX表空间的自动工作负载存储区(AWR)中。通常,快照会在AWR中存储一段时间,然后就会被清除,以挪出空间来存储新快照。ADDM会检查储存在AWR中的数据,然后进行主动式分析,以判定数据库的主要问题。
ADDM可大幅减少花在诊断和调教Oracle系统性能的工作量。 ADDM是针对整个数据库的建议程序,它着重于哪些消耗最多数据库时间的组件和操作。
在大部分系统中,多数性能问题都是和造成资源使用不足或资源过度使用的瓶颈有关。ADDM可以使用活动会话的历史记录与AWR中撷取的快照统计值,来找出Oracle服务器中的瓶颈。ADDM还可以和其他服务器管理元件及建议程序共同运作,以修正问题或提供建议修正问题的可行选项。
10.10 查看性能分析与回应发现的项目
ADDM每60分钟就会自动执行,让AWR所撷取的快照能维持一致。它的数据结果会包含已找到但无法自动修复的问题说明,以及建议的动作。
发现的项目会显示在两个区域中:
【ADDM性能分析(ADDM Analysis)】区域: 按一下发现的项目以查看详细信息。【ADDM查找结果详细资料(Performance Finding Details)】页面会更加详细地描述发现的项目以及提供建议的操作。
在【诊断摘要(Diagnostic Summary)】标题下方的【性能信息(ADDM Findings)】旁: 显示发现的项目。按一下此链接会跳到ADDM页面。
您可以按一下【查找结果(Finding)】并遵照建议操作(如果有提供),以回应性能发现项目。而建议操作可能会包含呼叫建议程序。
10.11 修改默认的ADDM行为
ADDM行为与分析是以自动工作负载(AWR)为基础,自动工作负载会收集系统性能统计值,并将数据存储在数据库中。完成预设安装之后,AWR每60分钟会抓取一次数据,并清除已保留7天以上的数据。您可以设定快照频率与数据保留期间。例如, 对ADDM发现项目进行侦错时,您可以设定较短的快照间隔。
您可以查看和变更在【自动工作量资料档案库(Automatic Workload Repository)】页面的下列设定:
- 快照的保留期间。最初的设定值时7天。
- 快照的间隔。预设值与建议值都是60分钟。
您可以执行下列步骤来变更设定值:
- 在数据库首页【服务器(Server)】页签的【统计信息管理(Statistics Management)】区域中,选取【自动工作量资料档案库(Automatic Workload Repository)】。
- 在【自动工作负载存储区(Automatic Workload Respository)】页面【一般信息】上,按一下【编辑(Edit)】。会显示【编辑设置(Edit Settings)】页面。
- 输入新的【快照保留时间(Snapshot Retention)】或新的【系统快照间隔(System Snapshot Interval)】。按一下【确定(OK)】。
10.12 使用建议程序
建议程序(Advisor)是您可以呼叫的程序或是Oracle服务器可以从内部呼叫的程序,它会指定要分析的特定对象。建议程式可以从各方面对对象提出报告,并根据各种需要用户介入的情况,说明可以采取的建议操作。建议程序也可能报告以本身提供的自动化工作来更正问题。ADDM或警示通常会建议执行一个特定的建议程序,以更详尽的方式分析问题。
10.13 可用的建议程序
可用的性能建议程序:
- 自动数据库诊断监视器(ADDM): 针对整个数据库的建议程序。它的工作是执行完整而全面的系统分析、找出问题与潜在的原因,以及提供修正问题的建议。总体目标是要减少系统的瓶颈以及从持续改善性能。ADDM也可能会呼叫其他的建议程序。
- SQL优化指导(SQL Tuning Advisor): 分析SQL语句和提供改善性能的建议。
- SQL访问指导(SQL Access Advisor): 用来调整指定的SQL工作负载的Schema。例如:存取建议程序可以提供建立索引的建议,也可以提供建议给工作负载建立物化视图。
- 内存指导(Memory Advisor): 系统内存的主要建议程序,而且负责最优化整个实例的内存。您可以选择让Oracle自动调整内存。如果您选择不要让Oracle自动调整内存, 可以呼叫SGA建议程序或PGA建议程序来取得组件的最佳化设定,以及SGA或PGA的总大小。
其他建议程序:
平均恢复时间建议程序(Mean Time to Recovery Advisor): 让您在实例失败后,可以调整平均恢复时间(MTTR)。
段指导(Segment Advisor): 会根据对象中空间碎片化的程度,来决定对象是否适合进行缩小(Shrink)操作的建议。此建议程序也会根据段的历程成长趋势来报告。您可以使用这些信息来进行容量规划,以及决定要缩小哪些区段。
还原指导程序(Undo Advisor): 会考虑系统活动的统计信息、最长时间的执行查询,以及在UNDO_RETENTION初始化参数中指定的还原保留的临界值下限,来协助调整Undo表空间的大小。
10.14 手动呼叫ADDM
您也可以手动呼叫ADDM。下列情况下,您可能需要手动呼叫ADDM:
- 它是与警示相关的建议动作。
- 必须在快照期间执行。
- 必须跨多个快照执行。
您可以执行下列步骤来手动呼叫ADDM:
- 在【数据库(Database)】首页的【相关链接(Related Links)】区域,按一下【指导中心(Advisor Central)】。
- 按一下【ADDM】。会显示【运行ADDM (Run ADDM)】页面。
- 逐渐增加的活动会话会在图形中显示成尖峰。请选择开始时间,然后选择结束时间,按一下【确定(OK)】,以分析跨多个快照的期间。【ADDM工作(ADDM Task)】页面会显示发现项目的详细信息。
10.15 使用SQL优化指导程序
您可以使用SQL优化指导分析SQL语句和取得性能建议。一般来说,您会执行这个指导程序来作为ADDM性能发现项目的后继操作。
此外,在您想要分析消耗大部分CPU时间、I/O以及内存的常用SQL语句,也可以执行SQL优化指导程序。
您可以执行下列步骤来呼叫SQL优化指导程序:
- 在【数据库(Database)】首页的【相关链接(Related Links)】区,按一下【指导中心(Advisor Central)】,之后点【SQL指导(SQL Advisor)】链接。
- 按一下【SQL调整优化指导(SQL Tuning Advisor)】。
- 按一下【执行SQL优化指导程序(Run SQL Tuning Advisor)】。会出现【SQL调整选项(SQL Tuning Options)】页面,其中显示间隔中的SQL语句。为工作命名并提供说明,再选择【完整(Comprehensive)】当做范围,然后选择【立即(Immediately)】作为开始时间。再按一下【确定(OK)】。
- 浏览至【指导中心(Advisor Central)】页面。【建议程序工作(Advisor Tasks)】的状态会列在结果区中此标题下方。您必须等到工作状态是【完成(Completed)】为止。您可以在浏览器中按一下【重新刷新】来查看状态。请选择您的工作,再按一下【查看结果(View Results)】。就会显示【SQL调整结果(SQL Tuning Result)】页面。
- 选择SQL语句,然后按一下【查看建议(View Recommendations)】来查看建议。
10.16 使用SQL访问指导程序
您可以使用SQL访问指导程序(SQL Access Advisor)来调整Schema和改善查询性能。这个指导程序需要您找出SQL工作负载,SQL工作负载是访问Schema的一组代表性SQL语句。您可以从不同资源来选取工作负载,包含目前和最近的SQL活动、SQL存取区,以及用户定义的工作负载,例如开发环境中。
SQL访问指导程序可能会提供像建立索引或物化视图的建议,以改善指定工作负载的查询性能。
您可以执行下列步骤来呼叫SQL访问指导程序:
- 在【数据库(Database)】首页的【相关链接(Related Links)】区,按一下【指导中心(Advisor Central)】。
- 在【SQL访问指导: 初始选项(SQL Access Advisor: Initial Options)】中,默认即可,点【继续(Continue)】。
- 按一下【SQL访问指导(SQL Access Advisor)】来开启精灵。会显示【SQL访问指导程序: 工作量源(SQL Access Advisor: Workload Source)页面。
- 指定您的工作负载来源,再按一下【下一步(Next)】。会显示【SQL访问指导: 建议选项(SQL Access Advisor: Recommendation Options)】页面。
- 指定是否需要指导程序提供索引、物化视图的建议或两者都要。
- 指定限制模式或完整模式。因为限制模式会着眼在最高成本的语句,所以限制模式的执行速度会比较快。按一下【下一步(Next)】。会显示【SQL访问指导: 调度(SQL Access Advisor: Schedule)】页面。
- 选择立即执行或是调度再稍后执行,立即执行时预设预设选项。再按一下【下一步(Next)】。会显示【SQL访问指导: 复查(SQL Access Advisor: Review)】页面。
- 查看您已经选择的选项,再按一下【提交(Submit)】提交您的工作。
- 提交的作业会显示在【指导中心(Advisor Central)】页面上。【SQL访问指导程序(SQL Access Advisor)】的建议会按照成本效益来排序。例如,建议可能是由具有一或多个create index语句的SQL命令文件组成,您可以按一下【调度实行(Schedule Implementation)】来执行这些语句命令。
10.17 使用内存指导程序
内存指导程序会协助您调整内存结构的大小。只有在停用自动内存调整功能时,才可以使用这个指导程序。
内存指导程序是由三个指导程序组成,会对下列内存结构提供建议:
- 系统全局区(SGA)中的共享池
- SGA中的数据库缓冲区
- 程序全局区(PGA)
您可以执行下列步骤来呼叫内存指导程序:
- 在【数据库(Database)】首页的【相关链接(Related Links)】区域上,按一下【指导中心(Advisor Central)】。
- 在【指导中心(Advisor Central)】页面上,按一下【内存指导程序(Memory Advisor)】。会显示【内存参数(Memory Parameters)】页面。这个页面提供SGA内存使用状态的中断。
注意:如果要执行指导程序,就必须停用自动共享内存管理。
- 按一下【共享池(Shared Pool)】值或【数据库缓冲区(Buffer Cache)】值旁边的【建议(Advice)】,来呼叫对应的指导程序。
- 按一下【PGA】来存取其特性页面。请按一下【建议(Advice)】来呼叫【PGA指导程序(PGA Advisor)】。
10.18 总结
本节中,您应学会:
- 描述Oracle自我监控架构
- 呼叫ADDM
- 使用下列性能指导程序来最优化数据库性能:
– SQL优化指导程序
– SQL访问指导程序
– 内存指导程序
Leave a Reply