Oracle AWR文件导出、分析,查看Alert文件_awr和alert-程序员宅基地

技术标签: oracle  数据库  

Oracle Awr报告

一.AWR的概念#

  Oracle数据库是一个使用量很多的数据库,关于Oracle数据库的性能。Oracle10g以后,Oracle提供了一个性能检测的工具:AWR(Automatic Workload Repository 自动工作负载库)这个工具可以自动采集Oracle运行中的负载信息,并生成与性能相关的统计数据。我们可以根据这些统计数据来分析一些潜在的问题。

二.AWR的原理#

  Oracle启动后,后台会有个进程去每小时采集一次系统的快照信息,信息采集来源为: V$active_Session_History视图。该视图可以展示最近活动会话的历史记录。并将采集到的信息保存8天。(查询SQL:select * from dba_hist_wr_control;)采样频率和保存时间可配置。

  快照由MMON和MMNL的进程自动地每隔固定时间采集一次。MMON进程负责执行多种和管理相关的后台任务,MMNL负责执行轻量级切高频率的管理相关的后台任务。

三.导出awr报告#

  oracle 可以将8天的awr快照数据进行储存,我们可以将oracle中的任何两个时间点(输入日期后,会返回相应的时段内,快照对应的时间)生成该段时间内的awr报告。具体生成方式有多种,一般需要sys权限,如果读者有更好的方法,欢迎讨论。

  1.首先登陆sys用户下  sqlplus sys/Gkjzzfdb_2022 as sysdba; 

   然后,再新弹出的窗口中输入@?/rdbms/admin/awrrpt.sql

  

按照提示,输入导出脚本的类型(HTML还是text),输入HTML

  

  这里输入的是返回几天的快照,这里输入1天,表示返回一天的记录

  这里返回的是范围内的所有快照的信息。通过输入两个快照id生成两个快照点之间的报告信息。这里可以根据需要进行选择,比如说,四点的时候,系统出现了明显的卡顿,想要分析这个卡顿出现的原因,那么最好取三点到五点之间的日志,也就是对应的26和28 两个snapId的值。

  从上图可以看出,id为21和22之间服务器进行了重启,不能选择这样的快照区间,不然会抛出异常。

  这里,我们选择12点到18点之间的日志。

然后,输入返回awr对象的名称,建议写一些有代表意义的名称,便于以后查看。

 然后就是一通滚屏,最后可以看到输出成功的提示:

默认输出至 用户 文件夹下

导出的awr报告:

四.分析查看AWK报告#

查看数据库运行的总体情况:

从图中可以看出:

  1. 这是一个双节点的rac中的一个节点的AWR报告。
  2. 数据库版本为:11.1.0.7.0
  3. 平台为Windows X86 64
  4. 有8颗CPU共16个核心数
  5. 一小时内产生了两份快照
  6. 一小时内DB Time为174
  7. 所以,可以计算出这个快照周期内数据库负载为:174/(60*16)=18%。说明此时间段内数据库的负载是很低的。但是要注意一点,由于AWR报告展示的一段时间内的统计数据,如果快照跨度包括了大量的空闲时间,那么计算出来的CPU平均利用率也会偏低。
  8. 图中10点产生快照时候,数据库中有166个session;等到11点时数据库中有181个session

*查看负载分析表:*

建议重点关注以下数据项:

Redo size: *Redo size* *单位* *bytes**,**redo size**可以用来估量**update/insert/delete**的频率,大的**redo size**往往对**lgwr**写日志,和**arch**归档造成**I/O**压力。*

如何解决每秒钟产生大量redo****?

  • 增加redo log****的size
  • 增加redo log****组
  • 增加redo buffer

Logical reads、Block changes、Physical reads、Physical writes:,评估数据库的读/写繁忙程度,判断数据库的活动性质和规模。

逻辑读的单位是块,表中每秒读了50290.4块,那么大小就是50290.4*8K=393M;逻辑读影响全表扫描。

Parses、Hard parses:SQL软解析以及硬解析的次数,评估SQL是否需要优化。

Executes、Transactions:每秒/每事务SQL执行次数、每秒事务数.每秒产生的事务数,反映数据库任务繁重与否。

Recursive Call:递归调用占所有操作的比率.递归调用的百分比,如果有很多PL/SQL,那么这个值就会比较高。

Rollback:每秒回滚率及每事物回滚率,因为回滚很耗资源,如果回滚率过高,可能说明你的数据库经历了太多的无效操作 ,过多的回滚可能还会带来Undo Block的竞争。

*查看实例效率分析报表*

Instance Efficiency Percentages报表显示了Oracle关键指标的内存命中率及其它数据库实例操作的效率:

Buffer Nowait %:在内存获得数据的未等待比例。这个值一般需要大于99%,否则可能存在争用。

Buffer Hit %:数据块在数据缓冲区中的命中率,通常应在95%以上。否则需要调整重要的参数,或者要加大db_cache_size。

Library Hit %:SQL在共享区的命中率,通常应该在95%以上。

Soft Parse %:软解析的百分比,通常应该在95%以上。,

Execute to Parse %:语句执行与分析的比例,反映SQL的重用率。

*查看共享池统计报表*

*Shared Pool Statistics*

Memory Usage %:共享池内存使用率,正常应在75%~90%之间,过低说明有浪费,过高则说明有争用。

% SQL with executions>1:执行次数大于1的SQL的比例。

% Memory for SQL w/exec>1:执行次数大于1的SQL消耗内存的占比。

*查看系统Top10等待*

*一个性能良好的系统,DB CPU项应该排在前5之内*

*查看SQL统计信息*

建议重点关注以下:

SQL ordered by Elapsed Time:记录了执行总时间最长的Top SQL,其中Elapsed Time = CPU Time + Wait Time

SQL ordered by CPU Time:记录了占CPU时间最长的Top SQL

SQL ordered by User I/O Wait Time:记录了执行过程中等待IO时间最长的Top SQL

SQL ordered by Gets:记录了执行最多逻辑读(逻辑IO)的Top SQL

SQL ordered by Reads:记录了执行最多物理读(物理IO)的Top SQL

SQL ordered by Executions:记录了执行次数最多的Top SQL,即使单条SQL****运行速度飞快,任何被执行几百万次的操作都将耗用大量的时间。

SQL ordered by Parse Calls****:记录了软解析次数最多的Top SQL

*查看Undo资源信息*

Undo Statistics部分记录了回滚相关的信息:

*查看行锁等待信息*

Segments by Row Lock Waits表展示了行锁等待信息:

当一个进程在正被其它进程锁住的数据行上获得排它锁时会发生等待,这种等待经常是由在一个有主键索引的表上做大量INSERT操作时引起。

 select * from v$diag_info;
  VALUE
--------------------------------------------------------------------------------

	1 Diag Trace
	/u01/app/oracle/diag/rdbms/orcl/orcl/trace

	1 Diag Alert    #数据库文件目录
	/u01/app/oracle/diag/rdbms/orcl/orcl/alert
进入数据库alert 及trace目录,备份及清理

	cd 进去

	alert 下是log.xml 文件

如果觉得改文章有用,或者需要长期持久学习,请加入我的星球吧~~~~ 扫描二维码即可加入。

这个时代,信息价值比以往任何时候更有价值,一年50元,你将得到每周不少于两次技术分享,各种答疑,梳理各种测试、以及测试周边技能的学习路线,持续更新各种软件开发、软件测试测试资料!!

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/kft1314/article/details/130711110

智能推荐

SQuirreL SQL Client 使用记录-程序员宅基地

文章浏览阅读76次。如果您的工作要求您在一天之中连接许多不同的数据库 (oracle、DB2、mysql、postgresql、Sql Server等等),或者你经常需要在多个不同种类的数据库之间进行数导入导出。那么SQuirreL SQL Client 将会是比较理想的数据库客户端链接工具。简单介绍: SQuirrel SQL Client是一个用Java写的数据库客户端,用JDBC统一数..._squirrel运行日志

【每日算法Day 99】你们可能不知道只用20万赢到578万是什么概念-程序员宅基地

文章浏览阅读1.3k次。你们可能不知道只用 20 万赢到 578 万是什么概念。 我们一般只会用两个字来形容这种人:赌怪! 我经常说一句话,当年陈刀仔他能用 20 块赢到 3700 万,我 LBW 用 20 万赢到 500 万不是问题。 埋伏他一手,这个牌不能抢,这个牌不用抢,他死定了。 反手给一个超级加倍,闷声发大财。他也超级加倍?但是不用怕,他的牌赢不了我。 五六七八九十,两个炸,很牛逼这个牌,如果把..._你们可能不知道只用20万赢到578万是什么概念

使用 LINQPad 将linq转换为 lambda表达式 或者 SQL语句_net lambda表达式转sql语句类库-程序员宅基地

文章浏览阅读3.4k次。一、LINQPad有多用途分析功能,即显示结果的多种选择 1、默认结果视图由语句返回的对象和文本的简单图形 2、Lambda视图LINQ表达式转换为可用的Lambda表达式 3、SQL视图LINQ表达式转换为可用的SQL 4、IL视图针对代码生成的微软中间语言 二、LINQPad 执行linq后的界面如图_net lambda表达式转sql语句类库

