性能优化工具(1) EM管理

转:http://askdb.blog.163.com/blog/static/21568316320131651711802

 

性能优化工具,这里主要讲几个EM管理,性能视图,statspack,awr这些,在性能优化工具中会逐步的介绍

工具是为我们管理数据库服务的我们还得了解数据库的方方面面理解各种报表里的术语和参数 
这样,用工具才能得心应手

1.1Database Control(EM)

oracle的web页面管理的工具主要有两个

一个是dc一个是gc

dc,单实例管理

gc,grid control,多实例,主机,中间件..这些的集中管理

gc,是在ocm考试中的一个重要环节 ,有好多人在考试过程中,gc建不起来导致考试失败

1.1.1利用EM管理性能

重点以DC为例,来学习一下

em可以管理主机和实例

DATABASE CONTROL 通过提供主机和实例的详细统计信息,可以将二者的瓶颈关联起来

em可提供有关三个主要优化区域的信息:

1)CPU 和等待类

2)影响Oracle 实例的顶级SQL 语句

3)影响Oracle 实例的顶级会话

对于这些,EM 都通过从活动会话历史记录(ASH) 中提取统计信息来提供当前数据,或通过从自动工作量资料档案库(AWR) 中提取统计信息来提供历史记录数据

em的Performance(性能)"页使用与AWR 和ADDM 相同的数据源

以易于理解的方式来显示有关数据库和主机系统运行的信息,并允许快速地手动细化到问题源

1.1.1.1访问数据库主页

这里要知道,这里的端口号并不是一成不变的,第一次的可能是1158,第二次可能就是5500了

如果一个主机上有两个实例,那么得分不同的端口

数据库的某些端口可以在这个文件里找到:

more $ORACLE_HOME/install/portlist.ini

 

Enterprise Manager 数据库主页是监视和管理数据库的起点

使用数据库主页可执行下列操作:

1) 通过查看一系列度量来确定数据库的当前状态

2) 启动或停止数据库

3) 通过显示子区域每个页中的三个选项卡,访问数据库环境的性能、管理和维护内容

此为"Database Control(数据库控制)"主页可提供数据库实例健康状况的概览

在此页上,可查看上次运行自动数据库诊断监视程序(ADDM) 的查找结果

以上图为例 它提供有关以下各项的统计信息:

1).Host CPU(主机CPU):此类别会显示一个条形图,显示Oracle 数据库主机的相对CPU 利用率

条形图上,100% 代表主机系统提供的总CPU 利用率。条形图中出现两个值。底部较深的颜色与实例图例对应,代表此实例占用CPU 的程度。上部较浅的颜色与"Other(其它)"图例对应,代表所有其它进程

2) .Active Sessions(活动会话):条形图显示了实例使用CPU 和I/O 时占用的时间量,以及在瓶颈中占用的时间量

条形图旁边显示的数字是字面数字,代表活动会话数,而不是总会话数

条形图显示的是最新值,而不是历史值。三种会话类别始终是"CPU"、"User I/O(用户I/O)"和"Wait(等待)"。"Wait(等待)"类别代表除了"User I/O(用户I/O)"以外的所有组合的等待类的值

3) SQL Response Time(SQL 响应时间):此类别显示跟踪的SQL 集的当前响应与基线响应的对比。

如果基线时间与响应时间相等,则系统正常运行。响应时间可能会超过基线响应时间,这意味着一个或多个SQL 语句的执行速度低于正常速度。响应时间越短,SQL 语句执行的效率越高, 这里没有设置基线

4)Diagnostic Summary(诊断摘要):此类别显示违反策略的有关信息,以及最新的自动数据库诊断监视程序(ADDM) 结果。

ADDM Findings中的链接指向ADDM 页,该页提供性能分析表,包含需要引起注意的结果。ADDM 使用数据库活动快照对数据库活动执行从上至下的分析

5) Space Summary(空间摘要):使用此类别可以确定与存储有关的问题,并提供改进性能的建议

"Database Size (GB)(数据库大小(GB))"的数值源于"Tablespaces(表空间)"页底部的"Total Size (MB)(总大小(MB))"字段。

例如,如果此数字为99,000.0,则主页上"Database Size (GB)(数据库大小(GB))"的数值将为99

6) General(常规):此类别提供数据库状态的快速视图,并提供数据库的基本信息

状态可以是"Up(启动)"、"Down(关闭)"、"Under Blackout(封锁中)"、"Unmonitored(未监视)"或"Unknown(未知)"

从此区域可以访问其它页(如"Availability(可用性)"页、"Host(主机)"主页、"Listener(监听程序)"主页或ASM 主页),以了解详细信息

