第3章 自动数据库性能监视器
数据库性能监控与调优方法
数据库性能监控与调优方法数据库作为企业信息系统的重要组成部分,承担着数据存储与管理的任务,因此数据库的性能对于企业的正常运行至关重要。
本文将介绍数据库性能监控与调优的方法,旨在帮助企业保障数据库的稳定高效运行。
首先,数据库性能监控是保障数据库正常运行的基础。
具体而言,数据库管理员需要对数据库进行持续监控,并及时发现和解决可能存在的性能问题。
以下是一些常用的数据库性能监控方法:1. 监控关键指标:数据库管理员可以通过监控关键指标来评估和监测数据库的性能。
这些指标包括数据库连接数、查询响应时间、磁盘使用率、CPU利用率等。
通过实时监控这些指标,可以及时发现性能问题,并采取相应措施进行调优。
2. 使用性能监控工具:市场上有许多性能监控工具可供选择,如Oracle的Enterprise Manager、MySQL的Percona Monitoring and Management等。
这些工具能够提供可视化的监控界面,帮助管理员实时了解数据库的运行状态,并提供详细的性能分析和建议。
3. 设置告警机制:在性能监控过程中,管理员可以设置告警机制,当数据库出现性能问题时,及时发送警报,以便能够尽早发现和解决问题。
告警机制可以通过邮件、短信等方式进行通知,确保管理员能够第一时间采取措施。
其次,数据库调优是提升数据库性能的有效方法。
通过对数据库的调优,可以优化查询性能、提高数据库的并发处理能力、减少资源消耗等。
以下是一些常用的数据库调优方法:1. 设计优化的数据库结构:合理的数据库结构设计是数据库性能调优的基础。
数据库管理员需要根据应用需求和数据特点,考虑表的索引、关系模式设计、数据类型等因素,以降低查询复杂度,提高查询效率。
2. 优化查询语句:查询语句的优化对于提升数据库性能非常重要。
管理员可以通过修改查询语句、优化查询条件、使用合适的索引等方式,减少查询的时间和资源消耗。
此外,也可以考虑使用数据库的查询优化器,对查询语句进行自动优化。
性能监视器-PerformanceMonitor
性能监视器-PerformanceMonitor性能监视器是Windows⾃带的系统资源和性能监视⼯具. 性能监视器能够量化地提供CPU使⽤率, 内存分配状况, 异常派发情况, 线程调度频率等信息. 能够提供每秒钟的请求数⽬, 请求响应时间等等. 性能监视器能够监视⼀段时间内上述资源的利⽤情况, 提供平均值和峰值.性能监视器有助于获取关于性能的具体指标, 监视问题出现时系统资源的变化情况. 通过检查性能监视器中⼀些重要计数器的变化情况, 往往能够找到⼀些⽐较有⽤的线索. ⽐如⽐较每秒请求数⽬, 请求响应时间和CPU利⽤率是否有相同的变化曲线就能看出性能是否跟负载相关.解决性能问题的时候, 往往会让客户添加下⾯⼀些计数器进⾏性能收集.Process object下的所有计数器Processor object下的所有计数器System object下的所有计数器Memory object下的所有计数器如果客户的程序时.NET程序, 还会添加以.NET开头的object下的所有计数器.如果客户使⽤, 还会添加以开头的object下的所有计数器.分析性能⽇志的时候, 重点观察下⾯这些计数器.Process object=============Process object中的计数器可以根据⽬标进程分析内存, CPU, 线程数⽬和handle数⽬. 选出问题的⽬标进程, 然后分析⽬标进程的下⾯⼀些计数器.%Processor Time-------------------该计数器是该进程占⽤CPU资源的指标. 即便进程繁忙的时候, CPU平均占⽤率应该在80%以内. 如果超过该数值, 可以认为程序发⽣了⾼CPU的问题. 另外⼀种问题是CPU波动幅度⼤. 虽然平均占⽤率不⾼, 但是上下跳动频繁. 在某⼀个短时间段⾥⾯, 会有连续⾼CPU的情况出现.Handle Count------------------该计数器记录了当前进程使⽤的kernel object handle数量. Kernel object是重要的系统资源. 当程序进⼊稳定运⾏状态的时候, Handle Count 数量也应该维持在⼀个稳定的区间. 如果发现Handle Count在整个程序周期内总体趋势连续向上, 应该考虑程序是否有Handle Leak.ID Process------------------该计数器记录了⽬标进程的进程ID. 你可能觉得奇怪, ID有什么好观察的? 进程ID是⽤来观察程序是否有重启发⽣. ⽐如⼯作进程可能会⾃动回收. 由于进程名都相同, 所以只有通过进程ID来判断是否有重新启动现象. 如果ID有变化, 那么⽽看看程序是否发⽣崩溃或者Recycle.Private Bytes------------------该计数器记录了当前通过VirtualAlloc API进⾏的, Commit了的Memory数量. ⽆论是直接调⽤API申请的内存, Heap Manager申请的内存, 还是CLR的managed heap, 都算在⾥⾯. 跟Handle Count⼀样, 如果在整个程序周期内总体趋势连续向上, 说明有Memory Leak.Virtual Bytes------------------该计数器记录了当前进程申请成功的⽤户态总内存地址, 包括DLL/EXE占⽤的地址和通过VirtualAlloc API进⾏的, Reserve了的内存地址数量,所以该计数器应该总⼤于Private Bytes. ⼀般说来, Virtual Bytes与Private Bytes的变化⼤致⼀致. 由于内存分⽚的存在, Virtual Bytes与Private Bytes⼀般保持⼀个相对稳定的⽐例关系. 当Virtual Bytes与Private Bytes的⽐例⼤于2的时候, 程序往往有⽐较严重的内存地址分⽚. Processor object==============Processor object记录系统中芯⽚的负载情况. 由于普通程序并不可以绑定到某个具体的CPU上执⾏, 所以在多CPU机器上观察Total Instance 也就⾜够了.%Processor Time----------------------该计数器跟Process下的%Processor Time的意义⼀样, 不过这⾥记录的不是针对具体的某⼀个进程, ⽽是整个系统. 通过把该计数器跟Process下的同名计数器⼀起⽐较, 就能看出系统的⾼CPU问题是否是由于单⼀的某个进程导致的.System object==============System object记录系统中⼀个整体的统计信息. 所以不区分instance. 通过⽐较System object下的counter和其他counter的变化趋势, 往往能看出⼀些线索.Context Switch/ sec--------------------Context Switch标⽰了系统中整体线程的调度, 切换频率. 线程切换是开销⽐较⼤的操作. 频繁的线程切换回导致⼤量CPU周期被浪费. 所以当看到⾼CPU的时候, ⼀定要与Context Switch⼀起⽐较. 如果两者有相同的变化趋势, ⾼CPU往往是由于contention(线路争夺)导致的, ⽽不是死循环.Exception Dispatches/ sec-------------------Exception Dispatches表⽰了系统中异常派发, 处理的频繁程度. 跟线程切换⼀样, 异常处理也需要⼤量的CPU开销. 分析⽅法跟Context Swith 雷同.File Data Operations/ sec-------------------File Data Operations记录了当前系统中磁盘⽂件读写的频繁程度. 通过观察该计数器跟其他性能指针的变化趋势, 能够判断磁盘⽂件操作是否是性能瓶颈. 类似的计数器还有Network Interface, Bytes Total/ secMemory Object=============Memory object记录了当前系统中整体内存的统计信息.Avaiable Mbytes 和 Committed Bytes---------------------Available Mbytes记录了当前剩余的物理内存数量. Committed Bytes记录了所有进程commit的内存数量. 结合两个计数器可以观察到:1. 两者相加可以粗略估计系统总体可⽤内存的多少, 便于估计物理配置.2. 当Available Mbytes少于100MB的时候, 说明系统总体内存紧张, 会影响到系统所有进程的性能. 应该考虑增加物理内存或检查内存泄露.3. 通过⽐较Process object中的Private Bytes和Virtual Bytes, 便于进⼀步确认是否有内存泄露, 判断内存泄露是否是由某⼀单个进程导致的.Free System Page Table Entries, Pool Paged Bytes 和 Pool Nonpaged Bytes--------------------这三个计数器可以衡量核⼼态空闲内存的数量. 特别是当使⽤/3GB开关后, 核⼼态内存地址被压缩, 容易导致核⼼态内存不⾜, 继⽽引发⼀些⾮常奇怪的问题..NET CLR Memory object=============.NET CLR Memory object记录了CLR进程中跟CLR相关的内存信息. 该类别下的所有计数器都很有趣, 意思也⾮常直接. 建议⽤⼀个例⼦程序进⾏测试和研究. 下⾯是两个最常⽤的计数器.Bytes in all heaps----------------------Bytes in all heaps 记录了上次GC发⽣时所统计到的, 进程中不能被回收的所有CLR object占⽤的内存空间. 该计数器不是实时的, 每次GC发⽣的时候, 该计数器才更新. 与同⼀进程的Process下的Private Bytes⽐较, 可以区分出managed heap和native memory的变化情况. 对于memory leak, 便于区分是managed heap的leak, 还是native memory 的leak.%Time in GC%Time in GC记录了GC发⽣的频繁程度. ⼀般来说15%以内算⽐较正常. 当超过20%时, 说明GC发⽣过于频繁. 由于GC不仅带来很⾼的CPU 开销, ⽽且还需要挂起⽬标进程的CLR线程, 所以⾼频率GC是⾮常危险的. 通过跟CPU利⽤率和其他性能指标的⽐较, 往往能够看出GC对性能的影响. ⾼频率的GC往往因为:1. 负载过⾼.2. 不合理的架构, 对内存使⽤率不⾼.3. 内存泄露, 内存碎⽚导致内存压⼒.的性能监视============如果⽬标程序时, 在开头的object中, 下⾯这些计数器对于测量的性能⾮常有⽤. 由于不少计数器存在于多个object 类别中, 下⾯只列出具体的计数器名字, ⽽不去对应到具体的object.Application Restarts-------------------Application Restarts记录了 Application Domain重启的次数. 导致 appDomain重启的原因往往是虚拟⽬录被修改. ⽐如修改了web.config⽂件, 或者防毒程序对母你⽬录进⾏了扫描. 通过该计数器可以观察是否有异常的重启现象.Request Execution Time-------------------Request Execution Time记录了请求的执⾏时间, 它是衡量性能的最直接参数. 通过该计数器的平均值来衡量性能是否合乎预期. 需要注意的地⽅是: 由于Windows并⾮实时系统, 所以不能⽤峰值来衡量整体性能. ⽐如当GC发⽣的时候, 请求执⾏时间肯定要超过GC的时间.所以, 平均值才是有效的标准.Request Current-------------------Request Current记录了当前正在处理的和等待处理的请求. 最理想的情况是Request Current等于CPU的数量, 这说明请求与硬件资源能并发处理的能⼒恰好吻合, 硬件投资正运⾏在最优状态. 但是⼀般说来, 当负荷⽐较⼤的时候, Request Current也随着增⾼. 如果Request Current在⼀段时间内有超过10的情况, 说明性能有问题. 注意观察此时对应的CPU情况和其他的资源. 如果CPU不⾼, 很可能是是程序中有Blocking发⽣, ⽐如等待数据库请求, 导致请求⽆法及时完成.Request/ second------------------Request/ second计数器记录了每秒钟到达的请求数. 这是衡量负载的直接参数. 注意观察Request/ second是否超过程序预期的吞吐量. 如果Request/ second 有突发的波动, 注意看是否有拒绝服务攻击. 通过把Request/second, Request Current, Request Execution Time和系统资源⼀起⽐较, 往往能够看出整体性能的变化和各个因素之间的影响.Request in Application Queue------------------当没有空余的⼯作线程来处理新进⼊的请求的时候, 新的请求会被放到Application Queue中. 当Application Queue堆积的请求也超过设定数值的时候, 直接返回503 Server Too Busy错误, 同时丢弃该请求. 所以正常情况下, Request Application Queue应该总为0,否则说明已经有请求堆积, 性能问题严重.摘⾃<Windows⽤户态程序⾼效排错>。
数据库监控与性能分析工具推荐
数据库监控与性能分析工具推荐目前,随着数据库技术的发展,数据库监控和性能分析工具也得到了越来越广泛的应用。
在众多的数据库监控和性能分析工具中,本文为大家推荐一些性能优良、功能全面的数据库监控和性能分析工具。
1. SolarWinds Database Performance Analyzer(DPA)这是一款专门为云端、物理和虚拟化的环境设计的数据库性能监控和分析工具。
DPA可以对多个数据库实例的性能、等待事件和存储性能进行实时监控和分析。
此外,它还提供了一个自适应基准库,在运行足够的跟踪之后,可以自动为你选择合适的基准值。
DPA还有一个非常强大的功能 - 对于具有低性能的SQL语句自动创建索引,这可以大幅提升整体性能。
2. Paessler PRTG Network MonitorPRTG Network Monitor可以监控网络系统和应用程序的可用性,并提供丰富的自定义报告。
它支持多种设备,包括Microsoft SQL、MySQL和Oracle数据库。
PRTG可以监控数据库的性能指标,如响应时间、查询次数和传输速率。
此外,还可以使用PRTG进行自定义警报和通知,以便快速解决潜在的问题。
3. Idera SQL Diagnostic ManagerSQL Diagnostic Manager是一款监控SQL Server性能的全面解决方案,提供实时性能、存储和服务器监控。
它可以自动诊断性能问题,并提供实时警报和建议来改善性能。
SQL Diagnostic Manager还提供了许多内置报告和仪表板,以及用户可以创建自定义报告和仪表板的选项。
4. dbForge Studio for SQL ServerdbForge Studio是一款功能强大的集成开发环境(IDE),专门为SQL Server设计。
它提供了一个广泛的工具箱,以实现SQL Server的性能监控和分析,包括查询性能分析、查询优化器、语法检查、单元测试等功能。
MySQL数据库性能监控与优化的工具推荐
MySQL数据库性能监控与优化的工具推荐近年来,随着互联网的快速发展和信息技术的不断创新,各类网站和应用程序的数据库需求越来越大。
而数据库作为应用系统中最关键的组成部分之一,其性能直接关系到整个系统的运行效率和用户体验。
为了及时发现和解决数据库性能问题,提高系统的稳定性和性能,数据库性能监控与优化工具应运而生。
本文将介绍几种常用的MySQL数据库性能监控与优化工具,为用户提供参考。
一、MySQL性能监控工具1. MySQL Enterprise MonitorMySQL Enterprise Monitor是由MySQL AB开发的一款强大的性能监控工具。
该工具提供了丰富的监控指标和图表,可以实时监测MySQL服务器的性能参数,包括CPU利用率、内存使用、磁盘IO、查询响应时间等。
同时,它还支持报警功能,可以在数据库性能出现异常时发送警报通知管理员及时处理。
2. Percona Monitoring and Management (PMM)PMM是由Percona开发的一套开源的MySQL性能监控工具。
它基于Prometheus和Grafana构建,提供了丰富的监控指标和仪表盘展示,用户可以通过图表直观地了解数据库的性能状况。
PMM还提供了Query Analytics功能,可以对SQL查询进行分析,帮助用户优化查询性能。
3. Navicat MonitorNavicat Monitor是一款功能强大的MySQL性能监控工具,为用户提供实时的性能监控和优化建议。
它可以监测MySQL服务器的关键指标,如查询执行时间、连接数、线程状态等,并生成相应的报表和图表展示。
此外,Navicat Monitor还支持远程监控,用户可以通过网络访问监控数据,方便远程管理。
二、MySQL性能优化工具1. MySQLTunerMySQLTuner是一款Perl脚本工具,用于分析MySQL服务器的配置和性能瓶颈,并给出相应的优化建议。
性能监视器的使用
性能监视器【实验目的】1)1)性能监视器的运用。
2)3)理解网络层次结构中各层数据的包装关系。
3)4)捕捉ping命令相关协议的数据包,并分析结构。
【实验环境】具备IIS的Windows 2003 Server计算机、局域网、Windows 20003Server安装光盘。
【实验重点及难点】重点:掌握网络监视器使用方法,深刻体会网络层次结构中各层数据的包装关系,学会分析常用数据包的结构。
【实验内容】一、监视事件IIS中的网站是靠IIS服务来实现的,例如Web站点依赖于WWW服务,故服务启动失败这样的事件往往暗示着站点不能正常工作的原因。
此外,象TCP/IP错误,网络硬件设备错误这样的事件往往也是导致服务器不能正常工作的罪魁祸首。
当系统提示出错或者IIS 出现某种异常情况时,有经验的管理员通常先检查事件查看器所记录的事件。
单击【开始】、【程序】、【管理工具】、【事件查看器】打开如右图所示的事件查看器。
全部事件分别保存在三个事件日志中:应用程序日志、安全日志和系统日志,其包含的事件种类如下:对于IIS服务器而言,系统日志中记录的事件显得更加重要。
如图,在事件查看器控制树中选择系统日志,则右侧窗格列出已经被记录的全部事件,事件分为:错误、警告、信息等不同类型。
事件列表中仅显示有关事件发生的时间、来源、分类和用户等有限信息,为了详细查看某一事件的描述或信息代码,应双击列表中的事件,查阅事件属性对话框。
如右图所示,在事件属性对话框中详细描述事件发生的情况和可能的原因,典型的事件还给出了数据代码供程序员调试使用。
单击事件属性对话框中的上下箭头可以继续查看上一个或下一个事件的详细信息。
二、性能监视器通过日志文件的方式对服务器进行长期监视,得到系统对象的平均特性。
利用日志文件进行及监视的方法如下:1、在性能监视器中展开【系统日志和警报】节点,右击【计数器日志】,选择【新建日志设置】。
2、在【新建日志设置】对话框中输入新日志名称,单击【确定】。
如何打开计算机上的性能监视器
如何打开计算机上的性能监视器计算机的性能监视器是一项非常有用的功能,可以帮助我们了解计算机的运行情况,包括CPU、内存、磁盘、网络等方面的信息。
在日常使用计算机的过程中,经常会遇到计算机运行缓慢的情况,通过性能监视器可以快速定位问题并进行相应的调整。
本文将介绍如何打开计算机上的性能监视器。
一、通过快捷键打开性能监视器方法一:按下键盘上的Ctrl+Shift+Esc快捷键,可以直接打开任务管理器;方法二:按下Ctrl+Alt+Del键,进入蓝色的选项页面,选择“任务管理器”,即可打开任务管理器。
二、通过“开始”菜单打开性能监视器步骤一:点击计算机桌面左下角的“开始”按钮;步骤二:在弹出的菜单中选择“Windows 系统”文件夹;步骤三:在“Windows 系统”文件夹中,可以看到“性能监视器”选项,点击即可打开性能监视器。
三、通过运行窗口打开性能监视器步骤一:按下键盘上的Win+R组合键,打开运行窗口;步骤二:在运行窗口中输入“perfmon.msc”,然后点击“确定”按钮;步骤三:即可打开性能监视器。
四、通过控制面板打开性能监视器步骤一:点击计算机桌面左下角的“开始”按钮;步骤二:在弹出的菜单中选择“控制面板”;步骤三:在控制面板中,可以按照不同版本的Windows操作系统,选择不同的选项路径,如“系统和安全”、“系统和维护”等;步骤四:在相应的选项中,找到“管理工具”选项,点击进入;步骤五:可以看到“性能监视器”的选项,点击即可打开性能监视器。
通过以上四种方法,您可以轻松地打开计算机上的性能监视器,随时了解计算机的运行情况。
性能监视器除了提供实时的性能数据外,还可以查看历史记录、创建报表等功能,帮助用户更好地管理和优化计算机的性能。
在实际使用过程中,我们可以根据自己的需求设置不同的监视器参数,比如监视特定的进程、查看某个硬件设备的使用情况等。
通过观察性能监视器的数据,我们可以找到造成计算机性能下降的原因,及时进行相应的优化操作,提升计算机运行的效率。
数据库性能监控工具的性能指标定义与告警策略配置
数据库性能监控工具的性能指标定义与告警策略配置随着现代软件系统复杂性的增加和用户对系统性能的要求不断提高,数据库性能监控工具的重要性也日益凸显。
数据库是许多应用程序的核心,其性能直接影响整个应用系统的运行效果。
因此,准确地定义数据库性能指标,并配置适当的告警策略非常重要,以及时发现并解决性能问题,保证系统的安全性以及高可用性。
1.性能指标的定义性能指标是用于衡量数据库系统性能的重要工具。
定义合适的性能指标有助于监测和评估数据库的运行状况,从而及时发现潜在的性能问题。
主要的性能指标如下:1.1. 响应时间:衡量数据库对于用户提交的请求所需的时间。
这是用户体验的关键指标,反映了数据库系统对查询、插入和更新请求的处理能力。
1.2. 吞吐量(Throughput):表示数据库系统在单位时间内能够处理的事务数量。
较高的吞吐量意味着系统处理能力较强,用户请求得到及时响应。
1.3. 并发性:指数据库系统能够同时处理的事务数量。
并发性高表示数据库系统能同时处理多个逻辑上相互独立的事务,提高系统的运行效率。
1.4. 缓存使用率:用于衡量数据库系统内存缓存效果。
高的缓存使用率可以减少磁盘IO操作,提高访问性能。
1.5. 磁盘空间利用率:表示数据库占用的磁盘空间与总可用磁盘空间之间的比例。
合理利用磁盘空间可以提高数据库系统的存储效率。
1.6. 锁争用:用于衡量数据库锁资源的争用程度。
高的锁争用意味着并发事务之间需要等待锁资源的释放,降低了系统的性能。
2. 告警策略的配置为了及时发现和解决数据库性能问题,配置适当的告警策略是必要的。
告警策略的配置应基于数据库的性能指标,并且具有一定的灵活性以应对特定情况。
以下是一些常用的告警策略配置需求:2.1. 设置阈值:根据数据库的性能指标,设置相应的阈值,当指标超过阈值时触发告警。
例如,可以设置响应时间阈值为200毫秒,当响应时间超过该阈值时触发告警。
2.2. 配置告警通知方式:根据实际情况选择适当的告警通知方式,包括邮件、短信、应用程序通知等。
MySQL技术中的数据追踪和性能分析工具介绍
MySQL技术中的数据追踪和性能分析工具介绍引言:MySQL作为一种广泛使用的开源数据库管理系统,被广泛应用于各种规模和类型的应用程序中。
在开发和管理MySQL数据库时,数据追踪和性能分析工具起着至关重要的作用。
本文将介绍一些常用的MySQL数据追踪和性能分析工具,帮助读者更好地掌握MySQL技术。
一、数据追踪工具1. General Query LogMySQL的General Query Log是一项常用的数据追踪工具,可以记录所有与数据库交互的查询语句,包括用户、时间戳和查询内容等信息。
通过开启General Query Log,开发人员可以轻松地追踪和分析数据库的查询活动,以便于排查问题或进行性能调优。
2. Slow Query LogSlow Query Log是一种MySQL提供的重要数据追踪工具,可以记录执行时间超过设定阈值的查询语句。
开启Slow Query Log可以帮助开发人员发现性能瓶颈和潜在问题,并进行相应的优化操作。
通过分析Slow Query Log,我们可以找出哪些查询需要被优化,以提高数据库的性能。
3. Performance SchemaPerformance Schema是MySQL 5.5版本及以上的一个特性,它提供了一种更加灵活和全面的数据追踪工具。
通过Performance Schema,我们可以了解到更多底层MySQL服务器的性能指标和统计信息,如线程、锁、IO、内存、查询计划等。
借助Performance Schema,我们可以更加深入地了解数据库的运行状态,并对其进行优化和监控。
二、性能分析工具1. EXPLAINEXPLAIN是MySQL的一种重要的性能分析工具,它可以用来分析查询语句的执行计划。
通过EXPLAIN,我们可以了解MySQL是如何执行查询语句的,包括表的访问顺序、索引的使用情况、是否使用临时表等。
通过分析EXPLAIN的结果,我们可以找到查询语句的优化方向,从而提高查询的效率。
《Oracle DBA 手记》,试读版,盖国强
第1章E y g l e的D B A工作手记写下这一章节的目的源于很多朋友的建议,他们建议我描述一下DBA的日常工作,一方面可以将真实的DBA生活展现给那些将要入行的朋友看,另一方面又可以将工作中遇到的问题真实地描写出来。
前者对初学者有益,后者对大家有参考价值。
于是有了这一章DBA手记,内容,也许有些断断续续、只言片语,但是这就是我们在一直面对的工作与持续的思考。
1.1DBA2.0的时代在2008~2009年,随着Oracle Database 10g的成熟与广泛应用,以及Oracle Database 11g 的改进与推行,Oracle公司开始对DBA(即Database Administrator,数据库管理员)这个词进行了重新界定,进一步推出了DBA2.0的概念。
当然DBA2.0不仅仅是一个概念,更是对我们一直以来进行的长期思考的一个阶段性总结和升华。
那么什么是DBA2.0呢?回忆起来,DBA这个职业从诞生、发展到成熟,其实时间是非常短的,记得2000年左右,DBA的从业人群还非常小,而到了2008、2009年,DBA的圈子已经越来越大,甚至传统意义上的DBA已经成熟得需要革新。
这个行业的发展和变化如此之快,我们甚至举办过一个系列的高校巡回演讲活动,主题是如何成为一个Oracle DBA,类似的很多活动已经进一步将DBA 这个词引入校园(Oracle公司已经在面向高校推进OCP认证),现在的学生能够接触到DBA 这个概念的时间早得超乎我们当年的想象(很多人一毕业就可以加入到DBA行列)。
很多业界朋友都问过自己这样的问题,在数据库软件的自动化程度越来越高,应用越来越普及和简单之后,DBA当何以为生?实际上这也正是DBA2.0时代我们要面对的问题。
说起来,DBA 2.0时代,直接同Oracle Database 10g引入的一个新产品表象相关,这个产品就是Grid / Database Control,这个工具将原来基于客户端的OEM通过Web形式来展现,并且基于后台众多新特性的支持,提供了强大的功能。
操作系统的性能监控与分析工具
操作系统的性能监控与分析工具所有的计算机系统都需要一个可靠的性能监控和分析工具,以保证系统运行的稳定性和高效性。
在操作系统中,性能监控和分析工具对于检测系统性能瓶颈、优化系统资源分配以及及时发现和解决系统故障非常重要。
本文将介绍几种主要的操作系统性能监控与分析工具,包括系统监视器、性能分析器和追踪工具等。
一、系统监视器系统监视器是一种常用的性能监控工具,用于实时监视和记录系统资源的使用情况。
系统监视器可以监控CPU的使用率、内存的使用情况、磁盘IO、网络流量等关键指标,帮助用户全面了解系统的运行状况。
Windows操作系统自带的任务管理器就是一种简单的系统监视器。
它提供了实时的CPU、内存和磁盘使用情况的图表展示,以及进程和服务的详细信息。
在Linux系统中,常用的系统监视器包括top、htop和nmon等工具,它们提供了更丰富的性能指标和定制化的显示选项。
二、性能分析器性能分析器是一种用于深入分析和诊断系统性能问题的工具。
它可以帮助用户找到系统性能瓶颈,并提供优化建议。
性能分析器通常可以分析CPU的使用情况、内存泄漏、磁盘IO性能、网络延迟等问题。
在Windows系统中,常用的性能分析器包括Windows Performance Monitor和Windows Performance Toolkit。
它们可以生成系统的性能报告,包括CPU利用率、内存使用情况、进程信息等。
对于Linux系统,perf和gprof是常用的性能分析工具,它们可以分析CPU使用情况、函数调用关系等。
三、追踪工具追踪工具是一种用于跟踪和记录系统运行轨迹的工具。
它可以捕获和分析系统中的各种事件,包括进程调度、中断处理、系统调用等。
通过分析这些事件的顺序和时间戳,可以帮助用户定位系统的性能瓶颈和故障。
在Windows系统中,Event Tracing for Windows(ETW)是一种常用的追踪工具,它可以跟踪和记录系统的各种事件。
数据库性能监控与故障预警系统的设计与实现
数据库性能监控与故障预警系统的设计与实现摘要随着计算机技术的发展和应用场景的增加,数据库系统的重要性越来越凸显。
然而,随之而来的是数据库性能问题的日益复杂和多样化。
因此,设计和实现一个高效可靠的数据库性能监控与故障预警系统成为了必要且紧迫的任务。
本文将重点介绍数据库性能监控与故障预警系统的设计原理、架构和实现方法,并讨论其在现实应用中的意义和挑战。
1. 引言数据库系统作为现代信息系统的核心组成部分,负责存储和管理海量的数据并提供相关的数据查询和操作,其性能和稳定性直接影响着整个系统的效率和可用性。
然而,由于数据库系统的巨大规模和复杂性,难以直接进行全面的性能监控和故障预警,因此需要一个高级的监控系统来实现此目标。
2. 设计原理数据库性能监控与故障预警系统的设计原理主要包括以下几个方面:2.1 数据采集与传输为了实时监控数据库性能指标,需要采集数据库系统的实时数据。
通过合适的监控代理程序或插件,可以监测数据库的运行状态、查询性能、IO负载等关键指标,并将这些数据传输到性能监控系统。
2.2 数据存储与处理采集到的数据库性能数据需要存储在性能监控系统中进行分析和处理。
通常可以选择使用关系型数据库或时序数据库来存储这些数据,并建立合适的索引和数据模型来支持后续的查询和分析操作。
2.3 异常检测与故障预测数据库性能监控系统需要通过数据分析和算法模型来检测异常行为和故障状况。
常见的方法包括时间序列分析、异常检测算法和机器学习模型。
通过对历史数据的分析,可以预测可能发生的故障,并提前采取相应的措施来防止故障的发生。
2.4 可视化展示与用户界面数据库性能监控系统的数据应该以直观和易懂的方式呈现给用户。
通过可视化图表、仪表盘或报表等形式,用户可以快速了解数据库的运行状况和性能趋势。
同时,提供友好的用户界面和操作方式,方便用户进行系统配置和管理。
3. 架构设计与实现3.1 系统架构图数据库性能监控与故障预警系统的整体架构通常包括数据采集模块、数据存储与处理模块、异常检测与故障预测模块、用户界面模块等。
数据库性能监控工具推荐MySQLvsOracle
数据库性能监控工具推荐MySQLvsOracle数据库性能监控工具推荐:MySQL vs Oracle数据库是现代软件系统中的关键组件之一,它负责存储、管理和处理大量的数据。
为了保证数据库的高效性能,监控工具成为必不可少的工具。
在本文中,我们将介绍两种常用的数据库性能监控工具:MySQL和Oracle,并比较它们的特点和优势。
一、MySQLMySQL是一种开源的关系型数据库管理系统,它被广泛应用于各类Web应用和大型企业应用中。
MySQL提供了丰富的性能监控工具,以下是几个值得推荐的工具:1. MySQL Enterprise MonitorMySQL Enterprise Monitor是由MySQL官方提供的一款性能监控工具,它可以实时监测MySQL数据库的性能指标并提供详细的分析报告。
该工具支持可视化的仪表盘,能够帮助管理员快速定位和解决性能问题。
2. Percona Monitoring and Management (PMM)PMM是由Percona开发的一套开源性能监控工具,它对MySQL数据库进行全面监控,包括查询性能、磁盘IO、内存使用等方面。
PMM提供了丰富的图表和报告,帮助管理员更好地理解数据库的性能状况,并进行优化和调整。
3. VividCortexVividCortex是一款云端数据库性能监控工具,它支持多种数据库类型,包括MySQL。
VividCortex提供了实时的查询分析、性能趋势图和报警功能,帮助管理员在第一时间发现和解决性能问题。
二、OracleOracle数据库是一种商业性的关系型数据库管理系统,它被广泛应用于企业级应用和大型数据中心。
Oracle提供了多种性能监控工具,以下是几个值得推荐的工具:1. Oracle Enterprise Manager (OEM)OEM是由Oracle官方提供的一款全面监控和管理Oracle数据库的工具,它支持实时性能监控、自动化管理和故障诊断等功能。
MySQL数据库的性能监测和调优工具推荐
MySQL数据库的性能监测和调优工具推荐随着互联网的快速发展,大量的数据被存储在数据库中。
数据库的性能直接影响企业的运营效率和用户体验。
为了保证数据库的高性能运行,必须及时监测并调优数据库。
本文将介绍几种常用的MySQL数据库性能监测和调优工具,并分析其特点和适用场景。
一、MySQL性能监测工具1. MySQL WorkbenchMySQL Workbench是一款官方提供的免费工具,具有图形化界面,可以对MySQL数据库进行全面的性能监测和分析。
它可以监测数据库的各项指标,包括查询执行时间、连接数、IO操作等。
通过Workbench可以方便地诊断数据库性能问题,并提供相应的优化建议。
2. pt-query-digestpt-query-digest是Percona Toolkit中的一个工具,用于分析MySQL的慢查询日志。
它能够将慢查询日志文件转化为易读的报告,展示慢查询的统计信息和执行计划。
pt-query-digest可以帮助用户快速定位慢查询的原因,并优化相关的SQL语句,提高数据库的性能。
3. Performance SchemaPerformance Schema是MySQL官方引入的一种性能监测工具。
它可以实时监测MySQL数据库的性能指标,包括数据库连接、锁等待、缓冲区命中率等。
Performance Schema提供了一系列的表和视图,用于存储和展示性能监测数据,可以通过简单的SQL语句查询相关的信息。
4. sysbenchsysbench是一款开源的多线程性能测试工具,可以模拟大量的数据库负载,从而评估数据库的性能。
sysbench提供了多种测试模式,包括CPU计算、内存操作、磁盘IO、数据库压力测试等。
通过sysbench可以测量数据库在不同负载下的性能表现,并根据测试结果进行相应的优化。
二、MySQL性能调优工具1. pt-visual-explainpt-visual-explain是Percona Toolkit中的一个工具,用于可视化MySQL的SQL执行计划。
oracle 11g addm使用方法
oracle 11g addm使用方法
在Oracle 11g中,ADDM(自动数据库诊断监视器)是一个重要的工具,用于自动检测和解决数据库性能问题。
以下是使用ADDM的基本步骤:
1. 启动ADDM:默认情况下,ADDM每小时执行一次自上而下的系统分析,并在Oracle企业管理器主页上报告发现的问题。
2. 识别性能问题:在两个实例上启动负载,从而产生集群性能问题,然后找出问题的根源。
3. 使用ADDM自动识别性能问题:当创建了下一个AWR(自动工作负载
仓库)快照时,ADDM将自动分析数据库性能。
ADDM将分析与当前和之前的AWR快照对应的时间段。
4. 查看ADDM分析结果:要查看最新的ADDM分析结果,可以手动运行ADDM,它将分析当前的AWR快照和前一快照之间的时间段的性能。
5. 实施ADDM建议:根据ADDM的分析结果,可以采取相应的措施来解
决性能问题。
这些措施可能包括调整数据库参数、优化SQL查询或调整数
据库对象等。
另外,对于Oracle 11g中的ADDM,还可以添加一些指示(directive),使其忽略一些不关心的信息,以提高性能诊断的精度和效率。
以上是使用Oracle 11g ADDM的基本步骤,实际操作中可能需要根据具体情况进行调整和优化。
同时,为了确保ADDM能够准确有效地诊断和解决性能问题,需要定期对数据库进行维护和监控,及时发现并解决潜在的性能问题。
MySQL数据库的监控和性能调优工具
MySQL数据库的监控和性能调优工具MySQL是当前最流行的关系型数据库管理系统之一,被广泛用于各个领域的应用开发中。
而对于数据库的监控和性能调优是保障其稳定性和高效性的重要环节。
在这篇文章中,我们将探讨一些常用的MySQL数据库监控和性能调优工具。
一、监控工具1. MySQL Enterprise MonitorMySQL Enterprise Monitor是由MySQL官方提供的一款强大的监控工具。
它可以提供对MySQL服务器性能和状态的实时监控,包括查询的运行时间、慢查询、锁等信息。
此外,还可以通过邮件、报警等方式及时通知管理员发现和解决问题。
该工具具有用户友好的界面,非常适合企业级的MySQL数据库监控和管理。
2. Percona Monitoring and ManagementPercona Monitoring and Management(简称PMM)是一套由Percona提供的开源监控和管理工具。
它基于Grafana和Prometheus构建,可以实时监控MySQL数据库的性能,并提供丰富的性能指标和监控报表。
PMM提供了可视化的仪表盘,使得管理员可以方便地查看数据库的状态、性能和负载情况,以及进行趋势分析和容量规划。
3. 数据库性能分析器数据库性能分析器是一种用于监控和分析数据库性能的工具。
它可以帮助开发人员识别慢查询、瓶颈和优化机会。
对于MySQL数据库而言,比较常用的性能分析器有工具集合pt-query-digest和MySQL自带的性能分析工具sysbench。
这些工具可以帮助您找到数据库的性能热点和瓶颈,并给出相应的优化建议。
二、性能调优工具1. MySQL TunerMySQL Tuner是一款免费的开源工具,用于对MySQL服务器进行性能调优。
它可以分析服务器的当前配置和性能指标,并给出优化建议。
MySQL Tuner提供了一系列的检查项,包括缓冲区大小、查询缓存、连接数、表结构等方面的优化建议。
MySQL数据库自动化运维和监控的工具推荐
MySQL数据库自动化运维和监控的工具推荐1. 引言随着互联网和大数据的快速发展,数据库已成为许多企业和组织不可或缺的基础设施之一。
而MySQL作为最流行的开源关系型数据库系统之一,得到了广泛的应用。
但是,管理和监控MySQL数据库并非易事。
为了提高效率和减少人工操作的错误,自动化运维和监控成为一种必要的选择。
本文将介绍一些常用的MySQL 数据库自动化运维和监控的工具,并对它们的特点和适用场景进行评价。
2. 自动化运维工具推荐2.1. MySQL WorkbenchMySQL Workbench是由MySQL官方提供的一款数据库综合开发工具,除了数据建模、SQL开发和服务器配置外,它还提供了一系列自动化运维功能。
例如,通过Workbench,可以方便地备份和恢复数据库,进行定时任务的管理,甚至可以远程监测和管理多个数据库实例。
2.2. Navicat for MySQLNavicat for MySQL是一款功能强大的MySQL数据库管理工具。
除了提供简洁易用的数据库操作界面外,它还支持对数据库对象的自动化操作,例如批量导入和导出数据、自动备份和还原数据库、自动优化数据库性能等。
同时,Navicat for MySQL还提供了丰富的可视化监控功能,能够实时查看数据库的运行状态和性能指标。
2.3. MyDBOPSMyDBOPS是一个基于Python开发的MySQL数据库自动化运维工具,它通过配置文件和脚本来实现自动化操作。
MyDBOPS的特点是灵活性强,可以根据具体需求定制各种自动化任务,例如定期备份和恢复数据库、自动生成数据库报告和性能图表、自动化监控和告警等。
同时,MyDBOPS还提供了一些常用的脚本和插件,方便用户进行扩展和定制。
3. 监控工具推荐3.1. PrometheusPrometheus是一个开源的监控系统,它专注于时间序列数据的收集和存储。
通过使用Prometheus的MySQL Exporter组件,可以方便地监控MySQL数据库的各种指标,例如连接数、查询次数、响应时间等。
Windows操作系统的性能监视器
Windows操作系统的性能监视器在我们使用电脑的过程中,我们时常需要对电脑的性能进行监控,以便及时了解电脑运行情况。
在Windows操作系统中,系统自带了一个性能监视器,它是一款非常强大的工具,可以帮助我们实时监控电脑的性能指标,并且能够提供帮助我们定位运行问题的解决方案。
今天,我们就来一起学习一下Windows操作系统的性能监视器。
一、性能监视器是什么性能监视器是Windows操作系统中的一款系统监测工具,它可以用于监视CPU、磁盘、内存和网络等系统指标。
通过性能监视器,我们可以实时地监控系统的性能指标,比如CPU负载、磁盘读写速度、内存占用率、网络带宽等数据,同时也可以通过它来监控应用程序的运行情况,从而了解系统的运转状态。
二、性能监视器的功能特点1. 实时监控性能监视器可以实时监控CPU、内存、磁盘和网络等指标,可以使我们在程序运行时随时观察系统性能和资源占用情况。
2. 数据收集通过Windows操作系统的性能监视器,我们可以收集和保存细致的性能数据,通过数据分析来优化和调整我们的电脑。
这些数据可以用于优化系统、查找问题和性能瓶颈。
3. 提供资源监控性能监视器可以监控进程并提供所有占用资源的详细信息,包括CPU占用率、内存占用率、磁盘输入/输出负载等。
这可以让我们很清晰地了解哪些进程在占用系统资源,以及它们占用资源的程度。
4. 支持多种监视类别Windows操作系统的性能监视器支持多类别的监视,包括CPU、内存、磁盘和网络等多方面。
其提供的信息也比较全面,可以满足大多数系统监视需要。
5. 自定义计数器性能监视器还支持自定义计数器,使我们可以使用自己的计数器监视客户化的应用程序或特定的系统进程。
三、性能监视器如何使用1. 打开性能监视器我们可以通过按Ctrl+Shift+Esc组合键打开任务管理器,然后在选项卡中选择性能选项卡。
此时我们将看到Windows操作系统的性能监视器。
2. 选择监视对象在“性能监视器”中,我们可以选择记录日志的计算机和活动的资源。
MySQL的性能监控和调优工具
MySQL的性能监控和调优工具引言MySQL是一种开源的关系型数据库管理系统,被广泛用于Web应用程序的开发和管理。
随着数据量的增长和用户数量的增加,数据库的性能和稳定性成为一个关键问题。
为了解决这些问题,开发人员和DBA(数据库管理员)需要使用相应的工具来监控和调优MySQL的性能。
本文将介绍一些常用的MySQL性能监控和调优工具。
一、性能监控工具1. MySQL Enterprise MonitorMySQL Enterprise Monitor是由MySQL官方推出的一款商业化的性能监控工具。
它可以提供实时的性能监控和警报,帮助开发人员和DBA更好地理解和分析MySQL数据库的性能状况。
该工具提供了可视化的界面,包括图表和报表,使用户可以直观地了解数据库的各项指标,并能够快速定位和解决性能问题。
2. Percona Monitoring and ManagementPercona Monitoring and Management(PMM)是Percona公司开发的一款免费的性能监控工具。
它基于开源工具Prometheus和Grafana,提供了一套完整的性能监控和报告系统。
PMM支持多种监控插件,可以监控MySQL的各种性能指标,比如查询性能、锁争用、IO等。
同时,PMM还提供了慢查询分析、索引优化等功能,帮助用户更好地调优MySQL数据库。
3. MySQL Performance SchemaMySQL Performance Schema是MySQL自带的一个性能监控工具。
它可以以非常低的系统开销收集MySQL的性能数据,包括查询、索引、锁等方面的数据。
通过Performance Schema,开发人员可以深入了解MySQL的内部工作原理,并且可以根据性能数据进行针对性的调优。
二、性能调优工具1. EXPLAINMySQL的EXPLAIN命令是一个很有用的性能调优功能。
通过运行EXPLAIN命令,可以分析和优化MySQL的查询语句。
学会使用电脑的性能监控工具
学会使用电脑的性能监控工具随着电脑技术的不断发展和普及,电脑在我们的日常生活和工作中扮演着越来越重要的角色。
然而,随之而来的问题也逐渐显现,例如电脑运行速度缓慢、系统崩溃等。
为了解决这些问题,学会使用电脑的性能监控工具是必不可少的,本文将介绍几种常见的性能监控工具,并给出使用方法。
一、Task Manager(任务管理器)Task Manager(任务管理器)是Windows操作系统自带的性能监控工具,通过它可以轻松监控和管理电脑的性能。
要打开Task Manager,只需按下Ctrl+Shift+Esc组合键,或者右键点击任务栏选择“任务管理器”选项。
在Task Manager中,可以查看电脑的处理器、内存、磁盘和网络的使用情况,以及当前运行的进程和应用程序。
通过查看这些信息,我们可以了解电脑的性能状况,并可以根据需要终止某些占用资源过多的进程。
二、Resource Monitor(资源监视器)Resource Monitor(资源监视器)是一款强大的性能监控工具,可以提供更加详细和全面的性能监控信息。
要打开Resource Monitor,可以在Task Manager中点击“性能”选项卡,然后点击下方的“资源监视器”按钮。
在Resource Monitor中,可以查看各个硬件组件的实时性能数据,包括CPU、内存、磁盘和网络。
此外,还可以查看当前运行的进程和服务,并根据需要进行优化和管理。
通过Resource Monitor,我们可以更加深入地了解电脑的性能状况,以及哪些进程或服务在消耗系统资源。
三、HWMonitor(硬件监控)HWMonitor是一款专门用于监控电脑硬件温度和电压的工具。
它可以读取各种传感器,包括处理器、显卡、硬盘等,实时显示温度和电压数据。
此外,HWMonitor还可以提供电池状态信息和风扇转速等详细数据。
使用HWMonitor非常简单,只需下载并安装软件,然后运行即可。
数据库监控与性能分析工具介绍
数据库监控与性能分析工具介绍数据库是现代软件系统中的关键组成部分,它承载着大量的数据并提供对数据的存储、管理和查询功能。
为了保证数据库的高效运行和稳定性,监控和性能分析工具成为不可或缺的必备工具。
本文将介绍一些常用的数据库监控与性能分析工具,以帮助读者更好地了解和掌握这些工具的使用。
一、DbVisualizerDbVisualizer是一款功能强大的数据库工具,支持多种数据库管理系统(DBMS),包括Oracle、MySQL、Microsoft SQL Server等。
它提供了直观友好的用户界面,使用户能够方便地浏览和编辑数据库表、执行SQL查询、调试和优化SQL语句等。
除此之外,DbVisualizer还具备对数据库性能进行监控的功能,它可以实时监测数据库的运行状态、查询性能和资源利用情况,并生成详细的性能分析报告,帮助管理员及时发现和解决潜在的性能问题。
二、SQL MonitorSQL Monitor是一款专注于SQL Server数据库性能监控的工具,它能够实时监测数据库服务器的运行情况,并自动捕获和分析执行的SQL语句。
SQL Monitor提供了丰富的性能指标和图表,可以清晰地展示数据库的负载、资源消耗、响应时间等关键性能数据,帮助管理员及时发现和解决数据库性能瓶颈。
此外,SQL Monitor还支持远程监控和告警功能,管理员可以通过电子邮件或短信及时获得数据库运行异常的通知,以便及时采取措施进行修复。
三、Toad for OracleToad for Oracle是一款专业的Oracle数据库管理工具,被广泛用于开发、管理和调优Oracle数据库。
除了提供数据库管理功能外,Toad for Oracle还具备丰富的性能分析和优化功能。
它可以自动收集和分析大量的性能指标,例如CPU利用率、内存消耗、磁盘IO等,生成直观的图表和报告,帮助管理员快速定位和解决数据库性能问题。
此外,Toad for Oracle还支持SQL优化功能,它可以自动重写和优化SQL语句,提高数据库的执行效率。
- 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。
执行ADDM建议的步骤:
1.在数据库主页的诊断摘要下,点击ADDM调查结果后的连接,显示自动数据库诊断监视器(ADDM)页面。
2.在ADDM性能分析部分,点击影响最严重的ADDM调查结果。
在这个例子中,最严重的调查结果是消耗数据库时间最多的SQL(Top SQL by DB Time),显示性能调查结果详细页面。
5.为了显示调查结果的历史记录,点击调查结果历史(Finding History),显示调查结果历史页面。
在这个例子中,显示了从前一个快照(快照161)到所选择的快照(快照162)收集的统计信息。
4.如果想查看统计信息的工作量仓库报告,点击报告(Report),显示工作量仓库报告页面。
5.例外,点击保存到文件可以将报告保存下列,以便以后访问。