Limpiar el tablespace Temporal
Hola colegas
Soy un novato en Oracle y tengo más ganas que conocimientos.
Tengo una base que diariamente recibe una gran carga de datos. Y justo hoy cuando estamos cargando esos datos se nos llenó el tablespace temporal (está en un 99%) y lo único que puedo hacer es aumentarle el tamaño.
Por qué el tablespace temporal crece tanto?
Cómo puedo limpiar ese tablespace? No puedo incrementarle el tamaño infinitamente.
Gracias
Soy un novato en Oracle y tengo más ganas que conocimientos.
Tengo una base que diariamente recibe una gran carga de datos. Y justo hoy cuando estamos cargando esos datos se nos llenó el tablespace temporal (está en un 99%) y lo único que puedo hacer es aumentarle el tamaño.
Por qué el tablespace temporal crece tanto?
Cómo puedo limpiar ese tablespace? No puedo incrementarle el tamaño infinitamente.
Gracias
Hola:
Cuando se crea una base de datos sin un tablespace temporal por defecto, se asigna el tablespace SYSTEM a cualquier usuario creado sin una clausula TEMPORARY TABLESPACE asociada.
Lo que puedes hacer es averiguar cuales son los usuarios que mas espacio consumen a través de la vista de diccionario V$SORT_USAGE y crear un tablespace temporal para ellos.
Es decir, 1ro creas un tablespace temporal
CREATE TEMPORARY TABLESPACE nombre_tablespace
TEMPFILE 'la_ruta_del_fichero' SIZE integer
EXTENT MANAGEMENT LOCAL
la clausula EXTENT MANAGEMENT LOCAL indica que el tablespace segestionará localmente, es decir, él solo gestionará el espacio que necesita.
2ºsuponiendo que has averiguado que el usuario fulano es el q mas espacio consume. le asignamos el tablespace temporal, creado anterioramente a fulano, asi:
ALTER USER fulano TEMPORARY TABLESPACE nombre_tablespace_temporal;
Y de aquà en adelante todos los segmentos temporales que se creen para la cuenta de fulano se crearán en ese tablespace.
SALUDOS, TAMARA
Cuando se crea una base de datos sin un tablespace temporal por defecto, se asigna el tablespace SYSTEM a cualquier usuario creado sin una clausula TEMPORARY TABLESPACE asociada.
Lo que puedes hacer es averiguar cuales son los usuarios que mas espacio consumen a través de la vista de diccionario V$SORT_USAGE y crear un tablespace temporal para ellos.
Es decir, 1ro creas un tablespace temporal
CREATE TEMPORARY TABLESPACE nombre_tablespace
TEMPFILE 'la_ruta_del_fichero' SIZE integer
EXTENT MANAGEMENT LOCAL
la clausula EXTENT MANAGEMENT LOCAL indica que el tablespace segestionará localmente, es decir, él solo gestionará el espacio que necesita.
2ºsuponiendo que has averiguado que el usuario fulano es el q mas espacio consume. le asignamos el tablespace temporal, creado anterioramente a fulano, asi:
ALTER USER fulano TEMPORARY TABLESPACE nombre_tablespace_temporal;
Y de aquà en adelante todos los segmentos temporales que se creen para la cuenta de fulano se crearán en ese tablespace.
SALUDOS, TAMARA
TAMBIEN PUEDES HACER
ALTER TEMPORARY TABLESPACE tablespace
TEMPFILE file
AUTOEXTENT ON
Bueno de esto no estoy al 100% segura , se puede hacer para tablespaces permanentes, la clausula AUTOEXTENT ON activa la extensión automatica del tablespace, pruébalo y me cuentas
SAludos Tamara
ALTER TEMPORARY TABLESPACE tablespace
TEMPFILE file
AUTOEXTENT ON
Bueno de esto no estoy al 100% segura , se puede hacer para tablespaces permanentes, la clausula AUTOEXTENT ON activa la extensión automatica del tablespace, pruébalo y me cuentas
SAludos Tamara