7) High Availability(高可用性):此类别显示Oracle10g 之前的数据库上次备份的时间、最近的备份时间以及Oracle 10g 数据库的备份是否成功

如果10g 数据库上次备份失败,则"Last Backup(上一次备份)"链接可显示备份结果。如果备份成功,则可追溯至"Manage Current Backups(管理当前备份)"页

单击任意链接将出现"Configure Recovery Settings(配置恢复设置)"页

"Instance Recovery Time(实例恢复时间)"与"Instance Recovery(实例恢复)"下的"Current Estimated Mean Time to Recover(当前估计的平均恢复时间)"相关,"Flashback Logging(闪回日志记录)"与"Flash Recovery Area(快速恢复区)"下的"Enable flashback logging(启用闪回日志记录)"相关。

8) Job Activity(作业活动):此类别显示Enterprise Manager 作业执行情况的报表,显示已计划、正在运行、已暂停和出现问题的执行过程。如果某个字段中出现非0 值,则可以单击该数值转到"Job Activity(作业活动)"页;可在该页中查看所有已计划、当前正在运行和过去的作业的有关信息。

该页底部的"Alerts(预警)"表可显示所有打开的预警。若要了解某个预警的详细信息,只需单击相应的消息

1.1.1.2打开性能页面

"Database Performance(数据库性能)"页由显示主机信息、用户活动和吞吐量信息的三个部分组成

有了此信息,可以在分析数据库之前,先验证该计算机是否具有足够的可用CPU 和内存资源

然后可以通过"Average Active Sessions(平均活动会话)"图评估数据库健康状况

该图显示用户消耗的CPU 量,以及是否有用户正在等待资源而不是在CPU 上运行

此图说明实例花费的最重要的等待时间类。基本上,等待事件被分在不同的类中

可以单击对应于特定等待类的最重要区域

在此示例中, "Concurrency(并发)"等待类自2:50 a.m 开始在此实例上变得很突出

此图还显示获取快照的频率。"Maximum CPU(最大CPU)"线是一个重要的参考点

当绿色的"CPU Used(使用的CPU)"值达到"Maximum CPU(最大CPU)"线时,数据库实例将使用主机计算机的100% CPU 来运行

"CPU Used(使用的CPU)"以外的所有值均表示正在等待的用户和资源争用。在此例中,最大的争用区域之一是"Concurrency(并发)"。单击此图中的彩色区域或图例可以进行细化以获得更详细的信息

单击与发现问题的时间最相近的相应快照。这会转至相应的ADDM 分析页。此外,也可以通过单击"Run ADDM Now(立即运行ADDM)"即时创建一个快照并运行ADDM

对于持续时间通常少于15 分钟的临时性能问题,也可以单击"Run ASH Report(运行ASH 报表)"按不同的维分析活动

可以通过"Host Performance(主机性能)"页查看由Oracle Enterprise Manger 捕获的OS 统计信息

也可以从"Database Control(数据库控制)"主页访问此页,方法是单击"General(常规信息)"部分中的"Host(主机)"链接。在"Host(主机)"主页中,单击"Performance(性能)"选项卡

单击CPU 负载值细化链接会直接转至"Performance(性能)"页。默认情况下,"Performance(性能)"页显示性能概要报表,可在该报表中查看CPU 使用率、内存使用率和I/O 使用率的度量值

这些度量对应于OS 工具收集到的关键度量。在每个使用率部分中,可以进行细化以查看在最后24 小时内收集到的使用率统计信息

"Performance(性能)"页的"Processes(进程)"部分列出了前10 个进程,可以查看按CPU 使用率或内存使用率排序的列表。在"Performance(性能)"页的每个图表下,可以细化到有关相应度量的更多详细资料

有兴趣的话,也学着用spotlight来监控oracle的性能

下图就是spotlight的页面,也是非常的漂亮,实用性也很好

这些页可提供有关相应等待问题的更多详细资料

上图中,上半部分提供有关"Concurrency(并发)"类的等待事件的详细资料

"Concurrency(并发)"类中的"Cache buffer chains(高速缓存缓冲区链)"等待是最重要的等待

如果单击"latch: cache buffer chains(闩锁:高速缓存缓冲区链)"链接,则会显示该等待事件的直方图

可以沿着时间线移动滑块框返回到过去。设置时间窗口后,"Detail(详细资料)"部分会自动进行更新以反映相应的时段

"Top SQL(顶级SQL)"部分显示等待所选类的等待的相应顶级SQL 语句。此部分显示所发现的在取样间隔期间等待时间最长的SQL 语句

