设置了memory_max_target

来源:互联网 发布:php销售管理系统 编辑:程序博客网 时间:2024/06/05 05:17

设置oracle11g自动内存管理,重新设置了memory_max_target,但重新启动数据库时却报错:

ORA-00845: MEMORY_TARGET not supported on this system

原因:Oracle的官方解析是

Starting with Oracle Database 11g, the Automatic Memory Management feature requires more shared memory (/dev/shm)and file descriptors. The size of the shared memory should be at least the greater of MEMORY_MAX_TARGET and MEMORY_TARGET for each Oracle instance on the computer. If MEMORY_MAX_TARGET or MEMORY_TARGET is set to a non zero value, and an incorrect size is assigned to the shared memory, it will result in an ORA-00845 error at startup.

大概意思就是:MEMORY_MAX_TARGET 的设置不能超过 /dev/shm 的大小(shm默认的实际内存的一半)

解决方案:

df -h |grep shm 查看大小

可以修改大小 /etc/fstab中

tmpfs /dev/shm tmpfs defaults 0 0 为

tmpfs /dev/shm tmpfs defaults,size=新大小 0 0

然后umount /dev/shm mount /dev/shm使设置生效

重新启动数据库

但尝试过程中还会遇到其它错误,都是由于参数设置错误导致的

可以看到之前设置参数的语句alter system set memory_max_target=32G scope=spfile

可见,设置只针对spfile有效,则可以用pfile启动数据库

即,startup pfile='pfile存放路径'

create spfile from pfile='pfile存放路径'

最后再次重启数据库即可

直接从参数配置数据库,需要操作人员对oracle不同版本的特性有深刻的了解,否则就容易出现这种不经意的错误,但危害极大

0 0
原创粉丝点击