Heim > Datenbank > MySQL-Tutorial > Oracle会话和进程数的监控

Oracle会话和进程数的监控

WBOY
Freigeben: 2016-06-07 17:40:20
Original
1898 Leute haben es durchsucht

背景:先前在生产库上配置了oracle监控,每5分钟尝试连接一次数据库,若连接失败则通过nagios+fetion自动报警,此配置参考文章:http://ylw6006.blog.51cto.com/4

背景:先前在生产库上配置了oracle监控,每5分钟尝试连接一次数据库,香港虚拟主机,若连接失败则通过nagios+fetion自动报警,此配置参考文章:

早晨收到报警信息后,香港虚拟主机,登陆数据库执行ps -ef查看oracle的后台进程都在,使用conn /as sysdba的方式登陆数据库,提示连接到空闲的实例,使用easy connect 方式连接则报oracle实例无法分配内存,从报错提示上看,就像oracle数据库实例未打开的状态!分析alert日志不断出现如下错误信息:
Process J002 died, see its trace file
kkjcre1p: unable to spawn jobq slave process
Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_cjq0_18577.trc:

trace文件摘要信息如下:
*** 2012-07-26 10:20:31.068
Process J002 is dead (pid=13857 req_ver=1136 cur_ver=1136 state=KSOSP_SPAWNED).

*** 2012-07-26 10:20:32.069
Process J002 is dead (pid=13876 req_ver=1594 cur_ver=1594 state=KSOSP_SPAWNED).

google查询一番后,发现大部分描述和oracle的进程数设置有关,又或者是内存不足引起!于是在oracle 10g环境下测试,线上数据库环境为11.2.0.3

一:设置processes初始化参数值为20,香港服务器,重启数据库后,已经占用19个进程

新的会话连接,则报连接到空闲的实例,alert日志则出现相应的报错

refer: ?uid=854&do=blog&id=84

二:于是想到监控oracle的进程和会话数来进一步确定问题
1:首先要对用户进行显示授权,否则后面创建存储过程编译将会报错

2:建表,用来存储结果

  • Table created. 
  • 3:创建存储过程,将数据插入表

    4:创建任务

    5:测试效果

    6:如果要删除任务,则运行下列的命令,145代表user_jobs视图中的job列

    三:使用nagios+fetion,定时去监控会话和进程数
    1:创建监控脚本,该脚本放任务计划中运行,每2分钟自动执行

    EOF

    2:创建第二脚本,用来处理前面监控脚本的日志输出,将结果返回给监控服务器

    四:实际效果
    [root@server198 ~]# /usr/local/nagios/libexec/check_nrpe -H 192.168.1.240 -c check_oracle_session
    Current session is 138,process is 153

    五:后期观察结果,估计和内存问题相关
    [oracle@server240 ~]$ sar -r |grep 10:20
    10:20:02 AM   3481492  21195164     85.89    675584  13661448   3683012    413552     10.10     
    [oracle@server240 ~]$ sar -r |grep 04:40
    04:40:01 PM   2076748  22599908     91.58    734088  14581728   4048864     47700      1.16

    本文出自 “斩月” 博客,谢绝转载!

    Verwandte Etiketten:
    Quelle:php.cn
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage