ORA-04030: 在尝试分配 8389132 字节 (pga heap,redo read buffer

来源:互联网 发布:esxi mac os补丁下载 编辑:程序博客网 时间:2024/05/14 14:37

今天整理下环境的时候,安装了oracle 11.2.0.3.0的时候。遇到:ORA-04030: 在尝试分配 8389132 字节 (pga heap,redo read buffer) 时进程内存不足这个问题:SQL> select * from v$version;BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - ProductionPL/SQL Release 11.2.0.3.0 - ProductionCORE    11.2.0.3.0      ProductionTNS for 32-bit Windows: Version 11.2.0.3.0 - ProductionNLSRTL Version 11.2.0.3.0 - Production 初步从ORA-04030: 在尝试分配 8389132 字节 (pga heap,redo read buffer) 时进程内存不足以及告警日志上都会判断到是内存使用过多,分配不够造成。而又是属于本人的本本。这个问题可以排除那么只有第二种情况了:oracle在分配内存时,应该是有限制的,当超出这个限制的时,就会出现这个错误。(而本地库曾经用来导入相对与本来说比较大量的数据。而又安装不同的版本的数据库。)这句话经小事儿爹指导出言语不知道所言,经过思考确实言语不够严谨。特此修正。在此感谢下小事儿爹。 具体的解决办法:使用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  以下是解决后的验证:SQL> select status from v$instance;STATUS------------OPENSQL> select name from v$database;NAME---------DB_JOYCESQL> select name from v$datafile  2  union all  3  select name from v$controlfile  4  union all  5  select member from v$logfile;NAME--------------------------------------------------------------E:\APP\DB_JOYCE\ORADATA\DB_JOYCE\SYSTEM01.DBFE:\APP\DB_JOYCE\ORADATA\DB_JOYCE\SYSAUX01.DBFE:\APP\DB_JOYCE\ORADATA\DB_JOYCE\UNDOTBS01.DBFE:\APP\DB_JOYCE\ORADATA\DB_JOYCE\USERS01.DBFE:\APP\DB_JOYCE\ORADATA\DB_JOYCE\CONTROL01.CTLE:\APP\DB_JOYCE\FAST_RECOVERY_AREA\DB_JOYCE\CONTROL02.CTLE:\APP\DB_JOYCE\ORADATA\DB_JOYCE\REDO03.LOGE:\APP\DB_JOYCE\ORADATA\DB_JOYCE\REDO02.LOGE:\APP\DB_JOYCE\ORADATA\DB_JOYCE\REDO01.LOG已选择9行。


原创粉丝点击