Gestión de tablespaces en oracle - oracle dba
Tablespaces
Un tablespace es una unidad lógica que organiza y almacena los archivos de una base de datos.
Cuando se crea una base de datos, se generan como mínimo los siguientes tablespaces:
- Tablespace SYSTEM.
- Tablespace SYSAUX.
- Tablespace Temporal.
- Tablespace Undo.
Los tablespaces se pueden crear a través de:
- Enterprise Manager [EM].
- Con la sentencia SQL CREATE TABLESPACE.
Tablespaces con EM
Al consultar un tablespace mediante EM, se puede ver la siguiente información:
- Tamaño asignado: Indica el tamaño total de los archivos de datos asociados al tablespace.
- Espacio usado: Muestra el espacio ocupado por los segmentos que ya no se pueden utilizar.
- Espacio libre asignado: Indica cuánto espacio disponible queda para usar.
- Estado: Informa si el tablespace está en estado Online [accesible] o Offline [no accesible].
- Datafiles: Muestra cuántos archivos de datos tiene el tablespace.
- Tipo: Define el tipo de tablespace.
- Permanente: Almacena segmentos que no cambian con el cierre de la base de datos.
- Temporal: Almacena segmentos que se eliminan al cerrar la base de datos.
- Undo: Almacena segmentos de deshacer, gestionados automáticamente por el sistema.
Tablespaces con SQL
La información de los tablespaces también se puede consultar usando vistas del Diccionario de Datos [DD] como:
- DBA_TABLESPACES.
- DBA_DATA_FILES.
- DBA_SEGMENTS.
- DB_FREE_SPACE.
Comando para trabajar con los tablespaces
CREAR UN TABLESPACE Y SU FICHERO DE DATOS:
- CREATE TABLESPACE ...: Crea un nuevo tablespace.
- DATAFILE: Define la ruta del archivo de datos asociado.
- SIZE n[M|G|T]: Especifica el tamaño del archivo de datos.
- AUTOEXTEND ON NEXT nM MAXSIZE nM: Permite que el archivo crezca automáticamente hasta un tamaño máximo.
- EXTENT MANAGEMENT LOCAL AUTOALLOCATE: Gestión local del crecimiento del espacio.
- SEGMENT SPACE MANAGEMENT AUTO: Gestión automática del espacio de segmentos.
Ejemplo:
- CREATE TABLESPACE TRABAJO
- DATAFILE "/HOME/DB11G/ORADATA/TRABAJO_01.DBF"
- SIZE 10M AUTOEXTEND ON NEXT 10M MAXSIZE 100M
- EXTENT MANAGEMENT LOCAL AUTOALLOCATE
- SEGMENT SPACE MANAGEMENT AUTO
Modificar el tamaño de un tablespace
El tamaño de un tablespace se puede cambiar de dos maneras:
- Añadiendo más archivos de datos al tablespace.
- Cambiando el tamaño de los archivos existentes.
Para cambiar el tamaño de un archivo de datos:
- ALTER DATABASE DATAFILE nombre_fichero RESIZE n [M | G | T],
Para añadir un archivo de datos a un tablespace:
- ALTER TABLESPACE nombre_tablespace ADD DATAFILE ‘ruta/nombre_fichero.dbf’ SIZE n[M | G | T],
Borrar un tablespace
Para eliminar un tablespace:
- DROP TABLESPACE nombre_tablespace [INCLUDING CONTENTS [AND DATAFILES]].
Oracle Manager Files [OMF]
OMF permite automatizar la creación de archivos de base de datos sin que el DBA tenga que conocer el sistema de archivos en detalle.
Para habilitar OMF, es necesario configurar estos parámetros:
- DB_CREATE_FILE_DEST: Define la ubicación predeterminada de los archivos de datos.
- DB_RECOVERY_FILE_DEST: Establece la ubicación predeterminada para archivos de Redo Log y backups.
Umbrales de alerta
Oracle incluye alertas automáticas para informar al DBA cuando un tablespace supera ciertos niveles de uso.
- Al superar el 85% de uso, se lanza una alerta de advertencia.
- Al superar el 97% de uso, se lanza una alerta crítica.