找不到的数据库进程

上一篇 / 下一篇  2008-06-25 23:36:34 / 个人分类:Oracle随记

下午正在给客户干活,一个朋友突然发了个message过来,说要问我个奇怪的问题。好像有不少人都问过我“奇怪”的问题,看看吧。朋友发过来一些信息:
CPU TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND 0
? 12940 oracle 241 20 2755M 3380K run 23:44 64.87 64.76 oracleDYKMESV2 3
? 29298 oracle 154 20 2756M 4468K sleep 13549:54 21.25 21.21 oracleDYKMESV2 1
? 6762 oracle 154 20 2756M 4300K sleep 2934:19 13.59 13.57 oracleDYKMESV2

他试图查找这些OS进程在数据库中对应的会话进程,通过下面的语句:
SQL> select pid,spid from v$process 2 where pid in ('12940','29298','6762');
未选定行

结果是一无所获,没有找到任何进程,奇怪吧。。。其实也不奇怪,搞错了v$process中字段的含义了。
在v$process中,真正对应服务进程的是spid字段,也就是system process id,而他则习惯性的使用了pid字段,当然找不到拉,呵呵,如下:
CPU TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND 2
? 8193 oracle 154 20 4375M 8060K sleep 0:07 4.79 4.78 oraclepepsi 2
? 8041 oracle 154 20 4375M 7804K sleep 0:28 3.47 3.46 oraclepepsi 2
? 25132 oracle 154 20 4359M 7932K sleep 0:43 3.33 3.32 oraclepepsi
SQL> select USERNAME,PID,SPID from v$process where spid=8193;
USERNAME PID SPID
 --------------- ---------- ------------
oracle 25 8193

SQL> select USERNAME,PID,SPID from v$process where spid=8041;
USERNAME PID SPID
--------------- ---------- ------------
oracle 58 8041

告诉他这个答案,他也想起来是搞错了,呵呵,不过问题还没结束,当他把错误纠正过来再次执行的时候,奇怪的事情出现了,还是没找到。。。
有点问题,想了想,是不是进程已经断开了? 不是,他回答道。。。难道是死进程?不对,该进程还在不断消耗着空间。。。有点意思啊,确实有点“奇怪”。。。就在我绞尽脑汁,充分发挥想象力的时候,这个哥们很不好意思的发过来一个消息,我直接晕倒——他们这台机器有多个库,他查错库了!。。。
呵呵,从这个事情看,有时候问题并不一定是那么复杂,答案也许就在转念之间,同时也提醒我们,谨慎而行永远是减少错误的第一要素。周末我要搞得库正好也是单机多库,看来正好给自己了一个提醒阿。

 


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-10-11  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 1311
  • 日志数: 29
  • 建立时间: 2008-05-11
  • 更新时间: 2008-08-01

RSS订阅

Open Toolbar