oracle内存不足有关问题.

oracle内存不足问题..急...最近我们公司的数据库服务器的oracle每隔10天左右就当掉一次,初步估计应该是内

oracle内存不足问题..急...
最近我们公司的数据库服务器的oracle每隔10天左右就当掉一次,初步估计应该是内存参数设置错误,以下是基本资料,期待各位大侠的高见..

错误日志:alert.log

Errors   in   file   d:\oracle\admin\landdb\udump\landdb_ora_7288.trc:
ORA-04030:   在尝试分配   917536   字节   (joxcx   callheap,ioc_allocate   ufree)   时进程内存不足

Tue   May   08   08:14:39   2007
Errors   in   file   d:\oracle\admin\landdb\udump\landdb_ora_6716.trc:
ORA-04030:   在尝试分配   917536   字节   (joxcx   callheap,ioc_allocate   ufree)   时进程内存不足

Tue   May   08   08:20:20   2007
Errors   in   file   d:\oracle\admin\landdb\udump\landdb_ora_4760.trc:
ORA-04030:   在尝试分配   917536   字节   (joxcx   callheap,ioc_allocate   ufree)   时进程内存不足

Tue   May   08   08:24:18   2007
Errors   in   file   d:\oracle\admin\landdb\udump\landdb_ora_7304.trc:
ORA-04030:   在尝试分配   576248   字节   (joxcx   callheap,ioc_allocate   ufree)   时进程内存不足

Tue   May   08   08:26:47   2007
Errors   in   file   d:\oracle\admin\landdb\udump\landdb_ora_8156.trc:
ORA-04030:   在尝试分配   917536   字节   (joxcx   callheap,ioc_allocate   ufree)   时进程内存不足

Tue   May   08   08:28:16   2007
Errors   in   file   d:\oracle\admin\landdb\udump\landdb_ora_7756.trc:
ORA-04030:   在尝试分配   917536   字节   (joxcx   callheap,ioc_allocate   ufree)   时进程内存不足

Tue   May   08   08:28:18   2007
Errors   in   file   d:\oracle\admin\landdb\udump\landdb_ora_5236.trc:
ORA-04030:   在尝试分配   917536   字节   (joxcx   callheap,ioc_allocate   ufree)   时进程内存不足


init.ora文件内容:

##############################################################################
#   Copyright   (c)   1991,   2001,   2002   by   Oracle   Corporation
##############################################################################
 
###########################################
#   MTS
###########################################
dispatchers= "(PROTOCOL=TCP)   (SERVICE=landdbXDB) "
 
###########################################
#   Optimizer
###########################################
hash_join_enabled=TRUE
query_rewrite_enabled=FALSE
star_transformation_enabled=FALSE
 
###########################################
#   Job   Queues
###########################################
job_queue_processes=10
 
###########################################
#   Instance   Identification
###########################################
instance_name=landdb
 
###########################################
#   Miscellaneous
###########################################
aq_tm_processes=1
compatible=9.2.0.0.0
 
###########################################
#   Security   and   Auditing
###########################################
remote_login_passwordfile=EXCLUSIVE
 
###########################################
#   Sort,   Hash   Joins,   Bitmap   Indexes
###########################################
pga_aggregate_target=25165824
sort_area_size=524288
 
###########################################
#   Database   Identification
###########################################
db_domain= " "


db_name=landdb
 
###########################################
#   File   Configuration
###########################################
control_files=( "r:\oracle\oradata\landdb\CONTROL01.CTL ",   "r:\oracle\oradata\landdb\CONTROL02.CTL ",   "r:\oracle\oradata\landdb\CONTROL03.CTL ")
 
###########################################
#   Pools
###########################################
java_pool_size=33554432
large_pool_size=8388608
shared_pool_size=50331648
 
###########################################
#   Cursors   and   Library   Cache
###########################################
open_cursors=300
 
###########################################
#   System   Managed   Undo   and   Rollback   Segments
###########################################
undo_management=AUTO
undo_retention=10800
undo_tablespace=UNDOTBS1
 
###########################################
#   Diagnostics   and   Statistics
###########################################
background_dump_dest=d:\oracle\admin\landdb\bdump
core_dump_dest=d:\oracle\admin\landdb\cdump
timed_statistics=TRUE
user_dump_dest=d:\oracle\admin\landdb\udump
 
###########################################
#   Processes   and   Sessions
###########################################
processes=150
 
