原文地址:http://blog.csdn.net/ljsjr/article/details/11093687
- 今天整理下环境的时候,安装了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 - Production
- PL/SQL Release 11.2.0.3.0 - Production
- CORE 11.2.0.3.0 Production
- TNS for 32-bit Windows: Version 11.2.0.3.0 - Production
- NLSRTL 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
- ------------
- OPEN
- SQL> select name from v$database;
- NAME
- ---------
- DB_JOYCE
- SQL> 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.DBF
- E:\APP\DB_JOYCE\ORADATA\DB_JOYCE\SYSAUX01.DBF
- E:\APP\DB_JOYCE\ORADATA\DB_JOYCE\UNDOTBS01.DBF
- E:\APP\DB_JOYCE\ORADATA\DB_JOYCE\USERS01.DBF
- E:\APP\DB_JOYCE\ORADATA\DB_JOYCE\CONTROL01.CTL
- E:\APP\DB_JOYCE\FAST_RECOVERY_AREA\DB_JOYCE\CONTROL02.CTL
- E:\APP\DB_JOYCE\ORADATA\DB_JOYCE\REDO03.LOG
- E:\APP\DB_JOYCE\ORADATA\DB_JOYCE\REDO02.LOG
- E:\APP\DB_JOYCE\ORADATA\DB_JOYCE\REDO01.LOG
- 已选择9行。