INGRESAR

REGISTRARSE
Buscador

Tablespaces, datafiles y segmentos en oracle

2024-04-05


Tablespaces, datafiles y segmentos en oracle

Los datos se organizan de manera lógica en segmentos y se almacenan físicamente en ficheros de datos (datafiles).

Tablespaces

Un “Tablespace” ofrece una abstracción de ambos:

  • Puede contener múltiples segmentos.
  • Y puede estar compuesto por varios datafiles.

La relación entre los segmentos y los datafiles es de tipo muchos-a-muchos.

Tipos de segmentos

Tabla: Aquí es donde se guarda la información de los usuarios o de la Base de Datos.

Índices: Almacenan los índices creados para las tablas.

Type 2 Undo: Se trata de segmentos destinados a deshacer cambios.

Partición de tabla: Una tabla puede dividirse en varias particiones, y cada partición se convierte en un segmento independiente. Estos segmentos pueden residir en diferentes tablespaces, lo que permite que una tabla se extienda a través de múltiples tablespaces.

Partición de índice: Si una tabla está dividida, sus índices también se separarán.

Lobsegment, lobindex, lob partition: Si una columna se define como un tipo de datos de objeto grande, solo se guarda un puntero que apunta a un segmento separado donde están los datos. Los LOBs también pueden dividirse.

Cluster: Es un segmento que puede albergar varias tablas.

Nested table: Se refiere a una columna de una tabla que se define como un tipo de objeto personalizado y que contiene columnas adicionales. La vista DBA_SEGMENTS describe cada segmento en la base de datos. Para localizar el fichero de datos de una base de datos, se puede usar: SELECT TABLESPACE_NAME, FILE_NAME FROM DBA_DATA_FILES WHERE FILE_ID = 4; También se puede consultar la vista DBA_SEGMENTS.

Segmentos, extents, bloques y registros.

En el Diccionario de Datos existe la vista DBA_SEGMENTS, que proporciona información sobre los segmentos.

La siguiente consulta permite ver el número de segmentos agrupados por tipo:

  • SELECT SEGMENT_TYPE, COUNT(1) FROM DBA_SEGMENTS
  • GROUP BY SEGMENT_TYPE
  • ORDER BY SEGMENT_TYPE

Los segmentos se expanden mediante la asignación de nuevos extents dentro del mismo tablespace, aunque no necesariamente en el mismo datafile, ya que la información de un segmento puede estar en varios datafiles.

Cuando se crea un segmento, Oracle le asigna un extent en el que posteriormente se pueden introducir datos. Luego, Oracle asignará un segundo extent en el mismo tablespace, pero no necesariamente en el mismo archivo de datos. Se pueden agregar manualmente más extents con la instrucción:

  • ALTER TABLE HR.NEWTAB ALLOCATE EXTENT

Los extents, a su vez, están formados por bloques consecutivos; el tamaño predeterminado de un bloque es de 8 kilobytes, y puede variar entre 2 y 32 kilobytes. El tamaño del bloque es controlado por el parámetro DB_BLOCK_SIZE.

Es recomendable evitar que los bloques del sistema operativo sean más grandes que los bloques de Oracle.

Un bloque consiste en un encabezado de tamaño variable y un área de datos. El encabezado contiene un directorio de fila (que indica dónde comienza cada fila dentro del bloque) y la información de cierre de fila.

  • La vista DBA_DATA_FILES proporciona información sobre los datafiles.
  • La vista DBA_EXTENTS contiene información sobre los extents.

Con el comando ALTER TABLE se puede asignar un nuevo extent a una tabla, incluso si el extent actual no está completamente lleno, y también permite especificar qué datafile almacenará el nuevo extent.

El comando sería:

  • ALTER TABLE tb_nom [ALLOCATE EXTENT] [(DATAFILE ‘f_nom’)].
  • ALLOCATE EXTENT: Obliga a asignar un nuevo extent.
  • DATAFILE: Indica en cuál se almacenará el nuevo extent.

Automatic Storage Management (ASM)

Los ficheros de datos pueden existir en cuatro tipos de dispositivos:

  • Sistema de archivo local: Los datos se almacenan en discos duros locales.
  • Sistema de archivo agrupado: Los datos se almacenan en discos externos accesibles desde múltiples ordenadores, formando un clúster. Esto se asemeja a un RAC.
  • Dispositivo RAW: Se pueden crear ficheros de datos en discos sin un sistema de archivo; es preferible utilizar grupos de disco (ASM).
  • Grupos de disco (ASM): Ofrecen una alternativa para el almacenamiento de ficheros de datos basados en el sistema, permitiendo al DBA referirse a grupos de discos gestionados por ASM.

ASM es un administrador de volúmenes lógicos que ofrece Oracle y que viene incluido con la base de datos. Su función principal es agrupar discos en estado RAW, y Oracle se ocupa de crear el sistema de archivos correspondiente.

Los volúmenes lógicos ofrecen mejoras en striping y mirroring de datos:

  • El striping almacena datos en varios discos, aumentando la velocidad.
  • El mirroring almacena datos simultáneamente en dos discos, garantizando seguridad.

Los discos de ASM son los volúmenes físicos, mientras que los grupos de discos de ASM son los volúmenes lógicos. El tamaño de una unidad de asignación predeterminado es de 1MB, pero puede aumentar hasta 64MB si se utiliza como un depósito de datos (data warehouse).

ASM puede almacenar ficheros de control, ficheros de redo log en línea, ficheros de datos, así como ficheros de respaldo, ficheros de redo log, y ficheros de Datapump. Sin embargo, no puede usarse con el Oracle Home ni con los ficheros de Alert Log y Traces Files.

Para más información

Publicaciones Recientes

imagen del Post
Curso de Administración de Base de Datos Oracle

  • 198 Videos
  • 23 Hrs de videos
  • 190 Test
  • 184 Hrs de estudio
  • 194283
    12€

imagen del Post
Plan Quiero Estudiar VIP

Accede de forma ilimitada a todos los cursos online de la web por un único pago

99€

imagen del Post
Fundamentos de la arquitectura de oracle database

Oracle Database es una de las bases de datos más populares y robustas utili...

imagen del Post
Cómo instalar oracle database 19c en windows

Oracle Database 19c es una de las versiones más robustas y confiables de la...

imagen del Post
Curso oracle dba huelva

El Curso Oracle DBA en Huelva es una excelente oportunidad para aquellos qu...

imagen del Post
Administración básica de oracle database

La administración de Oracle Database es fundamental para mantener el funcio...

imagen del Post
Explora Temas Interesantes

Desde guías prácticas hasta análisis profundos, nuestro blog está lleno de contenido que te inspirará