oratop工具--实时数据库性能监控工具

0    234    1

Tags:

👉 本文共约23335个字,系统预计阅读时间或需88分钟。

简介

oratop是Oracle提供的一款轻量级实时监控工具,oratop的最大特点是支持实时轻量级监控。在Oracle 12c的EM Express之前,OEM还是一个重体积的组件。相比之下,oratop完全适合那些想使用数据库实时监控功能,但是又不愿意启动OEM的用户需要。从功能上看,oratop主要的特点有:监控当前的数据库活动;监控数据库性能;识别当前阻塞会话和瓶颈会话。oratop是一个典型的“绿色”软件,不需要安装,只需要给一个运行目录即可。需要注意的是,oratop需要以oracle用户运行,且需要配置环境变量,主要是配置LD_LIBRARY_PATH路径。oratop的运行命令如下所示:

参数-i表示数据刷新间隔,也就是多长实际更新一下页面数据信息。“/ as sysdba”表示登录本机连接,也可以远程使用oratop连接到其它服务器上去。运行命令后,等待一会就会出现字符界面显示:

从字符界面上看,oratop结果集合分为四个部分,分别为:Header Section、Database Section、DB Events Section和Processes Section。

① 在Header Section中,包括了连接数据库的总体信息,包括运行多长时间、实例个数(RAC)、内存大小和数据库占据CPU时间的比例。

② 在Database Section中,包括了各个实例(RAC)下,每个实例的基本参数和复杂信息。如每个实例活动会话个数、每秒的事务数量和内存使用情况等。

③ 在DB Events Section是从Wait Event角度进行评估。评估排在头几位的等待事件信息,默认情况下,这个度量是累计的,也就是从启动数据库到当前时间,可以切换到当前时间模式下。

④ 在Processes Section是记录下处在Block和Contention状态的连接会话信息。当数据库出现有会话被阻塞的情况,就会记录在这个Section里面。

MOS文档“oratop - Utility for Near Real-time Monitoring of Databases, RAC and Single Instance (文档 ID 1500864.1)”对oratop有详细的说明。

在任何系统优化过程中,“80/20原则”是我们一定要关注的问题。简单的说,就是我们系统80%的性能问题、现象,都是有少数几个甚至一个问题造成的。这就需要我们面对复杂的系统性能问题的时候,要学会“拨开云雾、蛇打七寸”。

落实在Oracle优化过程,同样如此。从10g开始,我们开始频繁接受“Top-xxx”的概念,无论是从OEM(Oracle Enterprise Manager)还是借助AWR事后报告库,解决主要矛盾,发掘主要Top Events就成了我们日常工作不可缺少的部分。

实际工作中,对Top的发掘和Oracle动态信息的收集,很多时候还是有点力不从心和滞后之感强烈。Oracle官方的客户服务网站MOS,经常有一些有用的小工具,提供给我们使用。本篇中,我们主要来介绍下Oratop工具的特点和使用。

Oratop源自MOS的一篇文章和工具链接(oratop - utility for near real-time monitoring of databases, RAC and Single Instance [ID 1500864.1])。从名称上看,Oratop最大特点是支持实时轻量级监控。在Oracle 12c的EM Express之前,OEM还是一个重体积的组件。相比之下,oratop完全适合那些想使用数据库实时监控功能,但是又不愿意启动OEM的用户需要。

从功能上看,Oratop主要有三大特点:

ü 监控当前的数据库活动;

ü 监控数据库性能;

ü 识别当前阻塞会话和瓶颈会话;

目前,Oratop是在MOS上免费下载,分别有32位和64位两个版本。

安装

从网站上下载软件之后,是一个命名为oratop.v13.2.1_X8664的可执行程序,注意要区分32位版和64位版。

首先,判断适合的Linux版本,并且创建程序目录。Oratop是一个典型的“绿色”软件,不需要安装,只需要给一个运行目录即可。

--64位操作系统

[root@localhost ~]# uname -a

Linux localhost.localdomain 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux

[root@localhost ~]# mkdir /oratop

[root@localhost ~]# cd /oratop

[root@localhost /]# cd oratop/

[root@localhost oratop]# ls -l

total 0

[root@localhost oratop]#

进行目录的权限转换和程序拷贝。为了方便执行,我们最好还要进行一下重命名工作。

[root@localhost /]# chown -R oracle:oinstall /oratop

[root@localhost /]# su - oracle

[oracle@localhost ~]$ cd /oratop/

[oracle@localhost oratop]$ ls -l

total 92

-rw-r--r--. 1 oracle oinstall 93640 May 17 13:39 oratop.v13.2.1_X8664

[root@localhost oratop]# ls -l

total 92

-rw-r--r--. 1 root root 93640 May 17 13:39 oratop.v13.2.1_X8664

[oracle@localhost oratop]$ mv oratop.v13.2.1_X8664 oratop

[oracle@localhost oratop]$ ls -l

total 92

-rw-r--r--. 1 oracle oinstall 93640 May 17 13:39 oratop

注意:使用oratop在环境变量上需要一些额外的配置内容。主要是对于变量LD_LIBRARY_PATH的配置。我们一般都不会去配置这目录,但是oratop要求必须进行配置。

配置方法是修改根目录上的.bash_profile文件。

[oracle@localhost ~]$ vi .bash_profile

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export ORACLE_SID=isis2db

export PATH=$PATH:$ORACLE_HOME/bin

(篇幅原因,掠过部分内容……)

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

".bash_profile" 36L, 901C written

