使用awr来分析session leak问题

awr是生产环境中排查问题的利器,但是有一些问题是awr定位不了的。不如session leak的问题,因为v$session中的数据是实时改变的,一来awr生成快照的频率也有限,二来如果session leak的问题发生,但是系统资源消耗不高,awr也不一定能够马上定位出问题所在。
对于session leak的问题,当发生问题的时候,等我们连到系统中的时候,可能问题又消失了。大体来说系统中的session变化基本都是有一定的变化规律的,在业务高峰期中,session会保持在哪个幅度,系统空闲期间,有哪些session,job是在后台运行,占用的session数也是有一定的规律的。
从问题排查的角度来看,awr是很难定位session leak问题的,但是我们可以利用awr得到一些有用的信息。得到了这些问题之后,我们就可以轻松的得到在某个时间段内的session大体变化情况。毕竟v$session中的信息是实时的。
我们想查看过去某个时间点的session情况,如果没有第三方的工具,通过数据库来查询是基本没有办法的。
我们可以从下面的报告中得到一些思路。

Snap Id Snap Time Sessions Cursors/Session
Begin Snap: 21032 27-Nov-14 12:40:41 3686 6.0
End Snap: 21033 27-Nov-14 12:50:41 3648 6.1
Elapsed:   10.01 (mins)    
DB Time:   368.84 (mins)    

在awr中还是包含一些session的信息的。如果要查看最近两天的session情况,一个一个生成awr基本就是体力活了而且效率很差。我们可以尝试通过awr的基表来直接得到一些想要的数据。
想要直接查看awr里面的数据还是需要下不小的功夫,毕竟从代码级别,oracle是不开放这些内容的。通过@?/rdbms/admin/awrextr.sql可以得到一些基本的信息。
导出的日志如下:
. . exported "SYS"."WRH$_SQL_PLAN"                       432.1 KB    1089 rows
. . exported "SYS"."WRH$_LATCH":"WRH$_LATCH_3645037571_0"  198.6 KB    3871 rows
. . exported "SYS"."WRH$_SYSMETRIC_HISTORY"              180.1 KB    3600 rows
. . exported "SYS"."WRH$_SQLSTAT":"WRH$_SQLSTA_3645037571_0"  174.3 KB     547 rows
. . exported "SYS"."WRH$_SQLTEXT"                        162.0 KB     202 rows
. . exported "SYS"."WRH$_SYSSTAT":"WRH$_SYSSTA_3645037571_0"  122.7 KB    4466 rows
. . exported "SYS"."WRH$_PARAMETER":"WRH$_PARAME_3645037571_0"  105.4 KB    2504 rows
. . exported "SYS"."WRH$_EVENT_HISTOGRAM":"WRH$_EVENT__3645037571_0"  81.14 KB    2486 rows
. . exported "SYS"."WRH$_SEG_STAT":"WRH$_SEG_ST_3645037571_0"  71.64 KB     421 rows
. . exported "SYS"."WRH$_SYSMETRIC_SUMMARY"              93.66 KB    1106 rows、
.....
我们可以根据awr报告来寻找对应的基表,毕竟这部分内容是不开放的,我们得根据表明来做一些基本判断。剩下的就靠运气了。
最后找到的符合要求的基表是WRH$_RESOURCE_LIMIT,里面会有很多的细节信息。
   SNAP_ID       DBID INSTANCE_NUMBER RESOURCE_NAME                  CURRENT_UTILIZATION MAX_UTILIZATION INITIAL_AL LIMIT_VALU
---------- ---------- --------------- ------------------------------ ------------------- --------------- ---------- ----------
     21032 3100077577               1 processes                                     3731            6813       9000       9000
     21032 3100077577               1 sessions                                      3712            6816      13560      13560
     21032 3100077577               1 enqueue_locks                                 3936            7081     154180     154180
     21032 3100077577               1 max_rollback_segments                          405             408      14916      65535
     21032 3100077577               1 parallel_max_servers                            62             182        180       3600
     21033 3100077577               1 processes                                     3679            6813       9000       9000
     21033 3100077577               1 sessions                                      3673            6816      13560      13560
     21033 3100077577               1 enqueue_locks                                 3861            7081     154180     154180
     21033 3100077577               1 max_rollback_segments                          405             408      14916      65535
     21033 3100077577               1 parallel_max_servers                            46             182        180       3600

session数和报告中还是有略微的差别。但是差别幅度很小。
让人意外的是,我们还可以查看到process,并行资源的情况。
如果需要得到一个session数的统计结果,这个问题就很有帮助。

时间: 2024-09-24 23:23:31

使用awr来分析session leak问题的相关文章

关于session leak的问题分析

