前几天同事提及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
再启动数据库就不会报错了。