原则是如果有一条语句占用了大部分等待时间,则应对其进行调查。此处便是这种情况,因此应对此语句进行细化

默认情况下,会显示"Top Sessions(顶级会话)"部分,但也可以查看"Top Services(顶级服务)"、"Top Modules(顶级模块)"和"Top Actions(顶级操作)"

上图中的"Top Sessions(顶级会话)"部分显示所发现的在间隔期间等待时间最长的会话。

在此例中,非常有效地缓解了等待时间,但如果有一个会话即将变得很突出,则应查看其更多详细资料

这些图形依据的基本原则是显示聚集在不同维上的相同信息。单击"SQL ID"链接或"Session ID(会话ID)"链接可以查看有关出现问题的SQL 语句或会话的更多详细资料

轻点鼠标就OK

1.1.1.3 SQL详细资料

有些人总是说,能用SQL语句监控的话,能显示出一个人的实力,但是,如果有更简单、更直观的工具来用,为什么不去用它呢?

现在oracle的野心很大 ,它想做成一个什么都能监控的一个web工具

单击"Top SQL(顶级SQL)"部分中的SQL ID,可以访问"SQL Details(SQL 详细资料)"信息页

"Activity(活动)"标签页显示执行SQL 语句的用户,以及按每个用户列出的CPU 细分和等待事件,并针对所有用户累计这些项

使用"Statistics(统计信息)"选项卡可以执行下列操作:

1)查看SQL ID 的SQL 语句

2)查看实时或历史执行活动和统计信息

3)选择要查看的其它SQL ID

4)如果有多个计划可用于此SQL 语句,则可选择计划hash值

查看历史记录数据的几个不同类型的图表,只需要几次单击操作即可确定导致问题的SQL 语句 ,要了解如何纠正此问题,需要找到相应的ADDM 分析

通过单击此页顶部的"Database(数据库)"选项卡访问"Performance(性能)"页,可检索此分析

也可以通过从"View Data(查看数据)"下拉列表中选择"Historical(历史记录)",在此页上查看历史记录信息

在此模式中,"Statistics(统计信息)"标签页提供"Executions Per Hour(每小时执行次数)"、"Elapsed Time Per Execution(每次执行的用时)"、"Disk Reads Per Execution(每次执行的磁盘读取数)"和"Buffer Gets Per Execution(每次执行的缓冲区获取数)"之类的信息

1.1.1.4历史记录数据视图

"Historical(历史记录)"视图可以查看实时(少于一小时)和历史时间上下文的数据库会话活动的历史记录

此功能在很大程度上提高了诊断与特定数据库会话相关的问题的能力,因为它允许您及时返回和查看会话活动的历史记录

从"View Data(查看数据)"下拉列表中选择"Historical(历史记录)"后,会出现另一个包含"Historical Interval Selection(历史记录间隔选择)"图表的页

将灰色框拖到所需的24 小时间隔可以更新此页上的图表。历史记录视图提供下列监视链接:

1)时段SQL:最多显示选定24 小时时段内的810 条SQL 语句

可以更改时段、访问其中一条语句的"SQL Details(SQL 详细资料)"页、运行SQL 优化指导以启动一条或多条语句的纠正操作,或将选定的语句分组到一个SQL 优化集

2)实例活动:允许您查看有关度量组的特定数据的数据库活动,如游标、会话和事务处理 ,总之EM的功能还是蛮强大的

性能概要里提到了诊断挂起或速度非常慢的数据库,在EM里同样可以诊断挂起或速度非常慢的数据库

在数据库的执行速度很慢或实际上已挂起时,可使用此功能进行问题分析

系统支持使用优化的或小型系统级的调用代替SQL,直接从系统全局区(SGA) 中收集实时性能统计信息

在Oracle Enterprise Manger (EM) 中,这被称为内存访问模式

每个Oracle 实例都有一个SGA 收集器线程,EM 代理在开始监视数据库实例时会自动启动该线程

如果需要大量的细化信息,则必须使用SQL 进行检索。也可以通过EM 界面收集和查看主机信息,如CPU 数量和主机名

Oracle Enterprise Manager 的挂起分析功能是基于当前ORADEBUG 挂起分析实用程序构建起来的,用于提供图形化的用户界面

1.1.1.5内存访问模式

通过单击"Memory Access Mode(内存访问模式)"链接中的"Monitor(监视器)",可以从主页的"Related Links(相关链接)"部分访问内存访问模式图形页

链接指向内存访问视图模式中的"Performance(性能)"页

如上面所示,第一次必须启用内存访问模式,以后可以在需要时禁用它

