Oracle TEMP Tablespace Administration
Oracle TEMP Tablespace Administration
Oracle TEMP Tablespace Administration
Objetivo Procedimiento Server Files ASM Files Oracle Managed Files Problemas
Objetivo
La intencin es proceder a ajustar el espacio del tablespace temporal de oracle. Por lo general estaremos en una situacin de falta de espacio fsico en el servidor y habremos observado que el datafile perteneciente al tablespace temporal de nuestra instancia ha crecido por encima de lo esperado/deseado.
Procedimiento
El procedimiento consistir en crear un nuevo tablespace temporal del tamao deseado (si es posible) o de un tamao reducido de forma que, podamos primero cambiar la configuracin de base de datos para que tome el nuevo tablespace temporal como opcin por defecto, y podamos posteriormente borrar el tablespace de tamao desmedido y su datafile asociado. En detalle tenemos que los pasos son: CREATE TEMP TABLESPACE NEW_TEMP; ALTER DATABASE DEFAULT TEMP TABLESPACE NEW_TEMP; DROP TABLESPACE OLD_TEMP; El detalle variar segn el layout de escritura a disco que tengamos configurado, as podemos tener: Server_files, ASM_files, Oracle_files.
Server Files
Estos son ficheros .dbf normales manejados por el sistema operativo. change temp tablespace
CREATE TEMPORARY TABLESPACE temp2 TEMPFILE '/export2/oracle/oradata/datawh/temp02.dbf' SIZE 10M REUSE AUTOEXTEND ON NEXT 1M MAXSIZE unlimited EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M; ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP2; DROP TABLESPACE temp INCLUDING CONTENTS AND DATAFILES; CREATE TEMPORARY TABLESPACE temp TEMPFILE '/export2/oracle/oradata/datawh/temp01.dbf' SIZE 512M REUSE AUTOEXTEND ON NEXT 16M MAXSIZE unlimited EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M; ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp; DROP TABLESPACE temp2 INCLUDING CONTENTS AND DATAFILES;
Aqui tenemos 2 operaciones de creado y borrado de tablespace. Podra ser que necesitsemos que el tablespace temporal deba llamarse "temp" o que queramos que el tablespace temporal se inicie con 512Mb y no tuviesemos suficente espacio al principio para asignarle al "temp2". De ah que una vez ya borrado, volvemos a crear el "temp" con el tamao deseado y eliminamos el "temp2".
ASM Files
Son archivos son gestionados por una instancia ASM independiente de la instancia de nuestra base de datos principal. Se trata de una capa
lgica independiente del sistema operativo en donde oracle puede ocuparse de la administrcin de discos y volumenes, as como tambien de mirroring, stripping, File Groups y otros conceptos. Mas info en OracleFaq. ASM_INSTANCE: +ASM ASM Files
CREATE TEMPORARY TABLESPACE TEMP2 TEMPFILE '+DGRID_DATA' SIZE 512M AUTOEXTEND ON NEXT 640K; ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP2; DROP TABLESPACE TEMP;
Vemos como aqu no hace falta dar detalles del datafile en la creacin del tablespace. Son manejados automticamente por la instancia +ASM. Tampoco es necesaria la instruccin "INCLUDING CONTENTS AND DATAFILES" al borrar el tablespace. ASM se encarga.
Problemas
Drop temp tablespace hangs Problem Description The DROP temporary tablespace operations take long time and in fact it hangs. If you take a 10046 trace of the session it shows "enqueue" wait.
Cause of The Problem: In the section http://arjudba.blogspot.com/2008/05/operation-that-require-sort-area-or.html I discussed about the operation that needs sort space. Whenever an operation is using sort space an entry is found in the v$sort_usage. After the operation finishes entry from $sort_usage vanishes. But dead connections (while running a query) may leave entries in v$session (status inactive) and in v$sort_usage. The query about the users who is Performing Sort operation in Temp Segments can be found in http://arjudba.blogspot.com/2008/05/information-about-temporary-segments.html Find out the all the sessions that are not active and have an entry in V$sort_usage.
SELECT A2.TABLESPACE, A2.SEGFILE#, A2.SEGBLK#, A2.BLOCKS, A1.SID, A1.SERIAL#, A1.USERNAME, A1.OSUSER, A1.STATUS FROM V$SESSION A1,V$SORT_USAGE A2 WHERE A1.SADDR = A2.SESSION_ADDR;