ORA-27300: OS system dependent operation:fork failed with status

wuweilong發表於2018-10-04

問題現象:

Sun Sep 30 21:12:28 2018
Errors in file /DBSoft2/oracle/diag/rdbms/fzdbcgbk/fzdbcgbk1/trace/fzdbcgbk1_psp0_221463.trc:
ORA-27300: ͳϵͳز: fork ʧ ״̬Ϊ: 11
ORA-27301: ͳϢ: Resource temporarily unavailable
ORA-27302: skgpspawn3
Process J000 died, see its trace file
Sun Sep 30 21:12:28 2018
kkjcre1p: unable to spawn jobq slave process 
Sun Sep 30 21:12:28 2018
Errors in file /DBSoft2/oracle/diag/rdbms/fzdbcgbk/fzdbcgbk1/trace/fzdbcgbk1_cjq0_222890.trc:
Sun Sep 30 21:12:29 2018
Process startup failed, error stack:
Sun Sep 30 21:12:29 2018
Errors in file /DBSoft2/oracle/diag/rdbms/fzdbcgbk/fzdbcgbk1/trace/fzdbcgbk1_psp0_221463.trc:
ORA-27300: ͳϵͳز: fork ʧ ״̬Ϊ: 11
ORA-27301: ͳϢ: Resource temporarily unavailable
ORA-27302: skgpspawn3


參考資料:

Mos ID:392006.1

SYMPTOMS:

The following message reported in alert log:

Mon Sep 18 18:10:34 2006

Errors in file /u01/oracle/admin/orcl/bdump/orcl1_psp0_954436.trc:

ORA-27300: OS system dependent operation:fork failed with status: 11

ORA-27301: OS failure message: Resource temporarily unavailable

ORA-27302: failure occurred at: skgpspawn3

Mon Sep 18 18:10:35 2006

Process P073 died, see its trace file

 

CAUSE:

The error messages indicating that oracle has problem in forking more process, the maximum number of PROCESSES allowed per user could be too low.

This is configured by the following kernel settings:

  AIX: maxuproc

  HP and Solaris: maxuprc

  Solaris 10/11: project.max-lwps

  Linux: nproc (/etc/security/limits.conf)


檢查配置:

[root@fzdb1 trace]# su - oracle2
[oracle2@fzdb1 ~]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 1031748
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 3047
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[oracle2@fzdb1 ~]$ ulimit -u 
3047
[root@fzdb1 ~]# grep proc /etc/security/limits.conf
#        - nproc - max number of processes
#        - priority - the priority to run user process with
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
oracle           soft    nproc           3047
oracle           hard    nproc           16384
grid             soft    nproc           3047
grid             hard    nproc           16384


問題分析:

   從上面檢查我們可以發現oracle2的使用者程式數量已經達到了1491,幾乎接近oracle2使用者的user processes數量,所以資料庫日誌裡面頻繁出現大量的ORA-27300,ORA-27301,ORA-27302,根據MOS:392006.1建議修改/etc/security/limits.conf檔案裡的oracle2 nproc值為更大的值,但是實際上我們並沒有發現有關於oracle2使用者的配置,所以我們手工新增如下配置後重啟資料庫伺服器就可以了:

oracle2         soft    nproc           16384

oracle2         hard    nproc           16384

oracle2         soft    nofile          65536

oracle2         hard    nofile          65536

oracle2         soft    memlock         3145728

oracle2         hard    memlock         3145728


開始修改:

[root@fzdb1 ~]# cat  >> /etc/security/limits.conf << EOF
> oracle2         soft    nproc           16384
> oracle2         hard    nproc           16384
> oracle2         soft    nofile          65536
> oracle2         hard    nofile          65536
> oracle2         soft    memlock         3145728
> oracle2         hard    memlock         3145728
> EOF


重啟伺服器:

[oracle2@fzdb1 ~]$ su - root
[root@fzdb1 ~]$ reboot


檢查剛才的引數修改:

[oracle2@fzdb1 ~]$ ulimit -u
16384


檢查資料庫日誌:

   修改引數之後透過一天的觀察未見ORA-27300,ORA-27301,ORA-27302等報錯資訊,此故障處理完畢。


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

相關文章