Fix Oracle Error: Database Out of Memory

ในกรณีที่เราทำการ Create Instance บน Oracle Database แล้วไม่สามารถทำการ Start Database ได้ เนื่องจาก Memory เต็ม ทำให้ไม่สามารถทำการ Allocate Memory สำหรับ SGA เพื่อใช้ในการ Start Database ได้ ซึ่งค่า Parameter ของ Oracle Database อย่าง Memory Target และ Memory Max Target ไม่ควรจะใหญ่กว่า Shared Memory File System ( /dev/shm )


Cause : สาเหตุเนื่องมาจาก Memory ไม่เพียงพอสำหรับ SGA ทำให้ไม่สามารถทำการ Start Database ได้ ซึ่งมันถูกจำกัด Memory บน Kernel ของ OS จะแยกส่วนกันกับ Memory Max Target จะต้องทำการ Configure Kernel Parameter and Resource Limit

ERROR:
ORA-01034: ORACLE not available
ORA-27102: out of memory
Linux-x86_64 Error: 12: Cannot allocate memory
Additional information: 1
Additional information: 10911759
Additional information: 8
Process ID: 0
Session ID: 0 Serial number: 0

Configuration

  • ทำการตรวจสอบ File System ของ /dev/shm
# df -h /dev/shm
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           4.9G   72K  4.9G   1% /dev/shm
  • ทำการตรวจสอบ Free Memory ( MB ) จะเห็นว่าเหลือ Free อยู่นิดเดียว ควรทำการเพิ่ม Memory
# free -m
             total       used       free     shared    buffers     cached
Mem:          7982       7708        274       5991         62       6330
-/+ buffers/cache:       1315       6666
Swap:         4031       1733       2298
  • ทำการ Mount File System
# mount -t tmpfs shmfs -o size=10G /dev/shm
  • ทำการตรวจสอบ File System ของ /dev/shm อีกครั้งหนึ่ง
# df -h /dev/shm
Filesystem      Size  Used Avail Use% Mounted on
shmfs            10G  4.5G  5.6G  45% /dev/shm
  • ทำการ Change Persistant แล้วทำการ Restart
# cat /etc/fstab
tmpfs                   /dev/shm                tmpfs   size=10g        0 0

อ่านเพิ่มเติม : https://bit.ly/2kUPwqf, https://bit.ly/2mi1LgL


Leave a Reply

Your email address will not be published. Required fields are marked *