|
 |
|
Semaphore Management in UNIX
Oracle Tips by Burleson Consulting
|
Semaphore Management in UNIX
A semaphore is a term used for a signal flag used by the Navy to
communicate between ships. In some dialects of UNIX, semaphores are
used by Oracle to serialize internal Oracle processes and guarantee
that one thing happens before another thing. Oracle uses semaphores
in HP/UX and Solaris to synchronize shadow processes and background
processes. However, AIX UNIX does not use semaphores, and a
post/wait driver is used instead to serialize tasks.
The number of semaphores for an Oracle database is normally equal to
the value of the processes initialization parameter. For example, a
database where processes=200 would need to have 200 UNIX semaphores
allocated for the Oracle database.
When allocating semaphore in UNIX, it is critical that your UNIX
kernel parameter semmns be set to at least double the high-water
mark of processes for every database instance on your server. If you
fail to allocate enough semaphores by setting semmns too low, your
Oracle database will fail at startup time with this message:
ORA-7279: spcre: semget error, unable to get first semaphore set
Let’s talk about setting the semmns kernel parameter. To make
changes in kernel shared memory or semaphore parameters, you need to
perform the following steps:
1. Shut down any running Oracle instances
2. Locate the kernel configuration file for your OS
3. Make the necessary changes using the system utilities or the vi
editor.
Today, most dialects of UNIX have specialized System Administration
utilities to perform kernel management (Table 2-4)
UNIX Dialect
Utility Name
HP-UX
SAM
SCO
SYSADMSH
AIX
SMIT
Solaris
ADMINTOOL
Table 4: UNIX kernel management tools
 |
Expert Remote DBA
BC is America's oldest and largest Remote DBA Oracle support
provider. Get real Remote DBA experts, call
BC Remote DBA today. |
 |
|