Como solucionar el error FIX ORA-1652: unable to extend temp segment by ... in tablespace TEMP

Pues eso amig@s,

Si nos encontramos con el error ORA-1652 al realizar un export o al consultar los objetos de nuestro usuario, se debe a que Oracle es incapaz de ampliar el tablespace Temporal (TEMP).

Este fallo persiste por más que borremos o recreemos el tablespace Temporal. Para saber cual es tamaño actual que está detectando Oracle, debemos ejecutar la siguiente consulta como SYS:

SELECT   A.tablespace_name tablespace, D.mb_total,
SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_used,
D.mb_total – SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_free
FROM     v$sort_segment A,
(
SELECT   B.name, C.block_size, SUM (C.bytes) / 1024 / 1024 mb_total
FROM     v$tablespace B, v$tempfile C
WHERE    B.ts#= C.ts#
GROUP BY B.name, C.block_size
) D
WHERE    A.tablespace_name = D.name
GROUP by A.tablespace_name, D.mb_total;

Una vez que detectemos que efectivamente en el campo mb_free queda muy poco espacio (recordar que el valor que devolverá la query es en megas) procederemos ha ampliar el tablespace TEMP, para ello ejecutaremos como SYSDBA la siguiente instrucción:

Primero obtenemos el nombre y la ruta del tablespace TEMP:

select file_name , TABLESPACE_NAME from DBA_TEMP_FILES;

Ejemplo: c:\oracle\oradata\orcl\temp01.dbf   TEMP

Luego ejecutamos la instrucción para ampliar el tablespace temporal:

ALTER DATABASE TEMPFILE 'c:\oracle\oradata\orcl\temp01.dbf’ RESIZE 3072M;

Cuando Oracle termine de ampliar el tablespace, el error Ora-1652 quedará solucionado.

Espero que les resulte útil.

Salu2.
Share on Google Plus
    Blogger Comment

1 comentarios:

Pablo Vicente dijo...

¿hasta cuanto se puede ampliar? ¿es decir hay un limite? es un dolor de cabeza cuando se te llena mas de una vez. gracias!