热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Oraclerebuildindex报ORA-01652解决办法-mysql教程

一朋友就说rebuildindex报ORA-01652错误。并且temporarytablespace是足够大的。rebuild索引是6G,indextablespace剩余空间

一朋友就说rebuild index 报ORA-01652错误。并且temporary tablespace 是足够大的。 rebuild 索引是6G,indextablespace 剩余空间

一朋友就说rebuild index 报ORA-01652错误。并且temporary tablespace 是足够大的。 rebuild 索引是6G,indextablespace 剩余空间是2G。让朋友把index tablespace 空间增加10G,在rebuild index成功。

之前整理过的一篇有关rebuildindex 的文章:

Oracle alter index rebuild 说明

关于这个问题MOS 上有2篇文档进行了相关的说明:[ID 94178.1] 和 [ID 120360.1]。

执行如下命令时:

ALTER INDEX REBUILD or

ALTER TABLE MODIFY PARTITION REBUILD LOCALINDEXES

可能会遇到ORA-01652的错误, 该错误详细解释如下:

ORA-01652:unable to extend temp segment by %s in tablespace %s

Cause: Failed to allocate an extent for temp segmentin tablespace.

Action:Use ALTER TABLESPACE ADD DATAFILE statement to add one or more files to thetablespace indicated or create the object in other tablespace.

解决方法:

You will have to increase the amount of available free space in the index tablespaceeither by adding another datafile or enabling autoextend on an existingdatafile.

--增加索引表空间添加数据文件或者将数据文件改成autoextend。

解释:

Thetablespace in the error message is pointing to the index's tablespace insteadof the user's default temporary tablespace.

During an index rebuild, there are two types oftemporary segments involved.

First, there are the temporarysegments that are used to store partial sort data when the SORT_AREA_SIZE istoo small to process the complete sort set. These segments are built in theuser's default TEMPORARY tablespace.

Second, as the index is being rebuilt, it uses a segment which is defined as atemporary segment until the rebuild is complete. Once this segment is fully populated,the old index can be dropped and this temporary segment is redefined as apermanent segment with the index name.

--在索引rebuild 期间,会产生2种temporary segments。

第一种是用来排序的temporarysegments,当SORT_AREA_SIZE 的值太小时,该segments 会在用户默认的temporary tablespace 空间分配。

第二种是在用户索引空间的segments,在rebuild index时,会分配一个temporary segment 来保存索引的信息,当rebuild 结束之后,old index 被droped 掉,,之前分配的temporary segments 会定义为permanent segment。

所以对索引进行rebuild 至少要提供1倍以上的空闲空间来存放temporary segment。 否则就会出现ORA-01652的错误。

The error you are seeing is probably due to there being insufficient room in theindex's tablespace to hold both the original index and the new version concurrently.The new version of the index, currently a temp segment, will be in thetablespace where the index is required.

As an index is being rebuilt, it uses a segment which is defined as a temporarysegment for the rebuild. Once this segment is fully populated, the allocationof the old index is set to temporary and the populated temporary segment isredefined as a permanent segment with the index name.

Now if the storage clause (next extent for example) for the existing index is setto a very high number (64MB or so) and you don't specify a storage clause withthe rebuild command Oracle will use the storage clause of the existing index toallocate the space for the temporary segments.

This will allocate a lot of (unneeded) space and so you will run into the ora-1652.

可以检查索引storageclause的配置,看这些值是否合适。

/* Formatted on 2011/8/3 12:27:36(QP5 v5.163.1008.3004) */

SELECT OWNER,

INDEX_NAME,

TABLESPACE_NAME,

INITIAL_EXTENT,

NEXT_EXTENT,

MIN_EXTENTS,

MAX_EXTENTS,

PCT_INCREASE

FROM dba_indexes;

linux

推荐阅读
  • 深入解析Java SE、Java EE和Java Web的核心知识体系
    通过一系列图表全面解析Java SE、Java EE与Java Web的核心知识体系,帮助开发者快速掌握这些关键技术领域的要点。 ... [详细]
  • 本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ... [详细]
  • Python网络编程:深入探讨TCP粘包问题及解决方案
    本文详细探讨了TCP协议下的粘包现象及其产生的原因,并提供了通过自定义报头解决粘包问题的具体实现方案。同时,对比了TCP与UDP协议在数据传输上的不同特性。 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • PHP中Smarty模板引擎自定义函数详解
    本文详细介绍了如何在PHP的Smarty模板引擎中自定义函数,并通过具体示例演示了这些函数的使用方法和应用场景。适合PHP后端开发者学习。 ... [详细]
  • 本文探讨了在无法使用个人身份信息的情况下,利用他人(如网络上公开的个人信息)注册游戏账号的行为及其潜在的法律和道德问题。 ... [详细]
  • 本文由chszs撰写,详细介绍了Apache Mina框架的核心开发流程及自定义协议处理方法。文章涵盖从创建IoService实例到协议编解码的具体步骤,适合希望深入了解Mina框架应用的开发者。 ... [详细]
  • 本题提供了一个区间数组 intervals,其中每个区间 intervals[i] 包含两个整数 [starti, endi],并且所有 starti 值各不相同。任务是找到每个区间的右侧区间,即存在一个区间 j 满足 startj >= endi 并且 startj 是尽可能小的。返回一个数组,该数组包含每个区间右侧区间的索引;如果没有合适的右侧区间,则返回 -1。 ... [详细]
  • 本文介绍了使用Python和C语言编写程序来计算一个给定数值的平方根的方法。通过迭代算法,我们能够精确地得到所需的结果。 ... [详细]
  • C/C++ 应用程序的安装与卸载解决方案
    本文介绍了如何使用Inno Setup来创建C/C++应用程序的安装程序,包括自动检测并安装所需的运行库,确保应用能够顺利安装和卸载。 ... [详细]
  • 本文提供了一个关于AC自动机(Aho-Corasick Algorithm)的详细解析与实现方法,特别针对P3796题目进行了深入探讨。文章不仅涵盖了AC自动机的基本概念,还重点讲解了如何通过构建失败指针(fail pointer)来提高字符串匹配效率。 ... [详细]
  • 10月19日,限量免费参与IBM云计算大会
    10月19日,限量免费报名参加IBM云计算大会,探索前沿科技,推动商业转型。 ... [详细]
  • 本报告记录了嵌入式软件设计课程中的第二次实验,主要探讨了使用KEIL V5开发环境和ST固件库进行GPIO控制及按键响应编程的方法。通过实际操作,加深了对嵌入式系统硬件接口编程的理解。 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • LeetCode 102 - 二叉树层次遍历详解
    本文详细解析了LeetCode第102题——二叉树的层次遍历问题,提供了C++语言的实现代码,并对算法的核心思想和具体步骤进行了深入讲解。 ... [详细]
author-avatar
l38484676
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有