/etc/fstab文件中/dev/shm的配置:
tmpfs /dev/shm tmpfs defaults 0 0
/dev/shm /tmp tmpfs rw,bind 0 0
此时Linux操作系统会默认设置/dev/shm的大小为服务器物理内存的1/2。
但是,如果oracle使用了自动内存管理,并且设置的SGA_MAX_SIZE大于 /dev/shm分区的大小时,在启动oracle实例的时候会报错:
00845, 00000, "MEMORY_TARGET notsupported on this system"
// *Cause: The MEMORY_TARGET parameter wasnot supported on this operating system or /dev/shm was not sized correctly onLinux.
// *Action: Refer to documentation for alist of supported operating systems. Or, size /dev/shm to be at least theSGA_MAX_SIZE on each Oracle instance running on the system.
为了解决这个问题,需要手动调整/dev/shm分区的大小:
1) 修改/etc/fstab文件
tmpfs /dev/shm tmpfs defaults,size=20G 0 0
2) 查看当前 /dev/shm使用情况
lsof /dev/shm
如果要重新挂载,需要关闭使用/dev/shm的程序。
3) 重新挂载/dev/shm
mount -o remount /dev/shm