ITPub博客

首页 > 数据库 > Oracle > ORA-1652: unable to extend temp segment by xxx in tablespace XXXXX

ORA-1652: unable to extend temp segment by xxx in tablespace XXXXX

原创 Oracle 作者:linfeng_oracle 时间:2013-12-10 11:35:07 0 删除 编辑

今天客户反映,创建表失败,临时表空间使用率100%。

查看数据库,发现有一个临时表空间使用率100%,但数据库目前没有用户使用它。

Status    Name                           Type      Extent     Size (M)        Used (M)        Used %
--------- ------------------------------ --------- ---------- --------------- --------------- ---------------
ONLINE    TEMP3                          TEMPORARY LOCAL          409,600           31,976       7.81
ONLINE    TEMP                           TEMPORARY LOCAL          153,600          153,599     100.00
ONLINE    TEMP2                          TEMPORARY LOCAL          160,000          113,702      71.06


TEMPORARY_TABLESPACE
--------------------
TEMP3              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              
TEMP2              


查看后台日志,发现是永久表空间报错。ORA-1652: unable to extend temp segment by xxx in tablespace XXXXX

ORA-1652: unable to extend temp segment by xxx in tablespace由于表空间容量不足而导致的创建表/索引等段对象的时候经常会出现ORA-1652错误,但是提供的信息确实unable to extend temp segment by 1024 in tablespace。 这让很多的人感到不解。提示的表空间并不是存放temp segment的临时表空间,而是永久表空间。

其实在ORACLE进行空间分配的时候首先分配的空间是TEMPORARY SEGMENT在各项操作都完成的最后,在将这个TEMPORARY SEGMENT转变为PERMANENT SEGMENT。 知道了这个过程我们就可以理解为什么在空间不足时创建段为什么提示的是临时段表空间了, 因为最先分配的都是临时段空间,在之后才将其转换为永久段对象。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24996904/viewspace-1062881/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-09-14

  • 博文量
    78
  • 访问量
    454353