ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 定势思维

定势思维

原创 Linux操作系统 作者:lsl031 时间:2011-08-31 09:01:07 0 删除 编辑

正开党会呢,突然用户打电话来说某应用的数据库怀疑有问题。

然后问用户数据库地址(我是b角),连进机器,查看alert日志,文件系统,均正常。
查看ckpt以及其他ora进程均存在。
但是尝试在操作系统端登陆

sqlplus /nolog
 conn / as sysdba
提示居然是连接到空闲的实例,这在原来的印象里面可是数据库不可用,或者ORACLE_SID设置不当的原因。
再次检查进程及对应的sid,再次export ORACLE_SID。
还是连接到空闲实例。


晕了,日志不报错,进程在,但是连不进数据库。没遇到过。还别说,直接shutdown  abort的心都有了。


没法子了,尝试从客户端登陆数据库吧,还好原来tnsname里面配了这个数据库的配置。
连接半天,总算给了个提示。超出最大连接数。

靠。

看来存在几个问题:ora9208对于超出连接数的提示不记录alert,我犯了思维定势的问题,认为alert没有,这个问题肯定不存在,结果由于一时的迷茫,耽误了几分钟。
另外,排查问题的方式还是应该包括ps -ef | grep ora | wc -l看看有多少会话。如果当时执行了这个,可能看到超过800的话,那么很有可能就会反应过来了。

   另外,现在还没有验证的结论,那就是在服务器端通过conn lsl031/passwd的方式连接会不会报出超出连接数而不是连接到空闲实例的提示。应该对于数据库认证的方式登陆和通过操作系统认证的方式还是存在很大程度的差异的,起码应该数据库认证可能会报连接数不足的提示,因为这个是需要尝试登陆数据库,而操作系统认证可能就直接无法获得资源,而直接拒绝连接到数据库,从而抛出连接到空闲实例的错误。看来小问题存在大学问啊。还得加紧学习,另外,遇到问题还是不要有思维定势了。

  最后,看来要预防这样的问题,需要对每个数据库的基线值里面加入session数目的值,并且做监控,如果超出多艘给个报警。这样起码可以第一时间看看是那些应用导致的连接异常。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/288166/viewspace-706303/,如需转载,请注明出处,否则将追究法律责任。

上一篇: ORA-00600: qkabix
请登录后发表评论 登录
全部评论

注册时间:2009-03-24

  • 博文量
    56
  • 访问量
    799138