Swustoj题目征集计划-程序员宅基地

文章浏览阅读85次。SWUST OJ题目征集计划鉴于SWUST OJ长时间没有新题添加,题目数量和类型有限,同时也为加强同学们之间的算法交流,享受互相出题AC的乐趣,提高算法水平,现在启动题目征集计划啦~当你遇到或想到一道好的题目时,是否很想和他人分享?如果你有好的题目,赶快投递过来吧,让大家一起嗨嗨嗨起来!!!以下是详细说明:一、关于题目题目部分,出题人需要提供以..._建立长度为n的单链表,n>0,然后将其数据元素逆置

Redis——Linux下安装以及命令操作_redis add命令-程序员宅基地

文章浏览阅读553次。Redis(Remote Dictionary Server ),即远程字典服务是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。是一款高性能的NOSQL系列的非关系型数据库_redis add命令

MSP430用按键中断控制定时器产生持续 1s 的周期信号_msp430g2553设置一个1秒的定时器-程序员宅基地

文章浏览阅读5.1k次。//////////////////////////////////////////////////////////////////////////////////////////////////////// 2012 年吉林省大学生电子设计大赛 C题> ----(声源部分)// 要求: 有信号产生电路, 放大电路, 声音频率 800Hz 左右, 按一次键响声持续 1 秒.//_msp430g2553设置一个1秒的定时器

随便推点

windows获取CPU温度_c++如何监控cpu温度-程序员宅基地

文章浏览阅读5.6k次,点赞2次,收藏16次。CPU温度,电脑温度,windows硬件温度_c++如何监控cpu温度

「进击 Redis」二十六、你竟然还不知道 hash slot-程序员宅基地

文章浏览阅读242次。前言Redis 系列第二十七篇,也是Cluster 集群模式第二篇。 上篇我们已经通过画图与对比的方式将Cluster 虚拟槽寻址思路、取余hash和一致性hash寻址的原理弄清楚了,还有不熟悉的好哥哥可以看你竟然还不知道 hash slot 这篇了解一下。这一篇的话主要是对Cluster 集群的搭建与使用,上一篇又说到分成两篇的,想想篇幅还是不要那么长,于是乎就有了一篇。这一篇的话基本上都是一些实践性的内容,好哥哥们还是一样不要偷懒哦。有杠精好哥哥会说了,怎么哨兵模式的搭建你怎么不弄?有这么杠的好哥哥_hash slot

AI绘画Midjourney的咒语关键词汇总结_ai咒语词典-程序员宅基地

文章浏览阅读7.6k次,点赞6次,收藏37次。一个爱冒险的8岁可爱男孩,他喜欢探索和了解世界,在森林里,皮克斯动画风格,C4D,OC渲染器半身像镜头,黏土雕塑材质,电影照明,高质量,多细节,高清。_ai咒语词典

Listview使用-程序员宅基地

文章浏览阅读63次。ListView控件比前面几种控件要复杂一些,通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。ListView控件是由ColumnHeader和ListItem对象所组成的,其中ColumnHeader对象的个数决定了控件的列数,而ListItem对象的个数则决定了控件的行数。(图7)  ColumnHeader对象是ListView控件中包含标头文字的项目。利用Colum..._tooltip1和listview中columnheader使用

远程管理服务器的时候反应特别慢_远程资源管理器速度慢-程序员宅基地

文章浏览阅读3.3k次。问题:远程管理服务器的时候反应特别慢,在命令行敲命令的时候很长时间才在终端显示出来怀疑原因:1、查看远程服务器CPU负载情况、内存使用情况、磁盘IO等系统资源使用情况,可以使用sar、uptime、top、iostat、vmstat等2、查看网络是否稳定,使用 ping 查看是否丢包严重..._远程资源管理器速度慢

C语言实现三次样条插值_typedef struct tagpoint // 插值点的结构体成员有x, y { double-程序员宅基地

文章浏览阅读2k次,点赞2次,收藏13次。#include <stdio.h># define MAX_N 20 // 定义(x_i,y_i)的最大的维数 typedef struct tagPOINT // 点的结构 { double x; double y;} POINT; int main ( ) { int n; int i, k; POINT points[MAX_N + 1]; double h[MAX_N + 1], b[MAX_N + 1], c[_typedef struct tagpoint // 插值点的结构体成员有x, y { double x; double y; }

推荐文章

热门文章

相关标签