###########################################
#   Redo   Log   and   Recovery
###########################################
fast_start_mttr_target=300
 
###########################################
#   Cache   and   I/O
###########################################
db_block_size=8192
db_cache_size=25165824
db_file_multiblock_read_count=16


服务器参数:windows2003server(32bit)+oracle9i
                        8G内存,CPU4个


[解决办法]
基本上看了一下都是默认配置,应该没有什么问题
考虑应用是否存在递归/死循环等等

[解决办法]
一般情况下,设置只是小问题。
还是看看你的程序,有没有数据库内存泄漏,尤其是有没有忘记关闭连接,关闭资源等。
[解决办法]
http://www.hellodba.com/Doc/oracle_memory(11).htm
[解决办法]
服务器参数:windows2003server(32bit)+oracle9i
8G内存,CPU4个

不愧是ORACLE甲骨文,稀奇古怪又让人难以琢磨的东西。
无论是2003还是9i都是成熟常用的。
8G,4CPU这么高的配置,默认参数,居然还会出分配进程内存不足问题。
这应该吗!

我们公司早期是IBM NETFINITY5500 M10 CPU P2 XEON 450M *1 , 内存256M*4, 硬盘9G*4 RAID5,MSSQL7.0 ,WINNT4.0 这么低的配置也没报过内存不足这类错误,也从没自己当掉过。
后期28G的数据库,最大单表900万记录,数据处理很慢,但也只是等的时间长,没出过错。日结帐时需要insert那个900万记录的大表,只是将客户端SQL连接参数TIMEOUT调长,就都能处理过去。虽然还能维持使用,后来感觉用了5年的服务器已经够本了,就换了一台新服务器,IBM X255
MP 2.0*2 ,512M*4, 用起来感觉有质的飞跃,当时爽歪了!如今有过了3年多,正准备再换新服务器,4个双核CPU,8G内存,直接爽到顶点。当然非IBM不买,8年多5台IBM服务器从未有1台出问题,除了风扇硬是转坏了1个。在此告诉大家两个秘诀:1、必须买IBM原厂原装件,打死也不要图便宜买OEM件,虽然价格只有原厂件的十分之一,但出问题的几率高1000倍,尤其是不要被中间商骗了,拿OEM件当原厂件卖你,倒是你就哭吧!同样是一条内存OEM的200元、原厂的2000元,那质量能一样吗,动下脑筋就知道了。2、每半年一定要给服务器大清扫,把整个服务器拆开,用吹风机把灰尘吹干净。灰尘是硬件杀手,在干净的机房也会有灰尘,清理灰尘是绝对必须的,提醒一下,做raid5的,硬盘抽出时,一定要记清楚顺序,否则就费了,切记切记!
[解决办法]
默认配置是DEDICATED服务器方式,数据库使用的sga + pga大概只有200多Mb内存,前提是应用正常,没有出现死循环啥的,导致session pga比较大,甚至超过sga + pga
按楼主的设置看了一下:
SQL> show sga

Total System Global Area 135338868 bytes
Fixed Size 453492 bytes


Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
SGA的最大只有135338868,大概130Mb
shared_pool_size 缓存解析完成的sql,如果不够大,一般会出现ora04031错误;
large_pool_size 由于默认设置DEDICATED方式,不是MTS方式,所以主要用于保存并行查询信息或者rman的备份啥的,当前是8Mb,不是特别大,感觉上应该不是错误原因;
Data buffer 缓存dbblock,如果不够大的话,导致频繁去磁盘读取数据,也不大可能产生ora040030错误啊

SQL> show parameters pga

NAME TYPE VALUE
------------------------------------ ---------------------- --------------------
----------
pga_aggregate_target big integer 25165824
PGA最大只有25165824,大概24Mb,用于排序啥的,如果内存中PGA排序空间不够的话,会使用临时表空间进行磁盘排序

监控一下应用出错之前应用在进行什么操作,看看那些操作消耗了大量的内存,确定问题出现的原因,解决方案就容易出来啊



[解决办法]
那估计是windows的内存分配问题,单进程最大内存数有限制,查下看是配置问题还是需要打补丁呀
[解决办法]
这个缺省参数如何能满足要求?
pga_aggregate_target=25165824
sort_area_size=524288
shared_pool_size=50331648
db_cache_size=25165824
请先检查应用程序,如果应用程序没有问题,请用如下配置尝试:
pga_aggregate_target=268435456
sort_area_size=8388608
shared_pool_size=314572800
db_cache_size=1073741824