kkjcre1p: unable to spawn jobq slave process的告警分析

dcswinner發表於2012-08-21

上週檢查資料庫的alert log,發現有如下告警資訊:

Fri Aug 10 09:46:04 CST 2012
Process PZ98 died, see its trace file
Fri Aug 10 09:49:57 CST 2012
Process m000 died, see its trace file
Fri Aug 10 09:49:57 CST 2012
ksvcreate: Process(m000) creation failed
Fri Aug 10 09:55:49 CST 2012
Process P004 died, see its trace file
Process P004 died, see its trace file
SMON: Parallel transaction recovery tried
Fri Aug 10 10:04:46 CST 2012
Thread 2 advanced to log sequence 67903 (LGWR switch)
  Current log# 3 seq# 67903 mem# 0: +DATA/emsbusi/onlinelog/group_3.372.760317935
Fri Aug 10 10:09:36 CST 2012
Process J003 died, see its trace file
Fri Aug 10 10:09:36 CST 2012
kkjcre1p: unable to spawn jobq slave process

通過日誌看到,可以分析道如下幾種資訊:

資料庫在建立m000程式失敗:ksvcreate: Process(m000) creation failed;

程式P004程式死掉;

不能產生jobq程式。

看到這個資訊立刻想到了是資料庫的process程式數導到引數:processes設定的值。

SQL> show parameter processes
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     0
db_writer_processes                  integer     2
gcs_server_processes                 integer     4
job_queue_processes                  integer     10
log_archive_max_processes            integer     2
processes                            integer     1000

SQL> show parameter sessions
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size           integer     0
java_soft_sessionspace_limit         integer     0
license_max_sessions                 integer     0
license_sessions_warning             integer     0
logmnr_max_persistent_sessions       integer     1
sessions                             integer     1105
shared_server_sessions               integer    

SQL> SELECT COUNT(*) FROM v$process;
 
  COUNT(*)
----------
        997
 
SQL> SELECT COUNT(*) FROM v$session;
 
  COUNT(*)
----------
        976

通過這裡應該知道是session數到達了引數設定的值了,因此應該調整processes引數的大小和session引數的大小,但是這兩個引數的調整需要重啟資料庫例項,會中斷生產的應用,那隻能通過降低現在連線的session數來臨時解決了。

通過分析發現現在連線上來的基本都是weblogic的連線池發出的長連線,很多session已經處於inactive狀態,下面通過重新啟動weblogic例項(由於weblogic例項配置了多個冗餘,一個一個的啟動不會對業務造成影響),重啟完後,session數急劇下降。

待下次又資料庫有維護的機會的時候在將processes和session的值調大一些。

參考文章:

http://hi.baidu.com/abp0109/item/e2d80e0a752092d5dce5b078

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12129601/viewspace-741500/,如需轉載,請註明出處,否則將追究法律責任。

相關文章