前几天同事提及oracle的一个报错:ORA-00845: MEMORY_TARGET not supported on this system,数据库启动不了,这个问题之前遇到过,现在总结一下,免得我忘性大。。。

memory_target是oracle 11g新引进的一个自动内存管理特性,可以解释为memory_target=SGA+PGA。设置memory_target参数后,oracle会自动设置并调整sga_target和pga_aggregate_target这两个参数来分配SGA和PGA的内存。

如果memory_max_target/memory_target设置过大,超出系统中share memory(/dev/shm),可能导致instance无法启动,数据库提示ORA-00845的错误。

解决问题的方法之一为增加tmpfs文件系统的大小。

vi /etc/fstab

修改

tmpfs /dev/shm tmpfs defaults 0 0

tmpfs /dev/shm tmpfs defaults,size=16G 0 0

mount -o remount /dev/shm

再启动数据库就不会报错了。