yangtingkun
===========================================================
一个8i上的错误ORA-3232
===========================================================

今天同事问我一个错误,错误号ORA-03232,在9i的错误参考文档中,居然没有找到,刚开始还认为是10g的错误,后来才发现原来是8i上的错误。

好长时间没有接触Oracle8i的数据库,正好把错误解决过程记录下来,留做备忘。


由于是远程指导操作,很多信息没有得到。同事告诉我的错误信息为:ORA-03232,错误描述是:无法分配 9 (源于表空间 3) 的区。

由于手头没有8i的文档可查,根据个人感觉似乎是表空间不足,通过判断错误应该发生在TEMP表空间。

而且,数据库分配给TEMP表空间的数据文件大小只有1G,因此凭感觉就给TEMP表空间增加了1G的空间。

但是问题仍然存在,通过查询文档才发现,不是空间不够用,而是Oracle在分配空间是出的问题:

ORA-3232: unable to allocate an extent of %s blocks from tablespace %s

Cause: An attempt was made to specify a HASH_MULTIBLOCK_IO_COUNT value that

is greater than the tablespace's NEXT value

Action: Increase the value of NEXT for the tablespace using ALTER TABLESPACE

DEFAULT STORAGE or decrease the value of HASH_MULTIBLOCK_IO_COUNT.

看来是由于临时表空间的NEXT参数小于了HASH_MULTIBLOCK_IO_COUNT*DB_BLOCK_SIZE的值造成的。

HASH_MULTIBLOCK_IO_COUNT的值是0,说明Oracle自动计算每次需要使用的值。

知道了问题的原因,解决到也不麻烦,一个是将HASH_MULTIBLOCK_IO_COUNT设置为非0值,且小于NEXT参数的设置,另一中方法是增大TEMP表空间的NEXT默认存储参数。

于是,运行SQLALTER TABLESPACE TEMP DEFAULT STORAGE (NEXT 512K)问题解决。

9i及以上版本,废除了HASH_MULTIBLOCK_IO_COUNT这个初始化参数,因此这个错误也不会发生了。

yangtingkun 发表于:2006.09.08 17:02 ::分类: ( ORACLE , Bug ) ::阅读:(1687次) :: 评论 (0)

发表评论
标题

在此添加评论
表情符号: smile laughing tongue angry crying sad wassat wink

称呼

邮箱地址(可选)

个人主页(可选)

 authimage


切换风格
新闻聚合
博客日历
文章归档...
最新发表...
最新评论...
最多阅读文章...
最多评论文章...
博客统计...
Blog信息
网站链接...