We are running Oracle 8.1.6 on Solaris 2.7. i changed the no of processes in init.ora from 50 to 150 and then shutdown the instance and restarted it.
It gave an error Post /wait initialization failed..
Then i reduced the no of process to 100 and was able to start.
Was this error because of improper Unix settings or it was something else?
Yes, your kernal parameters are too low. The kernal parameters are in /etc/system. The paramters that relates to processes specifically are SEMMSL and SEMMNS. However, you probably want to look at all your params to make sure they are in sync as well. Consult your Installation Guide for specifics.
when changing processes, you also need to change sessions parameter. They work together. That might be your problem.
Got to the /etc/system file and check the max number of semophore setting. If it was less than 100 then you wouldn't be able to start the instance.
Point to ponder: if you increase the semophore limit, then you would have to restart the server and then try increasing the #process in the init.ora file and start the database.
The set up calculation :
SEMMNS = max_sid_process * 2 + all the other instance process count + #instances * 10
example: oracle_sid =A process= 100
"" = B "" = 100
"" = C "" = 200
then your SEMMNS = 100 + 100 + (200*2) + 3 * 10 = 630
For detail check the oracle pre installation part of the installation guide.
question to Magnus, doesn't the oracle dynamically set the max # sessions using the calculation of
sessions = (1.1 *Processes +5)
O.K now I get it, if he needs more sessions then he had to go and set it.
I think Oracle Installation guides are not very accurate with these semaphore values... at least in HP-UX we have had more than several problems by using the values suggested in Oracle´s Installation guides... They are always too low
A more simple rule of thumb could be
Take the sum of no of processes defined in all the init.ora files of all the databases running on that particular machine and multiply by 2. Set SEMMNS value to this in your etc/system file. For instance you have 2 databases with no of processes in init.ora as 100 and 150. Then the SEMMNS value in etc/system file should be atleast :
(100+150) * 2 = 500.
If you change the setting in etc/system file, you may have to reboot your system.
If the current etc/system file shows that the SEMMNS is equal to or greater than the figure you arrived from the above calculation (eg 1000), I suspect you might have some obsolete/unwanted/improperly shut down databases still hanging in the machine and for which some more segments have been allocated. Check this thru ipcs -sb command. This should show up what segments that are allocated and their IDS. Unix adminstrator would be able to identify which segments are allocated to which database and would be able to remove/vacate the semaphore segments allocated to obsolete/ignored/unwanted databases with a command like ipcs -rm. In such case, you might use these reclaimed semaphore segments and just restart the database with increased no of processes without even modifying the /etc/system file and rebooting the system.
Click Here to Expand Forum to Full Width