startup Linux 에서 Oacle 은 다음 과 같은 오 류 를 보고 합 니 다.

startup Linux oracle    
ORA-27102:out of memory Linux-X86_64 
Error: 28: No space left on device      [ID 301830.1]


   :
Oracle Server - Enterprise Edition - Version: 9.2.0.1 and later   [Release: 9.2 and later ]
Oracle Server - Standard Edition - Version: 9.2.0.1 and later    [Release: 9.2 and later]
Oracle Server - Enterprise Edition - Version: 9.2.0.1 and later    [Release: 9.2 and later]
Linux x86-64

    When trying to increase the SGA to approach half available RAM with an Oracle 64-bit version 
on a Linux 64-bit operating system, even though shmmax is set to match half the amount of  RAM, 
you get the following error when trying to start the instance:
     64 linux   64    oracle,   shmmax                ,
  SGA              , startup     ,        

SQL> startup nomount
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device


Changes

shmall is too small, most likely is set to the default setting of 2097152

$ cat /proc/sys/kernel/shmall
2097152


Cause

shmall is the total amount of shared memory, in pages, that the system can use at one time. 

shmall                      


Solution
    

Set shmall equal to the sum of all the SGAs on the system, divided by the page size. 
  shmall            SGA                    

The page size can be determined using the following command: 
            
$ getconf PAGE_SIZE 
4096

For example, if the sum of all the SGAs on the system is 16Gb and the result of 
'$ getconf PAGE_SIZE' is 4096 (4Kb) then set shmall to 4194304 pages

  ,       SGA    16Gb,  getconf PAGE_SIZE       4096(4k)
  shmall    4194304 

As the root user set the shmall to 4194304 in the /etc/sysctl.conf file:
 root   /etc/sysctl.conf      shmall  4194304

kernel.shmall = 4194304

then run the following command:
         

$ sysctl -p
$ cat /proc/sys/kernel/shmall
4194304


NOTE:

The above command loads the new value and a reboot is not necessary.
        
Switch back to being the oracle user and retry the startup command.
   oracle  ,    startup  

Modifying /etc/sysctl.conf is a permanent workaround (applies at boot time). 

  /etc/sysctl.conf           (       )

If for some reason you DO NOT want to change the system wide configuration, you can do it 
on the fly by directly changing the kernel pseudo FS AKA procfs.
                    ,         pseudo FS AKA procfs.

# echo "4194304" > /proc/sys/kernel/shmall

Using HUGEPAGES does not alter the calculation for configuring shmall.
          shmall     


        
References

NOTE:169706.1 - Oracle Database on Unix AIX,HP-UX,Linux,Mac OS X,Solaris,Tru64 Unix Operating Systems Installation and Configuration Requirements Quick Reference (8.0.5 to 11.2)
NOTE:851598.1 - Master Note of Linux OS Requirements for Database Server
NOTE:1351051.2 - Information Center: Install and Configure Database Server/Client Installations
Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Enterprise Edition
Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Standard Edition
Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Enterprise Edition

64-BIT; 64BIT; HUGEPAGES; INSTALL & CONFIGURE; LINUX; NO SPACE LEFT ON DEVICE; OUT OF MEMORY; START INSTANCE

ORA-27102

Copyright (c) 2007, 2010, Oracle. All rights reserved. Legal Notices and Terms of Use | Privacy Statement

좋은 웹페이지 즐겨찾기