Oracle新手如有错误的地方请各位大佬指正
环境
- Oracle 11g
- Centos 6.4
- 报错信息:ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 2272M
解决过程
1.先了解参数的意义
首先查下文档看这个参数怎么解释,可以看memory_target和SGA、PGA之间的关系
Oracle 9i引入pga_aggregate_target,可以自动对PGA进行调整;
Oracle 10g引入sga_target,可以自动对SGA进行调整;
Oracle 11g则对这两部分进行综合,引入memory_target,可以自动调整所有的内存,这就是新引入的自动内存管理特性。
2.错误来源
- 了解了参数的意义我们就试一下,调整了pga_target参数为0
结果报错信息变为least 1548M (减少的那部分正好是PGA参数对应的内存大小)
- 再试一下调整sga_target参数为0
结果同上,报错信息变为least 924M(减少的那部分为SGA参数对应的内存大小)
也就是说这个memory_target参数值是和SGA+PGA的参数值有正向联系,并且必须大于这两个值加起来(其实不算错误)
解决问题
找到了原因就来解决问题,memory_target参数应该大于SGA+PGA的内存值
我多给点,那就多给点 给了3G
问题解决! 出现了新报错! good !
报错信息:ORA-00845: MEMORY_TARGET not supported on this system
在这个系统不支持? (本机物理内存及可用内存都大于3G)
- 其实这个报错不是不支持,经查阅这里设置的值要小于/dev/shm的磁盘空间。查看本机的才1.9G(/dev/shm大小默认为系统内存的一半大小)
什么? /dev/shm明明是磁盘 -- 和memory_target会有什么关系?
只能继续了解/dev/shm是什么。 /dev/shm详解入口
默认的最大一半内存大小在某些场合可能不够用,并且默认的inode数量很低一般都要调高些,这时可以用mount命令来管理它。
image.pngmount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm
修改之后去startup
image.png问题解决。启动成功
总结: sga_target+pga_target+预留部分内存 < memory_target < /dev/shm
网友评论