当前位置:  数据库>oracle

Oracle rebuild index 报ORA-01652 解决办法

    来源: 互联网  发布时间:2017-04-09

    本文导语: 一朋友就说rebuild index 报ORA-01652错误。并且temporary tablespace 是足够大的。 rebuild 索引是6G,indextablespace 剩余空间是2G。让朋友把index tablespace 空间增加10G,在rebuild index成功。 之前整理过的一篇有关rebuildindex 的文章: Oracle alter in...

一朋友就说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.

 

           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.

           , 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 至少要提供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.

  

/* 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;


    
 
 

您可能感兴趣的文章:

  • oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法
  • 关于系统重装后Oracle数据库完全恢复的解决办法
  • Linux系统下安装Oracle X11错误解决办法
  • oracle中文乱码解决的办法
  • Oracle安装后8080和80端口被占用的解决办法
  • Oracle em中按钮乱码解决办法
  • Oracle 11G SELinux原因启动失败的解决办法
  • Oracle安装后8080和80端口被占用的解决办法 iis7站长之家
  • Oracle 实现类似SQL Server中自增字段的一个办法
  • oracle em 按钮乱码解决办法及em网页变成英文
  • 用jsp连上oracle后,在JSP中用(INSERT)插入中文数据后,显示乱码,有办法吗?
  • Oracle 8i字符集乱码问题析及其解决办法
  • PDO取Oracle lob大字段,当数据量太大无法取出的问题的解决办法
  • Linux 下数据库oracle出现ORA-27102错误的解决办法
  • Oracle中被锁定的解决办法
  • Oracle控制文件的损坏或完全丢失的恢复办法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 解决oracle用户连接失败的解决方法
  • Oracle Connect to Idle Instance解决方法
  • Linux下安装Tomcat后与Oracle冲突的解决
  • linux下安装oracle,出现没有权限的报警,怎么解决?
  • 安装Oracle加载数据库错误areasQueries的解决
  • Oracle 11g 相关工具netca,dbca乱码之解决
  • Linux安装Oracle 11时报错DISPLAY解决方案
  • Linux下Oracle安装时遇到的问题及解决
  • 简单的Oracle小问题解决
  • 安装oracle9时,安装界面的字体无法正确显示,怎么解决啊???
  • oracle 实际值超过数据库某个字段指定长度报错解决
  • Linux下命令行启动oracle时报错的解决
  • 急!急!jbuilder中新建oracle数据源的问题,解决立即给分!
  • Linux中安装Oracle乱码问题的解决
  • Oracle与JSDK4.0环境变量冲突,如何解决(在线等待)?
  • Linux下Oracle 10G DBCA等汉字乱码解决方法
  • oracle的job不能运行问题的解决方法
  • 我用jbuilder调用oracle的数据库,但其中的中文显示的是乱码,怎么解决?
  • Linux下安装Oracle 10G提示“bad interpreter: 权限不够”的解决
  • Oracle捕获问题SQL解决CPU过渡消耗
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3