cancel
Showing results for 
Search instead for 
Did you mean: 

How can I do?

Wan Bo
Occasional Advisor

How can I do?

I init a oracle db with "processes=1000" in the init.ora,and system reported "ORA-27146:post/wait initialization failed",which means some os system call failed.But when I used "processes=800",it was allright.
I think some kernel parameters are unbefitting,but I don't know what they are, help and thanks.
Some related kernel parameters' value:
maxuprc=2000
maxusers=1500
nproc=12020

rickman
11 REPLIES
Steven Sim Kok Leong
Honored Contributor

Re: How can I do?

Hi,

What does the following say?

# oerr ora 27146

Hope this helps. Regards.

Steven Sim Kok Leong
Email: steven@beepz.com. Homepage: https://www.beepz.com
Wan Bo
Occasional Advisor

Re: How can I do?

Hi,Steven,thanks for your help

# oerr ora 27146
27146, 0000, "post/wait initialization failed"
// *Cause: OS system call failed
// *Action: check errno and contact Oracle Support
Steven Sim Kok Leong
Honored Contributor

Re: How can I do?

Hi,

Can you check the system table utilisation from glance?

Hope this helps. Regards.

Steven Sim Kok Leong
Email: steven@beepz.com. Homepage: https://www.beepz.com
Wan Bo
Occasional Advisor

Re: How can I do?

Hi,Steven
The system table with no oracle is as below:

S U
Proc Table(nproc) 12020 137
File Table(nfile) 22059 610
Shared Mem Table(shmmni) 200 9
Message Table(msgmni) 50 2
Semaphore Table(semmni) 128 26
File Locks(nflocks)mmni)200 22


Any suggestions?



rickman
Steven Sim Kok Leong
Honored Contributor

Re: How can I do?

Hi,

Can you show the system table parameter values for processes=800 as defined in your init.ora?

Hope this helps. Regards.

Steven Sim Kok Leong
Email: steven@beepz.com. Homepage: https://www.beepz.com
Wan Bo
Occasional Advisor

Re: How can I do?

Hi,Steven,now the values are:

Proc Table(nproc) 12020 157
File Table(nfile) 22059 741
Shared Mem Table(shmmni)200 10
Message Table(msgmni) 50 2
Semaphore Table(semmni) 128 27
File Locks(nflocks)mmni)200 46

Help me!
Thank you!



rickman
Bill Hassell
Honored Contributor

Re: How can I do?

Unfortunately, the errno (HP-UX error number is not listed) so unless you can locate the HP-UX error code, you'll have to guess at what is creating the system call failure. Since there may be hundreds of reasons, start with processes = 800, let the system run for a while, then measure the kernel parameters.

nproc is exceedingly high at 12,020 so unless those Oracle processes will spawn another 10,000 processes, it is wasting kernel memory. nproc should be 5x larger than nproc but NOT until you reduce nproc.

You may be running out of swap space or semaphores or shared memory or ... Check if Oracle has an enhanced logging mode, and look at dmesg after the error as well as syslog.log.


Bill Hassell, sysadmin
Steven Sim Kok Leong
Honored Contributor

Re: How can I do?

Hi,

Just to double-check, is the only change made to init.ora the processes assignment?

Hope this helps. Regards.

Steven Sim Kok Leong
Email: steven@beepz.com. Homepage: https://www.beepz.com
T G Manikandan
Honored Contributor

Re: How can I do?


Hello,

Quote
//*
ORA-27146 post/wait initialization failed
Increase the kernel parameter "SEMMNS".
You are running out of semaphores (semmns).
For every "processes=" in the init"SID".ora Oracle needs one semaphore (semmns). So when you try and start a second database the OS doesn't have enough semaphores for Oracle.
To set the kernel parameter for SEMMNS, use this formula . For
example, consider a system that has three Oracle instances with the PROCESSES parameter in their init sid.ora files set to the following values:
ORACLE_SID=A, PROCESSES=100
ORACLE_SID=B, PROCESSES=100
ORACLE_SID=C, PROCESSES=200
The value of SEMMNS is calculated as follows:
SEMMNS = ((A=100) + (B=100)) + ((C=200) * 2) + ((# of instances=3) * 10) = 630
*//

Thanks
G Manikandan
Steven Sim Kok Leong
Honored Contributor

Re: How can I do?

Hi,

The formula for semmni and semmns by default is as follows:

semmni (NPROC*5)
semmns (SEMMNI*2)

Even though your nproc has been increased, your semmni did not follow the default formula for increase.

If you are using the default formula for semmns, a semmni of only 128 will result in an semmns of 256 only.

It does not explain why processes=800 works but not processes=1000, unless your semmns is more than 800 but less than 1000.

Remember also to check your shared memory and semaphore resources that they are properly released after a database is shutdown or after a failed database startup.

# ipcs -b -m
# ipcs -b -s

Hope this helps. Regards.

Steven Sim Kok Leong
Email: steven@beepz.com. Homepage: https://www.beepz.com
Wan Bo
Occasional Advisor

Re: How can I do?

Hello everyone,you are so kind to help,thanks a lot. I will try these ways tomorrow, and make a reply in this.

rickman