limpiar y recrear el tablespace temporal en Oracle 11g

enero 18, 2012
admin

Confused-Robot

Muchas veces cuando nos quedamos sin espacio en la base de datos o a causa de algun problema que nos de con el tablespace temporal.

El tablespace es un espacio logico para poder guardar las tablas, algo asi como una caja de carton donde guardas hojas, cada usuario tiene un tablespace definido para guardar sus cosas y varios usuarios pueden compartir el mismo tablespace.
Primero lo primero, por cada instancia en la base de datos, es necesario tener 3 cosas, el tablespace de datos, el tablespace de UNDO y el tablespace TEMPORAL.


En este tablespace es donde se guardan tablas temporalmente solo para crear un resultado y se limpia automaticamente al terminar la sesion.

1er paso.-
Se crea un tablespace temporal nuevo en la ruta que deseamos:

 create temporary tablespace TEMPORALNUEVO tempfile '/ruta-donde/estanlos/datafiles/TEMPN.dbf' size 5000M autoextend off;

con este comando estamos creando un nuevo archivo de tablespace de 5000M (5Gb) en la ruta donde estan los tablespaces, pero este tablespace aun no esta en uso.

2do paso.-
El segundo paso es cambiar el tablespace temporal que existe por default en la base de datos, ejecutando el siguiente comando:

 alter default database  temporary tablespace TEMPORALNUEVO;

con este comando cambiamos la ruta del temporal para todos los usuarios, liberando el tablespace viejo y ahora usando el nuevo.

3er paso.-
Como ya cambiamos los tablespaces temporales ya no ocuparemos el tablespace temporal antiguo ya que no se encuentra asignado a ningun usuario y solo nos ocupa espacio, para poder eliminarlo ejecutamos

 drop tablespace TEMPVIEJO;

De esta manera eliminamos el tablespace que ya no usamos.

Otros comandos:

Cuando creamos usuarios al momento de crearlo podemos asignarle un tablespace de datos y un temporal especificamente para este usuario, con el siguiente comando:

CREATE USER juanito DEFAULT TABLESPACE datos TEMPORARY TABLESPACE temporalnuevo IDENTIFIED BY passwordnuevo;

con esto creamos el usuario “juanito” con el password “passwordnuevo” y todas sus tablas se grabaran en el tablespace “datos” y sus temporales iran a “temporalnuevo”.

Para cambiar el temporal a un usuario existente es con el siguiente comando:

ALTER USER juanito TEMPORARY TABLESPACE tempnuevo;

2 Comments. Leave new

Solo una anotación (el resto perfecto), falta default:

alter database DEFAULT temporary tablespace TEMPORALNUEVO;

Responder

Muchas gracias, ya lo acabo de corregir

Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *