Subject : Solaris & Oracle ¿¡¼­ SHARED MEMORY REQUIREMENT

----------------------------------------------------------------------------

OracleÀº Unix¿¡¼­ Process¿Í SGA(System Global Area) Áï Oracle dbms resource
¿µ¿ª°£ÀÇ CommunicationÀ» À§ÇØ shared memory¿Í semaphoresÀ» »ç¿ëÇÑ´Ù.
Oracle instance°¡ ¿Ã¶ó¿Ã ¶§, Áï Dbms EngineÀÌ StartµÉ ¶§ Main Memory»óÀÇ
ƯÁ¤ ¿µ¿ªÀ» DbmsÀÇ Æ¯Á¤ ¿µ¿ªÀ¸·Î È°´çÇÑ´Ù. ¸¸¾à ƯÁ¤¿µ¿ª Áï Shared Memory°¡
Dbms°¡ ¿ä±¸ÇÏ´Â SGA ¿µ¿ªº¸´Ù Àû´Ù¸é Dbms EngineÀÌ ¿Ã¶ó°¥ ¶§ shared memory ¶Ç´Â
semaphores °ü·ÃµÈ Error°¡ ¹ß»ýÇϸ鼭 FailÀÌ ³¯ °ÍÀÌ´Ù.

´ÙÀ½Àº ÀÛÀº ¿ë·®ÀÇ Áï Axil320 µî°ú °°Àº Desktop Model µî±Þ ±âÁ¾¿¡¼­ÀÇ
shared memory¿Í semaphoresÀÇ recommendÇÏ´Â Size¿Í SettingÀÇ ¿¹¸¦ µé¾î º¸¾Ò´Ù.
ÇÏÁö¸¸ ÇÊ¿äÇÏ´Ù¸é Oracle Engineer ÇùÁ¶ÇÏ¿¡ Dbms init fileÀÇ SGA¿µ¿ª Áï °¢Á¾ 
Segment ¿Í Buffer Size µî Oracle¿¡ °ü·ÃµÈ Info°¡ ÇÊ¿äÇÏ´Ù.

Solution Description:
=====================

SGA´Â System shared memory ³»¿¡ Â÷ÁöÇÑ´Ù. ±×·¯¹Ç·Î ÀüüÀÇ SGA¿¡ ÁÖ¼ÒÇÒ´çÀ»
À§Çؼ­´Â Shared Memory°¡ °¢°¢ÀÇ Oracle Process¿¡ À¯È¿ÇÏ¿©¾ß ÇÑ´Ù.
´ÙÀ½Àº Shared Memory ¿Í Semaphore°ü·ÃµÈ Parameter¸¦ Á¤ÀÇ ÇÏ¿´´Ù.

SHMMAX = The maximum size(in bytes) of a single shared memory segment.
SHMMIN = The minimum size(in bytes) of a single shared memory segment.
SHMMNI = The number of shared memory identifiers.
SHMSEG = The maximum number of shared memory segments that can be attached
         by a process.
SEMMNS = The number of semaphores in the system.
SEMMNI = The number of semaphore set identifiers in the system; determines
         the  number of semaphore sets that can be created at any one time. 
SEMMSL = The maximum number of sempahores that can be in one semaphore set.
 It should be same size as maximum number of Oracle processes
 (The PROCESSES parameter in the init.ora file).

Recommended Semaphore and Shared Memory Parameters

Operating System        Shared Memory Parameters           Semaphore
----------------        ------------------------           ---------
Sun OS                  SHMSIZE = 32768                    SEMMNS = 200
                        SHMMNI = 50                        SEMMNI = 50

Solaris                 SHMMAX = 8388608                   SEMMNS = 200
                        SHMSEG = 20                        SEMMSL = 50
                        SHMMNI=100                         SEMMNI = 70


    Setting the Shared Memory and Semaphore Parameters

shared memory ¿Í semaphore parameter´Â ´ç½ÅÀÇ Kernel Configuration file Áï
/etc/system file¿¡¼­ Á¤ÀÇÇÏ°í SizingÇÒ ¼ö ÀÖ´Ù.

´ÙÀ½°ú °°ÀÌ ÇöÀçÀÇ Parameter °ªÀ» È®ÀÎ ÇÒ ¼ö ÀÖ´Ù.

      % sysdef | more

Example, using Solaris 2.3/2.4 parameters and commands:
--------------------------------------------------------

/* Oracle Dbms Shutdown */

 1. Log into SQLDBA and type:                
  SQLDBA> shutdown
  SQLDBA> exit

/* Shared Memory & Semaphore Parameter Á¤ÀÇ */

 2. Log in as the superuser (root) and:
  # cd /etc/system

 3. Add the following lines to the /etc/system file:

                set shmsys:shminfo_shmmax=8388608
                set shmsys:shminfo_shmmin=1
                set shmsys:shminfo_shmmni=100
                set shmsys:shminfo_shmseg=20
                set semsys:seminfo_semmns=200
                set semsys:seminfo_semmni=70

/* Reconfigurate Reboot */

 4. Reconfigure the kernel:
  # touch /reconfigure

 5. Reboot the machine:
  #init 6

/* Dbms Startup */

 6. Log into SQLDBA and type:
   SQLDBA> startup
   SQLDBA> exit

Oracle SGAÀÇ Size´Â SystemÀÇ Shared Memory ¹× SemaphoreÀÇ Size¿¡ Á¦Çѵǰí
SGA°ü·Ã DbmsÀÇ °ü·Ã Parameter´Â OracleÀÇ init.ora file¿¡¼­ Á¤Àǵǰí
±×°ÍÀº System °ú Oracle ¸ðµÎ Performance¿¡ ¿µ¾çÀ» ÁØ´Ù.

----------------------------------------------------------------------------

Revision History

ÀÛ¼ºÀÏÀÚ : 97.03.10
ÀÛ¼ºÀÚ : À̹ÎÈ£

¼öÁ¤ÀÏÀÚ :
¼öÁ¤ÀÚ :