通过shell脚本监控oracle session

简介: 最近数据库碰到了连接紧张的问题,想通过一个脚本对数据库的session情况一目了然。 以下是自己写的脚本。实现的效果如下。 对session的总体情况,那些program主要在占用,每个用户所拥有的session(active,inactive,killed,sniped...)都能够一目了然。
最近数据库碰到了连接紧张的问题,想通过一个脚本对数据库的session情况一目了然。
以下是自己写的脚本。实现的效果如下。
对session的总体情况,那些program主要在占用,每个用户所拥有的session(active,inactive,killed,sniped...)都能够一目了然。

STATUS          CNT
-------- ----------
KILLED          553
SNIPED         2028
ACTIVE           44
INACTIVE       6097
         ----------
sum              8722
.


PROGRAM                                    CNT STATUS
----------------------------------- ---------- --------
JDBC Thin Client                                  2316 INACTIVE
program1@machine01 (TNS V1-V3)         659 INACTIVE
program2@machine02 (TNS V1-V3)         572 INACTIVE
program4@machine01 (TNS V1-V3)         462 SNIPED
program3@machine01 (TNS V1-V3)         449 INACTIVE
program4@machine02 (TNS V1-V3)         391 INACTIVE
program1@machine01 (TNS V1-V3)         349 SNIPED
JDBC Thin Client                                   342 SNIPED
program2@machine01 (TNS V1-V3)           268 INACTIVE
                                    ----------
sum                                                       5808
.


USERNAME             TOTAL_CNT     ACTIVE   INACTIVE     KILLED     SNIPED program1  program2  program3
--------------- ---------- ---------- ---------- ---------- ---------- ---------------- -------------- -----------
TESTUSER46               428          0            174        253          1              114            181          32
TESTUSER5                424          0            309          0        115              137            188          35
TESTUSER2                422          0              8        300        114              143            172          35
TESTUSER29               414          1            226          0        187              165            102          47
TESTUSER6                399          0            268          0        131               82            196          35
TESTUSER9                394          0            281          0        113              131            162          35
TESTUSER7                358          0            232          0        126               67            192          36
TESTUSER23               345          0            212          0        133               52            178          35
TESTUSER21               338          0            229          0        109               79            161          35
TESTUSER25               330          0            216          0        114               66            156          34
TSTAPP1                    313          0            195          0        118               31            182           3
TESTUSER30               299          0            298          0          1              110             92          32
TESTUSER22               297          0            286          0         11              106            112          32
TSTAPP12                   287          0            164          0        123               66            126          35
TESTUSER31               287          0            286          0          1              107            104          32
TESTUSER42               265          0            262          0          3               68            125          32
TESTUSER11               254          0            250          0          4               52            105          32
TESTUSER52               247          0            158          0         89                4            170          33
TSTAPP16                   241          0            232          0          9               54            110          32
TSTAPP8                    220          0            220          0          0               47            102          32
TSTAPP2                    220          0            215          0          5               74             93          32
TESTUSER32               149          0            149          0          0                2             76          32
TESTUSER51               134          0             18          0        116               30             77           1
TESTUSER3                104          0             17          0         87               34             50           3
TESTUSER45                95          0              0          0         95               12             65           0
TESTUSER44                69          0             21          0         48               22             31           3



附上脚本内容:

sqlplus -s $DB_CONN_STR@$SH_DB_SID set feed off
set verify off
set line 132
set pages 200


col username format a15
col sql_id format a20
col sql_address format a20
col machine format a30
col osuser format a15
col logon_time format a10
col program format a35
break on report
compute sum of  cnt  on report
select status,count(*) cnt from v\$session group by status;
prompt .


select program,cnt,status from (select program,count(*) cnt,status from v\$session group by program,status order by cnt desc) where rownum

prompt .
  select username,
      sum(cnt) total_cnt,
      sum(decode(status,'ACTIVE', cnt,0)) ACTIVE,
      sum(decode(status,'INACTIVE', cnt,0)) INACTIVE,
      sum(decode(status,'KILLED', cnt,0)) KILLED,
      sum(decode(status,'SNIPED', cnt,0)) SNIPED,
     $issue_program1 "JDBC Thin Client",
     $issue_program2  "program1",
     $issue_program3  "program2"
     from (select program,username,status,count(*) cnt from V\$SESSION   group by program,username,status  ) 
    group by username having sum(cnt)>50 order by total_cnt desc;


EOF
exit


目录
相关文章
|
1月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
75 1
|
20天前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
44 2
6种方法打造出色的Shell脚本
|
6天前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
19 1
|
11天前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
31 2
|
25天前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
43 6
|
21天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
1月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
66 12
|
1月前
|
存储 运维 监控
自动化运维:使用Shell脚本简化日常任务
【9月更文挑战第35天】在IT运维的日常工作中,重复性的任务往往消耗大量的时间。本文将介绍如何通过编写简单的Shell脚本来自动化这些日常任务,从而提升效率。我们将一起探索Shell脚本的基础语法,并通过实际案例展示如何应用这些知识来创建有用的自动化工具。无论你是新手还是有一定经验的运维人员,这篇文章都会为你提供新的视角和技巧,让你的工作更加轻松。
53 2
|
1月前
|
存储 Shell Linux
【Linux】shell基础,shell脚本
Shell脚本是Linux系统管理和自动化任务的重要工具,掌握其基础及进阶用法能显著提升工作效率。从简单的命令序列到复杂的逻辑控制和功能封装,Shell脚本展现了强大的灵活性和实用性。不断实践和探索,将使您更加熟练地运用Shell脚本解决各种实际问题
25 0
|
1月前
|
Oracle 关系型数据库 MySQL
shell获取多个oracle库mysql库所有的表
请注意,此脚本假设你有足够的权限访问所有提到的数据库。在实际部署前,请确保对脚本中的数据库凭据、主机名和端口进行适当的修改和验证。此外,处理数据库操作时,务必谨慎操作,避免因错误的脚本执行造成数据损坏或服务中断。
40 0

推荐镜像

更多