[oracle@localhost ~]$

[oracle@localhost ~]$ env | grep LIB

LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/dbhome_1/lib

运行

下面我们来试着执行以下命令。

[oracle@localhost oratop]$ ./oratop -i 10 / as sysdba

oratop: Release 13.2.1 Production on Fri May 17 13:43:34 2013

Copyright (c) 2011, Oracle. All rights reserved.

Processing ...(等待片刻……)

参数-i表示数据刷新间隔,也就是多长实际更新一下页面数据信息。/ as sysdba表示登录本机连接。注意,这也就意味着我们可以远程使用oratop连接到其他服务器上面去。更进一步说,通过远程连接的方法,可以连接到任何版本操作系统上的Oracle服务器的。

出现字符界面显示。

oratop 1: 131 isis 13:44:24 up 0.0h, 1 ins, 3G mt, 41 sn, 3 us, 0% db

ID %CU HLD MBPS IORL %FR PGAU ASC ASI ASW ASP AAS USN TPS UCPS SSRT DBC DBW

1 12 0 71 0m 18 161M 1 0 0 0 0.1 41 0 24 3m 94 6

EVENT (Cumulative) AVG: TOT WAITS TIME(s) AVG_MS PCT WAIT_CLASS

DB CPU 112868 75

SQL*Net message from dblink 16794060 14852 0.9 10 Network

SQL*Net more data from clien 193150 8260 42.8 5 Network

log file parallel write 1025524 7308 7.1 5 System I/O

enq: TX - row lock contentio 1289 7248 5622.9 5 Application

ID SID SPID USR PROG PGA OPN SQLID/BLOCKER E/T STATUS STE WAIT_EVENT W/T

解释

从字符界面上看,oratop结果集合分为四个部分,分别为:Header Section、Database Section、DB Events Section和Processes Section。

oratop工具--实时数据库性能监控工具

Header Section中,包括了连接数据库的总体信息,包括运行多长时间、实例个数(for RAC)、内存大小和数据库占据CPU时间的比例。

Database Section中,包括了各个实例(for RAC)下,每个实例的基本参数和复杂信息。如每个实例活动会话个数、每秒的事务数量和内存使用情况等。

DB Events Section是从Wait Event角度进行评估。评估排在头几位的等待事件信息,默认情况下,这个度量是累计的,也就是从启动数据库到当前时间。我们可以切换到当前时间模式下。

Processes Section是记录下处在Block和Contention状态的连接会话信息。当数据库出现有会话被阻塞的情况,就会记录在这个Section里面。

丰富的帮助系统

Oratop结果显示中,大量使用的简写和缩写,这在一定程度上阻碍我们阅读结果。为此,Oratop开发人员设计了完备功能的帮助体系。

在使用-h参数,或者运行过程中按下键盘h,就可以切换到帮助界面。

使用h按键

oratop: Release 13.2.1

------------------------------------------------------------------------------

Dynamic Keys

​ d : Toggle Top 5 Wait Events between Real-Time and Cumulative

​ f : Toggle between short & long format (for header & Process sections)

​ i : Interval Delay time (requires value in seconds)

Nomenclature:

​ [M] : Signify 1 minute averaged value, else, Real Time

​ [F] : denote a Forground (FG) value, else, Background (BG)

------------------------------------------------------------------------------

Acronym Help Menu:

HEADER Section .. [1]

DATABASE Section .. [2]

DB EVENTS Section .. [3]

PROCESSES Section .. [4]

Quit Help .. (Q|q)

Enter selection Number:

动态按键(Dynamic Keys)实际上就是在运行过程中,可以动态实时点击,查看不同维度结果的案件。

笔者比较喜欢d按键,这样可以从累计Event信息到实时Event信息,把握最新的数据库等待时间状态。

(d) –使用了d动态按键

oratop 1: 376 NBST 14:31:22 up 5.1d, 1 ins, 2G mt, 135 sn, 7 us, 4% db

ID %CU HLD MBPS IORL %FR PGAU ASC ASI ASW ASP AAS USN TPS UCPS SSRT DBC DBW

1 2 0 0 0m 17 394M 1 0 0 0 0.0 135 4 71 297u 85 15

EVENT (Real-Time) AVG: TOT WAITS TIME(s) AVG_MS PCT WAIT_CLASS

DB CPU 1867 100

ID SID SPID USR PROG PGA OPN SQLID/BLOCKER E/T STATUS STE WAIT_EVENT W/T

另一部分帮助就是显示对四个section的解释,解释的非常详细,值得读者学习。篇幅原因,这里只显示一份结果。

Section 1- HEADER (Global information)

"oratop" : program name

​ : instance_id to which oratop is connected to

​ : oratop's SID

: DB_UNIQUE_NAME

[M]: Time of most recent stats (hh24:mi:ss)

​ : Database Uptime

​ : Total number of instance(s)

​ : Total DB memory cluster wide (SGA+PGA)

[F]: User sessions (idle & active)

[F]: Number of distinct users (idle & active)

<%db> : %database busy, 0% indicate idle db

复杂应用

Oratop的本质和优势在于轻量型和实时。一个很小的程序,可以在自身消耗较小的情况下发现问题。

Block and Contentio是Process Section部分重点问题。阻塞是数据库内部资源征用的一种结果,及时发现Blocking和Contention是非常重要的。

下面片段是笔者模拟的一个两个会话同时修改一行数据,之后一个会话被阻塞时,oratop监控到的情况。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
oratop工具--实时数据库性能监控工具后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部