查看: 3063|回复: 5

ORA-03232故障解决一例

[复制链接]
论坛徽章:
151
2014年新春福章
日期:2014-04-17 11:38:13奥运会纪念徽章:皮划艇静水
日期:2012-07-31 15:42:58奥运会纪念徽章:田径
日期:2012-07-10 16:21:10奥运会纪念徽章:跆拳道
日期:2012-06-20 22:07:29奥运会纪念徽章:皮划艇静水
日期:2012-06-16 02:55:21奥运会纪念徽章:曲棍球
日期:2012-06-13 10:09:19蛋疼蛋
日期:2012-05-19 23:20:41迷宫蛋
日期:2012-05-16 17:35:25版主2段
日期:2012-05-15 15:24:11双黄蛋
日期:2012-03-19 19:34:04
跳转到指定楼层
1#
发表于 2004-9-27 16:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ORA-03232故障解决一例:
    环境:windows2000 server+oracle817
        应用程序运行过程中报错,信息如下:
    ORA-03232:无法分配81块(源于表空间3)的区

首先根据错误号查Metalink(125271.1:How to Choose Extent Size for Temporary Tablespace to Prevent ORA-3232):
ORA-03232 unable to allocate an extent of string blocks from tablespace string
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.
This parameter determines how many sequential blocks a hash join reads and writes  in one IO operation. The maximum value is operating system dependent.   It is always less than the maximum I/O size of the operating
system expressed as  Oracle blocks (MAX_IO_SIZE / DB_BLOCK_SIZE).
由此我们得知出现这个错误是由于哈希连接时顺序读取或写入的连续数据块大小大于相应表空间的next_extent值而引发的。
我们首先根据错误信息查出错的表空间的信息:
SQL> select * from v$tablespace where ts#=3;

       TS# NAME
---------- ------------------------------
         3 TEMP

SQL> select initial_extent,next_extent,extent_management from dba_tablespaces where tablespace_name='TEMP';

INITIAL_EXTENT NEXT_EXTENT EXTENT_MANAGEMENT
-------------- ----------- -----------------
        262144       65536 DICTIONARY
我们看到出错的表空间为TEMP表空间,其next_extent大小为64K,采用字典管理方式。
再进一步看一下hash连接的情况:
SQL> show parameter hash_multiblock_io_count

NAME                                 TYPE        VALUE
------------------------------------ ----------- --------------------
hash_multiblock_io_count             integer     0

SQL> show parameter db_block_size

NAME                                 TYPE        VALUE
------------------------------------ ----------- -------
db_block_size                        integer     8192

SQL> select 81*8192 from dual;

   81*8192
----------
    663552
我们看到HASH_MULTIBLOCK_IO_COUNT采用的还是默认值0(MTS下则为1)。应用程序哈希连接要求连续写入81个数据块,大小为663552bytes,而表空间的next_extent值只为64KB,远小于此值,因此引发该错误。

根据metalink给出的建议,我们可以有两种方法解决此错误:
1、增大表空间的next值,使之等于或大于操作系统的IO大小(不同OS有不同的值)。语法参考:alter tablespace default storage(next 1M);
2、设置HASH_MULTIBLOCK_IO_COUNT为非0的值。

但是我们根据刚才的查询看到,TEMP表空间采用DMT方式。我们知道表空间在DMT方式下对性能有诸多影响,远不如LMT来的灵活。因此在处理该问题的时候我并没有按照metalink给出的两种建议去做,而是把temp表空间删除掉重建,采用本地管理的表空间,并设置uniform size(临时表空间设置uniform size的时候要注意与初始化参数中sort_area_size相结合,一般为sort_area_size的整数倍。我一般喜欢将sort_area_size设为1M,uniform size设为2M)。最终解决办法如下:
SQL> drop tablespace temp including contents;
SQL> create tablespace temp tempfile 'd:\oradata\temp01.dbf' size 300M
     extent management local uniform size 2M;
论坛徽章:
1
会员2006贡献徽章
日期:2006-04-17 13:46:34
2#
发表于 2004-12-20 10:30 | 只看该作者
谢谢版主,真天遇到了这个问题,在GOOGLE上一搜就来这里了。
问题也就解决了。感谢...

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
3#
发表于 2004-12-20 10:45 | 只看该作者
blue_prince10你好,
請問一個問題:
你是怎麼知道'应用程序哈希连接要求连续写入81个数据块'?(怎麼知道是81的呢?)
這個值是跟OS有關的嗎?

使用道具 举报

回复
论坛徽章:
1
ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:20
4#
发表于 2006-8-5 10:47 | 只看该作者
81是从错误信息来的

使用道具 举报

回复
论坛徽章:
1
ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:20
5#
发表于 2006-8-5 10:49 | 只看该作者
我只是修改了temp表空间的next段大小就可以了

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
122
马上加薪
日期:2014-02-19 11:55:14ITPUB官方微博粉丝徽章
日期:2011-06-28 19:45:36管理团队成员
日期:2011-05-07 01:45:082010广州亚运会纪念徽章:拳击
日期:2011-03-29 13:11:152010广州亚运会纪念徽章:篮球
日期:2011-02-20 22:50:172011新春纪念徽章
日期:2011-02-18 11:42:492011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
6#
发表于 2006-8-5 11:12 | 只看该作者
奇怪,怎么外面看名字是blue_prince10,还以为是马甲,进来怎么显示的又是blue_prince了

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表