如果希望返回SQL 访问视图模式,只需单击"Performance(性能)"页上的"Switch to SQL Access Modes(切换至SQL 访问模式)"按钮

使用内存访问模式,可以消除与分析和执行SQL 语句关联的计算,因此这种模式在严重的库高速缓存争用情况(这些争用情况会阻止使用SQL 监视实例)下非常可靠。对于速度很慢或已挂起的系统,应切换至内存访问模式

1.1.1.6使用挂起分析页

ORADEBUG 挂起分析实用程序由数据库提供,用来捕获即时系统等待图

它是OracleEnterprise Manger (EM) 的挂起分析图形化用户界面的构件。此功能存在于所有Oracle9i之后的数据库中,既可用于执行实例范围内的等待会话分析,又可用于执行群集范围内的等待会话分析

要分析已挂起的和速度很慢的系统,可以使用EM 中"Performance(性能)"页的"Additional Monitoring Links(其它监视链接)"部分中的"Hang Analysis(挂起分析)"页

也可以使用"Blocking Sessions(阻塞会话)"页显示当前阻塞其它会话的所有会话列表

把一些难用的语句全部图形化了

使用"Hang Analysis(挂起分析)"页可以执行下列操作:

1) 确定导致瓶颈的会话

2)检查阻塞会话或被阻塞会话的会话概要

此页可提供系统中等待会话的图形拓扑,其中被阻塞的会话显示在阻塞会话的下面

Oracle Enterprise Manager 将根据历史记录活动对情况进行评估,并确定已挂起或可能挂起的会话,而不仅仅只是即刻进入等待状态

要查看会话的概要信息,可单击拓扑中的会话ID。此时会显示"Session Summary(会话概要)"页,其中显示有关选定会话的常规信息

可以单击"Session Summary(会话概要)"页中的"View Session Details(查看会话详细资料)"来获得详细的会话信息,并确定终止会话是否是有利的。根据所判断的会话状态的严重程度,会话在拓扑中以绿色、黄色或红色显示

也可以根据所需的拓扑大小选择缩放因子百分比。如果有许多被阻塞的会话,则可以使用较小的因子以显示系统的所有等待信息

然后可以放大相关部分以读取拓扑或进一步细化单击"Zoom Factor(缩放因子)"微窗口中的某个区域可以将拓扑移至所需的查看位置

例如,如果单击窗口左侧,则拓扑会移到右侧,这样您就能完整地查看左侧的拓扑

1.1.2使用EM的一些问题

EM是一个与库相对独立的组件,但是使用的时候会有一些常见的问题

1.1.2.1 EM证书过期问题

具体表现在安装库的时候,约85%的时候出错,认真查看日志,就会发现是2010年年底后过期了

影响的版本可能有10.2.0.4和10.2.0.5 

需要打的补丁是p8350262 ,如p8350262_10204_Generic,具体补丁可以在Oracle Metalink 中搜索p8350262的相关文章及下载

1.1.2.2 多网卡,或Ip改变造成EM管理起不来

有两个解决方案

一是把网络配置文件,tnsnames.ora和listener.ora里的主机名不用ip,而直接用服务器主机名

二是在主机上增加一个环回网卡

1.1.2.3 重建EM

一般重建失败的原因主要是sysman用户有残留 ,所以一般先删除库里的sysman用户及相关

drop user sysman cascade;

drop role MGMT_USER;

drop user MGMT_VIEW cascade;

drop public synonym MGMT_TARGET_BLACKOUTS;

drop public synonym SETEMVIEWUSERCONTEXT;

 

然后用emca 来重建

当然,这里面有很多的命令,有兴趣可以查一下

一般个人比较喜欢用

emca -config dbcontrol db -repos recreate

 

…..

后面看完成,就好了需要等待会.

1.1.2.4 em按钮的乱码问题

访问ORACLE EM 页面,任何文字都显示正常,唯独就按扭显示乱码

问题原因:由于ORACLE中的JAVA字体配置文件有问题

在网上有很多解决办法

大致几个步骤

1.进入$ORACLE_HOME/jdk/jre/lib 执行:

cp font.properties.zh_CN.Redhat font.properties

2.进入$ORACLE_HOME/jre/1.4.2/lib 执行

cp font.properties.zh_CN.Redhat font.properties

3.去下一个字体文件:ttfonts-zh_CN-2.14-6.noarch.rpm

rpm -ivh ttfonts-zh_CN-2.14-6.noarch.rpm

4.清除缓存文件

cd $ORACLE_HOME/ oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/

rm -rf *.gif

5.重启EM即可

emctl stop dbconsole

emctl start dbconsole

当然,建议是使用E文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值