RAC
oracle12c
More than 1 year has passed since last update.

環境

  • OS RHEL7 3.10.0-514.26.2.el7.x86_64
  • Oracle Grid Infrastructure 12.1.0.2.0
  • Oracle Database 12c 12.1.0.2.0

エラー内容

ORA-27125: unable to create shared memory segment
Linux-x86_64 Error: 28: No space left on device

解決方法

SHMALLの値を修正する

以下はメモリ20Gの例
$ cat /proc/sys/kernel/shmmax
26843545600
What wrong with my kernel tuning... So, I checked metalink (301830.1) and some recommend from RHEL
They told; set SHMALL to the total amount of physical RAM divided by page size.
SHMALL =>Total amount of shared memory available (bytes or pages)
then:
Check Page Size:
$ getconf PAGE_SIZE
4096
Determine the system wide maximum number of shared memory pages:
$ cat /proc/sys/kernel/shmall
2097152
My system 64bits with memory 32GB, then 1024 * 1024 * 1024 * 32 / 4096 = 8388608
※適宜メモリの容量にて値を修正すること
So, change kernel.shmall = 8388608
$ su - root
# echo 8388608 > /proc/sys/kernel/shmall
Or modify /etc/sysctl.conf file:
kernel.shmall=8388608
and
# sysctl -p
After changed... check and startup database again:
$ cat proc/sys/kernel/shmall
8388608

以下参考URL
http://it.toolbox.com/blogs/surachart/shared-memory-startup-database-ora27102-out-of-memory-linuxx86_64-error-28-no-space-left-on-device-34958