ORA-27300: OS system dependent operation:semget failed, ORA-27301

— błędy mogą wystąpić podczas praktycznie każdej operacji: exp/impdp, start instancji DB itp.

— przykładowe:

[oracle@db_nod1 dump]$ srvctl start instance -i DB_TEST1 -d db_test
PRCR-1013 : Failed to start resource ora.db_test.db
PRCR-1064 : Failed to start resource ora.db_test.db on node db_nod1
CRS-5017: The resource action „ora.db_test.db start” encountered the following error:
ORA-00603: ORACLE server session terminated by fatal error
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00907: missing right parenthesis
ORA-17503: ksfdopn:2 Failed to open file +ASMDATA/db_test/PASSWORD/pwddb_test.295.984654901
ORA-00603: ORACLE server session terminated by fatal error
ORA-27504: IPC error creating OSD context
ORA-27300: OS system dependent operation:sendmsg failed with status: 105
ORA-27301: OS failure message: No buffer space available
ORA-27302: failure occurred at: sskg. For details refer to „(:CLSN00107:)” in „/u01/app/grid/diag/crs/db_nod1/crs/trace/crsd_oraagent_oracle.trc”.
CRS-2674: Start of 'ora.db_test.db’ on 'db_nod1′ failed

albo coś podobnego do tego:

ORA-27154: post/wait create failed
ORA-27300: OS system dependent operation:semget failed with status: 28
ORA-27301: OS failure message: No space left on device
ORA-27302: failure occurred at: sskgpcreates

— sprawdzamy parametry sem*

[root@db_nod1 ~]# cat /proc/sys/kernel/sem
250 32000 100 128
[root@db_nod1 ~]# ipcs -ls
—— Semaphore Limits ——–
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 100
semaphore max value = 32767

— zmieniamy na większe:

[root@db_nod1 ~]# sysctl -w kernel.sem=”250 50000 100 200″
kernel.sem = 250 50000 100 200
[root@db_nod1 ~]# cat /etc/sysctl.conf | grep kernel.sem
oracle-database-server-12cR2-preinstall setting for kernel.sem is '250 32000 100 128′
kernel.sem = 250 32000 100 128
[root@db_nod1 ~]# vi /etc/sysctl.conf # z kernel.sem = 250 32000 100 128 na: 250 50000 100 200

— sprawdzamy:

[root@db_nod1 ~]# ipcs -ls
—— Semaphore Limits ——–
max number of arrays = 200
max semaphores per array = 250
max semaphores system wide = 50000
max ops per semop call = 100
semaphore max value = 32767

— i test czy jest ok:

[root@db_nod1 ~]# su – oracle
[oracle@db_nod1 ~]$ srvctl start instance -i DB_TEST1 -d db_test
[oracle@db_nod1 ~]$

— dla EXy gotowiec:

sysctl -w kernel.sem=”1024 60000 1024 256″
vi /etc/sysctl.conf # z kernel.sem = 1024 60000 1024 256
grep kernel.sem /etc/sysctl.conf
ipcs -ls