`
xiexd
  • 浏览: 248646 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ORA-03232故障解决一例

阅读更多
查询oracle数据库的时候碰到ORA-03232故障,到网上找到文章,很详细说明,特转载如下


http://www.itpub.net/thread-271012-1-1.htmlORA-03232故障解决一例


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 temporary  tablespace temp tempfile 'd:\oradata\temp01.dbf' size 300M
     extent management local uniform size 2M;






注意:修改了temp表空间的next段大小也可以解决

分享到:
评论

相关推荐

    oracle数据库中ora-报错原因及处理

    以"ORA-01422"为例,这个错误通常发生在使用SELECT INTO语句时,如果查询返回多于一行的数据,就会触发这个错误。处理方法可能包括修改查询以确保只返回一行数据,或者使用BULK COLLECT INTO与FORALL语句进行批量...

    oracle 回闪日志 满了 ORA-03113 通信信道结束 进入 rman 删除日志

    ### Oracle回闪日志满了与ORA-03113错误处理 在Oracle数据库管理过程中,经常遇到的一些问题包括回闪日志...通过以上步骤,可以有效地解决Oracle回闪日志空间不足的问题以及ORA-03113错误,确保数据库系统的稳定运行。

    Oracle利用errorstack追踪tomcat报错ORA-00903 无效表名的问题

    在IT行业中,数据库管理和故障排查是关键技能之一。Oracle数据库是广泛应用的关系型数据库管理系统,而Tomcat是一款流行的Java应用服务器。当Tomcat在运行过程中遇到问题,如在执行SQL语句时抛出“ORA-00903: 无效...

    Oracle删除数据报ORA 02292错误的巧妙解决方法

    解决这个问题的一种巧妙方法如描述中所提到,分为以下几步: 1. **查询约束**:首先,我们需要了解哪些约束影响了我们的操作。通过执行`SELECT * FROM user_constraints WHERE constraint_name LIKE '%TB_ROLE%'`,...

    数据库备份两例故障的恢复与解决方法

    ### 数据库备份两例故障的恢复与解决方法 #### 一、引言 数据库作为现代信息系统的核心组成部分之一,其安全性和稳定性至关重要。然而,在实际应用过程中,由于多种因素的影响,如计算机系统的不稳定、人为失误等...

    oracle11g OCM 题库_第三场

    #### 故障列表示例 ```plaintext List of Database Failures ========================= Failure ID Priority Status Time Detected Summary ----------------------------------------------- 207 CRITICAL OPEN ...

    地震前兆Oracle数据库UNDO表空间持续增长修复.pdf

    在本例中,错误提示为ORA-08102和ORA-00600,这两个错误通常与索引不一致有关。为解决这个问题,需要对出现问题的索引进行重建,若索引无法重建,可能需要清空表(TRUNCATE)后再导入数据。 接着,当日志错误排除后...

    oracle OCP 认证试题

    - **场景描述**: 数据库处于归档模式,一个在线重做日志文件成员因为永久性介质故障丢失,导致实例崩溃。 - **问题分析**: - 数据库正在 ARCHIVELOG 模式下运行。 - 存在一个当前组成员的丢失。 - 需要高效地...

    instantclient-basic-windows.x64-11.2.0.4.0

    Oracle Instant Client是一款轻量级的数据库连接工具,主要用于在Windows平台上快速建立与Oracle数据库的连接,而无需完整安装Oracle数据库服务器。"instantclient-basic-windows.x64-11.2.0.4.0"是Oracle Instant ...

    Oracle 8i数据库恢复一例.pdf

    首先,故障诊断是恢复的第一步。当用户报告计算机启动时出现错误,提示D盘错误,这可能由非法关机或硬盘问题引起。通过查看日志和检查硬件状态,确定问题可能是由于停电导致的多次非法关机,以及硬盘可能存在坏道。 ...

    (绝对干货)Oracle ADG数据库完整部署、切换、备份、运维手册

    4. 打开 `tnsnames.ora` 文件并添加需要访问的数据库别名配置。 5. 使用PL/SQL Developer工具连接数据库。 #### 三、数据库的启动与关闭 对于Oracle ADG部署来说,启动和关闭数据库需要按照特定的顺序来进行。 **...

    自动备份Oracle数据库

    Oracle数据库的自动备份是系统管理员日常维护工作的重要环节,它确保了在系统出现故障时能够及时恢复数据,保障业务连续性。以下将详细介绍如何在UNIX环境下实现Oracle数据库的自动备份。 首先,Oracle数据库的自动...

    oracle面试1000例

    以下是对"Oracle面试1000例"这个主题的详细解析: 1. **Oracle基础知识**: - 数据库概念:了解数据库的基本构成,如表、视图、索引、存储过程、触发器等。 - SQL语言:掌握SQL的增删改查操作,了解子查询、连接...

    Oracle中分区表的使用

    以下是一个使用范围分区的例子,以物料交易表为例: 首先创建三个表空间,用于存储不同分区的数据。 ```sql CREATE TABLESPACE dinya_space01 DATAFILE '/test/demo/oracle/demodata/dinya01.dnf' SIZE 50M; CREATE ...

    中型三甲医院Oracle数据库坏块恢复方法探讨.pdf

    遇到Oracle数据库的逻辑坏块问题,例如ORA-01578错误,通常需要快速响应以减少数据丢失。首先,通过收集错误信息,如查看警告日志、使用SQL查询确定坏块所在的对象(表空间、段类型、所有者、段名称、分区名称),...

    ORACLE8.1.7数据库升级11.2g解决方案.pdf

    本文以 Oracle 8.1.7 升级到 11.2g 为例,详细阐述了升级过程的关键环节,旨在提供专业指导,解决服务器负载过重和并发数过多导致的问题。 1. **备份与恢复** 在任何数据库升级之前,数据的安全备份是首要任务。...

    GoldenGate部署步骤

    以下是一个简化的GoldenGate部署过程,以源库在CentOS 6.3上运行Oracle 10g,目标库在Windows 7上运行Oracle 11g为例: 1. **环境准备**: - 检查主机关系和操作系统:源库主机是CentOS 6.3,目标库主机是Windows ...

    exp/imp2导入导出

    - 本例中,数据文件的位置为 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora',初始大小为 5MB。 - 如果需要创建多个数据文件,可以在 CREATE TABLESPACE 命令中添加多个 DATAFILE 子句。 **4. EXTENT MANAGEMENT LOCAL** ...

Global site tag (gtag.js) - Google Analytics