系统程序(使用Oracle数据库)突然出现错误,提示错误原因:ORA-03232,无法分配18块(源于表空间3)的区。到网上查了一下,“出现这个错误是由于哈希连接时顺序读取或写入的连续数据块大小大于相应表空间的next_extent值而引发的”,不过也有人建议不要随便修改HASH_MULTIBLOCK_IO_COUNT,而只修改增大表空间的next值(next extend)。
首先确定下表空间3是哪个表空间,进入服务器系统的命令行状态(装的是windows 2000 server,运行CMD),输入sqlplus命令,用oracle数据库的用户密码登录,再在SQL提示符后输入以下命令:
select * from v$tablespace where ts#=3;
显示表空间3的name是TEMP,再输入命令:
select initial_extent,next_extent from dba_tablespaces where tablespace_name='TEMP';
显示TEMP的初始大小、next_extent大小,发现默认的next值只有64K,再查下块大小:
show parameter db_block_size
显示大小为8192,8192X18=144k的值大于64K,所以无法分配,只要把next extent增大:
alter table TEMP storage(next 1M);
也有人的做法是,把TEMP删掉重建这个表空间,如:
drop tablespace temp including contents;
create tablespace temp tempfile 'd:\oradata\temp01.dbf' size 300M extent management local uniform size 2M;
当然直接从DBA的存储中改表空间的next_extent值也可以。
以上参考:http://www.itpub.net/thread-271012-1-1.html
>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/1090.html