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
最新文章
- 手把手教你ARC——iOS/Mac开发ARC入门和使用
- Java 反射工具类封装
- 解决win2003/2008下注册机或破解补丁程序无法运行问题
- 实习小记-python 内置函数__eq__函数引发的探索
- @SessionAttributes与HttpSession
- android 自定义控件二之仿QQ长按删除
- poj1177Picture(线段树-周长并)
- [转]java-Three Rules for Effective Exception Handling
- centos安装和卸载软件
- 我的学习之路_第二十七章_jQuery
- ubuntu下升级网卡驱动
- 请用java解析下xml
- PopupWindow 弹出时背景变暗
- sql server 如何查询出数据库作业所有者的信息并完成批量替换
- java基础练习2
- 基于SmartThreadPool线程池技术实现多任务批量处理
- Android程序的反编译对抗研究
- 一点一点看JDK源码(五)java.util.ArrayList 后篇之removeIf与Predicate
- HDU 1205 吃糖果 (数学)
- mongoDB 获取最后插入的文档的ObjectID/_id方法
热门文章
- win10更换登陆背景和关闭锁屏
- Docker for Windows 里的Shared Drives 设置不生效
- JavaScript Output
- 使用kubeadm搭建kubernetes1.10集群 Posted on April 14, 2018
- Python开发基础-Day9-生成器、三元表达式、列表生成式、生成器表达式
- [UOJ181]密码锁
- python debug open_files
- The Responsive jQuery Content Slider
- <;摘录>;算法策略的总结
- CSS揭秘之多重边框&;连续的图像边框