设为首页 加入收藏 网站搜索 繁體中文 中国建站网 — 站长资源平台

分析和解决ora-4030错误

来源本站整理 作者:佚名 时间:2006-2-26 2:56:04 该文得分0

  
分析和解决ora-4030错误



ORA-4030意味着什么?



    这个错误意味着oracle服务器进程不能从操作系统获得更多的内存。这里的内存指的是PGA(程序全局区)以及由配置决定的它的子项。对于专用的服务器进程,内存包括堆栈区、UGA(用户全局区)。UGA包括用户会话数据、游标信息和排序区。在多线程配置中(共享服务器),UGA处于SGA(系统全局区)中,它不会造成ora-4030错误。



    因此,ora-4030意味着进程需要更多的内存(堆栈、UGA或者PGA)来执行它的工作。



是什么引起了这个错误?



这个错误表示操作系统不能分配足够的内存。这个错误可能是你的进程本身引起的,例如你的进程需要太多的内存,或者其它的原因引起操作系统内存枯竭,例如SGA区分得太大或者太多的进程竞争系统虚拟内存(物理内存+交换分区)。许多操作系统会限制某个进程获得的内存以保证系统稳定。



请按以下步骤检查你的系统:



·       是否仍有足够的内存供分配?



·       操作系统是否有限制?



·       Oracle数据库是否有限制?



·       哪一个进程需要过多的内存?



·       如何收集那个(需要过多内存的)进程正在做什么的信息?



这些将在下一节里



进一步讨论主题:



·       避免此类错误的一般建议



·       参考



是否仍有足够的内存供分配?



    要回答这个问题,我们需要使用操作系统特定的工具来检测内存使用情况。



1.OpenVMS系统:显示那些能告诉你物理内存和页面文件使用情况的信息。



Physical Memory Usage (pages):



Total         Free         In Use           Modified       Main Memory (256.00Mb)       32768          24849           7500               419



……



Paging File Usage(blocks):




 


Free  Reservable Total



DISK$BOBBIEAXPSYS:[SYS0.SYSEXE]SWAPFILE.SYS  30720  30720      39936 DISK$BOBBIEAXPSYS:[SYS0.SYSEXE]PAGEFILE.SYS  2261    60201088  249984  DISK$BOBBIE_USER3:[SYS0.PAGEFILE]PAGEFILE.SYS 462224  405296  499968



    作为一般的原则,页面文件中的空闲容量总量应该不低于总容量的一半。交换文件应该几乎不使用,空闲的容量应该几乎和总容量一样。



1.Windows系统:在任务管理器中查看内存使用情况。



2.Unix系统:每一个Unix系统都有自己的工具来检测全部内存的使用情况,例如top,vmstat…..,并且每一个系统都有所不同。



o        top常用来显示物理内存和交换空间的情况。



o        swapon –s 显示交换空间使用情况



o        vmstat 显示空闲物理内存情况



Sample top output on Linux:



在Linux上“top”的输出例子:



top - 10:17:09 up  1:27,  4 users,  load average: 0.07, 0.12, 0.05



Tasks: 110 total,  4 running, 105 sleeping,   0 stopped,   1 zombie



Cpu(s):  0.3% user,  1.6% system,  0.0% nice,  98.0% idle



Mem:  1033012k total,  452520k used,  580492k free,  59440k buffers



Swap:  1052248k total,  0k used,    1052248k free,  169192k cached



.....



如果有足够的内存,那么请检查一下是否操作系统有强制限制。如果内存被耗尽了,我们就要找出这些内存被用在了哪里。



操作系统是否有限制?



如果仍有充足的虚拟内存剩余,可能是我们不能使用申请使用的那部分内存。请检查操作系统是否有限制。



1.OpenVMS系统:要检查你能使用的物理内存的总量,请检查工作(页面)区配额(working set quotas)和页面文件配额(pagefile quota)。请查询OpenVMS使用指南确定配额情况和如何修改它们。根据使用进程的不同以及启动它们方式的不同,配额使用将不同于oracle的统计。Process/id=<process id>/quota将显示对于一个特定的进程还有多少剩余配额可使用。



UAF> show oracle7



Username: ORACLE7               Owner:  Oracle7 DBA



Account:  SUPPORT               UIC: [200,2] ([SUPPORT,ORACLE7])



CLI:   DCL                  Tables: DCLTABLES



Default:  DISK$BOBBIE_USER1:[ORACLE7]



LGICMD:   LOGINFlags:



Primary days:     Mon    Tue    Wed    Thu    Fri



Secondary days:                     Sat    Sun



No access restrictions



Expiration:    (none) Pwdminimum: 6   Login Fails: 0



Pwdlifetime:   (none) Pwdchange:   3-DEC-1997 15:38



Last Login: 27-MAY-2003 14:54 (interactive), 26-MAY-2003 16:15 (non-interactive)



Maxjobs: 0  Fillm:  1200  Bytlm:  180000



Maxacctjobs:0 Shrfillm:  0  Pbytlm:    0



Maxdetach: 0 BIOlm:  500  JTquota:  8192



Prclm: 20  DIOlm:  500  WSdef:   2500



Prio:  4  ASTlm:  4000  WSquo:  4096



Queprio:0  TQElm:  4000  WSextent:  30000



CPU: (none) Enqlm: 18000  Pgflquo:   750000



Authorized Privileges: .....



$ sho proc/id=20200139/quota



24-JUN-2003 12:30:54.39 User: ORACLE7 Process ID: 20200139



        Node: BOBBIE  Process name: "ORA_BOB901_PMON"



Process Quotas:



Account name: SUPPORT



CPU   limit:  Infinite  Direct I/O limit:100



Buffered I/O byte count quota:   9994816  Buffered I/O limit: 100



Timer queue entry quota: 99  Open file quota:29997



Paging file quota: 145968  Subprocess quota: 10



Default page fault cluster:64  AST quota: 496



Enqueue quota: 49995  Shared file limit: 0



Max detached processes: 0  Max active jobs: 0



2.Windows系统:在微软的windows操作系统上,oracle进程集作为一个进程的许多线程来运行。地址空间不能超过2GB(包括堆栈、PGA、SGA)。这个限制可以突破到3GB或更高。(请看oracle文档<NOTE:46001.1>)。关于oracle数据库和Windows NT内存结构的情况,请查询技术公告板。Oracle进程使用的总的内存情况(不包括进程堆栈和代码)可以用query查看。



3.Unix系统:使用内置的shell命令: limit/ulimit。注意那些unlimited的不一定意

[1] [2] [3]  下一页

相关文章
广告赞助
网友评论

共有 0 位网友发表了评论,平均得分: 0 查看完整内容

用户名:

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

(注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码