今天收到一个告警,提示无法扩展永久表空间,告警如下
ORA-1652: unable to extend temp segment by 128 in tablespace PROD_DATA ORA-1652: unable to extend temp segment by 8192 in tablespace PROD_DATA
感觉很疑惑,查了以后才明白,原来临时段不一定是临时表空间中的排序段,还用于在永久表空间中创建或删除表和索引等对象时的临时情况。跟这两天正在排查的问题正好对应上,最近系统处理逻辑有点问题,总是在删除重建某几张表。
引用:OERR: ORA-1652 “unable to extend temp segment by %s in tablespace %s” Reference Note (Doc ID 19047.1)
Support Notes for ORA-01652
This error is fairly self explanatory - we cannot get enough space for a temporary segment.
The size reported in the error message is the number of contiguous free Oracle blocks that cannot be found in the listed tablespace.
NOTE:
A “temp segment” is not necessarily a SORT segment in a temporary tablespace. It is also used for temporary situations while creating or dropping objects like tables and indexes in permanent tablespaces.
eg: When you perform a CREATE INDEX a TEMP segment is created to hold what will be the final permanent index data. This TEMP segment is converted to a real INDEX segment in the dictionary at the end of the CREATE INDEX operation. It remains a temp segment for the duration of the CREATE INDEX operation and so failures to extend it report ORA-1652 rather than an INDEX related space error.