在生产环境中,作为dba需要对系统的负载有一个很清晰的认识.能够在很快的时间内能够发现系统潜在的问题,并且及时定位问题,高效的响应和处理问题. 比如说对于生产环境的session leak问题,这个部分是awr都很难捕捉到的信息,如果问题比较隐蔽,连ash也很难定位. 比如说在早上9点的时候某个程序出现了session leak的问题,有些程序的处理不能及时的关闭连接,到时连接数急剧增加,但是因为这个过程中,那些连接到数据库session没有再处理数据,就变成了Inactivie了,这部分信息a

理论实践:循序渐进理解AWR细致入微分析性能报告

黄凯耀 (Kaya) ACOUG核心会员,高级技术专家 曾经工作于Oracle Real World Database Performance Group,一个隶属于Oracle公司总部数据库产品管理的核心团队.大学及研究生时期专注于Linux应用开发和Linux内核开发工作. 编辑手记:AWR是Oracle数据库中一个非常重要的诊断工具,通过度量而展现问题,每一个DBA都应当深入理解这其中的知识,本文通过讲解和分析,展示AWR分析的过程. 概述:本篇文章重点对 AWR 报告中的 DB Time

【深度长文】循序渐进解读Oracle AWR性能分析报告

作者介绍 韩锋,宜信技术研发中心数据库架构师.精通多种关系型数据库,曾任职于当当网.TOM在线等公司,曾任多家公司首席DBA.数据库架构师等职,多年一线数据库架构.设计.开发经验.著有<SQL优化最佳实践>一书.   Oracle中的AWR,全称为Automatic Workload Repository,自动负载信息库.它收集关于特定数据库的操作统计信息和其他统计信息,Oracle以固定的时间间隔(默认为1个小时)为其所有重要的统计信息和负载信息执行一次快照,并将快照存放入AWR中.这些信息

Oracle的awr报表分析数据库性能

早上群里喊数据库挂了,开始阶段服务登录不上,等登录系统后发现系统负载很高. 运行的oracle服务,今天就用oracle的awr作了一把分析,步骤如下: 一.登录数据库 [root@iZ233j4mpnbZ ~]# su - oracle [oracle@iZ233j4mpnbZ ~]$ sqlplus sys as sysdba   SQL*Plus: Release 11.2.0.1.0 Production on Tue Jun 21 14:36:31 2016   Copyright (

Oracle AWR报告详细分析 (文档 ID 1523048.1)

Oracle AWR报告详细分析  (文档 ID 1523048.1) AWR 是 Oracle  10g 版本 推出的新特性, 全称叫Automatic Workload Repository-自动负载信息库 AWR 是通过对比两次快照(snapshot)收集到的统计信息,来生成报表数据,生成的报表包括多个部分. WORKLOAD REPOSITORY report for  DB Name DB Id Instance Inst num Release RAC Host ICCI 13140

AWR 简介

原文转自:http://blog.csdn.net/tianlesoftware/article/details/4682300 一. AWR 说明             Oracle 10g之前对数据库做性能检测使用statspack工具. 关于statspack的说明,参考我的Blog:             statspack安装使用 和 report 分析             http://blog.csdn.net/tianlesoftware/archive/2009/10/

一次数据库宕机问题的分析

今天来到办公室,发现有一台服务器中的数据库实例停掉了.这种情况真是意料之外,尤其是我还不是很熟悉这台机器的服务. 赶紧查看数据库日志,可以看到数据库在昨晚停掉了,从日志来看没有人为的痕迹. 在宕机之前,有下面的日志.在此截取一部分.TNS-12560: TNS:protocol adapter error opiodr aborting process unknown ospid (33498) as a result of ORA-609     ns secondary err code:

Memory Leak(内存泄漏)问题总结(转)

最近听了一些关于Memory Leak(内存泄漏)的seminar,感觉有些收获,所以留个记录,并share给朋友. 1 什么是Memory Leak. Memory Leak是指由于错误或不完备的代码造成一些声明的对象实例长期占有内存空间,不能回收.Memory Leak会造成系统性能下降,或造成系统错误. 2 Memory存储模式 我们通常写的C++或Java Code在内存里边的存储状况概如下图. 简单的说,一般局部变量存储于Stack中,以提高运行问速度.而New出来的变量则将引用信息或

Tomcat的Session管理机制

Session和Cookie请求的过程 Http连接本身是无状态的,即前一次发起的连接跟后一次没有任何关系,是属于两次独立的连接请求, 但是互联网访问基本上都是需要有状态的,即服务器需要知道两次连接请求是不是同一个人访问的. JSESSIONID是一个唯一标识号,用来标识服务器端的Session,也用来标识客户端的Cookie,客户端和服务器端通过这个JSESSIONID来一一对应. 客户端第一次请求到服务器连接,这个连接是没有附带任何东西的,没有Cookie,没有JSESSIONID. 服务器