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.
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.
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
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.
Bookmarks