美文网首页
Oracle数据库pfile中的参数memory_target

Oracle数据库pfile中的参数memory_target

作者: linux_python | 来源:发表于2021-06-07 15:25 被阅读0次
    Oracle新手如有错误的地方请各位大佬指正

    环境

    • Oracle 11g
    • Centos 6.4
    • 报错信息:ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 2272M
    image.png

    解决过程

    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参数对应的内存大小)
    image.png
    • 再试一下调整sga_target参数为0
      结果同上,报错信息变为least 924M(减少的那部分为SGA参数对应的内存大小)
    image.png

    也就是说这个memory_target参数值是和SGA+PGA的参数值有正向联系,并且必须大于这两个值加起来(其实不算错误)

    解决问题

    找到了原因就来解决问题,memory_target参数应该大于SGA+PGA的内存值
    我多给点,那就多给点 给了3G
    问题解决! 出现了新报错! good !

    image.png

    报错信息:ORA-00845: MEMORY_TARGET not supported on this system

    在这个系统不支持? (本机物理内存及可用内存都大于3G)

    • 其实这个报错不是不支持,经查阅这里设置的值要小于/dev/shm的磁盘空间。查看本机的才1.9G(/dev/shm大小默认为系统内存的一半大小)
      什么? /dev/shm明明是磁盘 -- 和memory_target会有什么关系?
      只能继续了解/dev/shm是什么。 /dev/shm详解入口
    image.png

    默认的最大一半内存大小在某些场合可能不够用,并且默认的inode数量很低一般都要调高些,这时可以用mount命令来管理它。

    mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm

    image.png

    修改之后去startup

    image.png

    问题解决。启动成功

    总结: sga_target+pga_target+预留部分内存memory_target < /dev/shm

    相关文章

      网友评论

          本文标题:Oracle数据库pfile中的参数memory_target

          本文链接:https://www.haomeiwen.com/subject/jnkxeltx.html