ORA-30009 故障处理一例

ORA-30009 故障处理一例

背景:
刚才一网友问到ORA-30009的错误,数据库版本为10.2.0.5,操作系统版本为Redhat 4;随即我考虑了到了硬件和buffer的限制这一块,对其做了验证,详细如下:


错误信息:
SQL> CREATE TABLE t AS SELECT rownum AS n, lpad('*',1000,'*') AS pad FROM dual CONNECT BY level <= 100000;
CREATE TABLE t AS SELECT rownum AS n, lpad('*',1000,'*') AS pad FROM dual CONNECT BY level <= 100000
*
ERROR at line 1:
ORA-30009: Not enough memory for CONNECT BY operation


处理步骤:

查看限制,结论是没有问题。
[oracle@yangbo bdump]$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 1024
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 8192
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

查看数据库的buffer为自动设置,问题也不大。
SQL> show parameter buffer

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
buffer_pool_keep string
buffer_pool_recycle string
db_block_buffers integer 0
log_buffer integer 2875392
use_indirect_data_buffers boolean FALSE

同时查看了下sga的配置,通过经验来看,发现好像小了。

19:46:31 SQL> show parameter sga

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 312M
sga_target big integer 312M


分析:

通过如上的情况分析得出,他将要插入的数据是在100000行,但是他的sga配置只有312M,主机内存只有512M,数据库是跑在虚拟机上的,并且之前已经将该100000行数据的表进行了一次插入操作,并且没有提交
在进行第二次插入的时候报ORA-30009这个错误,由此可判断是由于SGA太小导致。

处理过程:

1、添加内存到1G
2、扩大SGA
SQL>alter system set sga_max_size=512M scope=spfile;
SQL>alter system set sga_target=512M scope=spfile;
3、重启数据库。
4、再次执行,故障解决。


还有一种原因是由于Bug 11805372导致,详细请查看如下文章:

http://space.itpub.net/?uid-20674423-action-viewspace-itemid-722002

http://blog.csdn.net/wuweilong/article/details/7488006

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值