• ORA-04030


      ORA-04030: 在尝试分配...字节(...)时进程内存不足的原因分析及解决办法

      正在使用的oracle 11g数据库,前天在用一段时间后(开始要较长时间才出现,后来较短时间就出现),频繁报ORA-04030错误,具体错误信息是 ORA-04030: 在尝试分配...字节(...)时进程内存不足。

            根据异常信息,可以很容易的判断是由于内存使用过多,分配不足所致的,但是电脑本身内存并不小,由此可以说明oracle在分配内存时,应该是有限制的,当超出这个限制的时,就会出现这个错误。

            在网上查了一下,挺多人遇到这个问题,根据自己的实际问题及解决过程,个人认为下面的说法更准确:

    另外值得注意的是max_sga_size和sga_target的设置:

    max_sga_size指的是可动态分配的最大值﹐而sga_target是当前已分配的最大sga。
    max_sga_size是不可以动态修改的﹐而sga_target是可动态修改﹐直到max_sga_size的值(前提是你设定的max_sga_size>sga_target的情況)

    如果在实例启动时﹐max_sga_size < sga_target或max_sga_size没设定﹐则启动后max_sga_size的值会等于sga_target的值,这时如果内存占用超过sga_target,也可能会出现ORA-04030的错误。


             具体解决办法可参考,使用pl/sql或sqlplus连接上数据库(出现这个错误后,数据已经无法正常访问,需要请停止数据库服务,然后再重新启动),执行如下命令:
    1. 设置rman从SGA取内存
    alter system set dbwr_io_slaves=2 scope=spfile;
    alter system set backup_tape_io_slaves=true scope=spfile;

    2. 调整SGA大小
    alter system set sga_target=1200m;
    //上面语句如果执行出错,暂不理会,等下面语句全部执行完后,重新启动oracle service,再次执行这条语句。
    alter system set sga_max_size=1200m scope=spfile;

    3. 设置使用内存最大大小
    alter system set large_pool_size=80m;

    4. 重启oracle service。

    5. 查看sga,pga,pool的大小。
    show parameter pool

  • 相关阅读:
    DNS解析的并发性
    Pycharm(Jetbrains IDE)Debian buster Navigate Back/Forward (Ctrl+Alt+Left/Right)不好使的解决方法
    Linux命令行登录时的提示信息
    cmake编译Qt5
    cmake使用ccache
    bash 脚本所在文件夹
    gnome desktop
    gnome caps lock 和 num lock 键状态
    oracle 日期、月份处理
    独夜行
  • 原文地址:https://www.cnblogs.com/linjian/p/4930736.html
Copyright © 2020-2023  润新知