Estructura y Componentes de una Base de Datos Oracle

La Base de Datos Oracle

La base de datos de Oracle tiene una capa lógica y otra física. La capa física consiste en archivos que residen en el disco y los componentes de la capa lógica son estructuras que mapean los datos hacia estos componentes físicos.

La Capa Física

Consiste en archivos físicos que se encuentran en los discos. Estos pueden ser de tres tipos diferentes:

  • Uno o más datafiles: Los datafiles almacenan toda la información ingresada en una base de datos. Se puede tener solo uno o cientos de ellos. Muchos objetos (tablas, índices) pueden compartir varios datafiles.
  • Dos o más archivos redo log (de deshacer): Los archivos del tipo redo log almacenan información que se utiliza para la recuperación de una base de datos en caso de falla. Estos archivos almacenan la historia de cambios efectuados sobre la base de datos y son particularmente útiles cuando se necesita corroborar si los cambios que la base de datos ya ha confirmado, se han efectuado realmente en los datafiles.
  • Uno o más control files: Estos archivos contienen información que se utiliza cuando se levanta una instancia, tal como la información de dónde se encuentran ubicados los datafiles y los archivos redo log. Estos archivos de control deben encontrarse siempre protegidos.

Características de Oracle

Servidor Oracle:

  • Instancia Oracle
  • Base de Datos Oracle

Instancia Oracle:

  • Procesos Background
  • SGA

Base de Datos Oracle:

  • Ficheros de Datos
  • Fichero(s) de Control
  • Ficheros Redo Log

Conexión a la Base de Datos

Conexión: comunicación entre un proceso de usuario y una instancia.

Sesión: Especifica la comunicación de un usuario a una instancia al completar el proceso.

Instancia

Una instancia de Oracle está conformada por varios procesos y espacios de memoria compartida que son necesarios para acceder a la información contenida en la base de datos.

La instancia está conformada por procesos del usuario, procesos que se ejecutan en el background de Oracle y los espacios de memoria que comparten estos procesos.

Oracle Database Memory Structures

SGA: Redo Log Buffer Cache

Es un buffer circular que registra todos los cambios hechos en los bloques de datos/rollback, en lo que llamaremos redo entries. Su propósito principal es la recuperación de la instancia (no confundir con el rollback). Los procesos servidores copian las entradas de redo en la Redo Log Buffer Cache (antes de modificar los bloques en la caché de datos); y el proceso LGWR es el encargado de volcar dichos buffers al fichero redo log activo (en disco).

Arquitectura de Almacenamiento

Imagen

Program Global Area (PGA)

Es una zona de memoria, fuera de la SGA, reservada para cada proceso de usuario que se conecta a la BD. Se crea cada vez que se arranca un nuevo proceso servidor y se libera cuando el proceso termina.

Procesos Background (DBWR)

DBWR. Escribe los bloques de datos (y rollback) de la SGA (data buffer cache) en los ficheros de datos. Esto lo hace de forma asíncrona, cuando:

  • Sucede un checkpoint.
  • El número de buffers modificados alcanza un umbral.
  • No quedan buffers libres.
  • Ocurre un timeout.
  • Ponemos un tablespace offline.
  • Dejamos un tablespace en modo readonly.
  • Borramos o truncamos una tabla.
  • ALTER TABLESPACE nombretsp

Nota. Un checkpoint sucede cuando:

  • El fichero redo log se llena al 90%.

LGWR. Realiza escrituras secuenciales del contenido de la redo log buffer cache en los ficheros redo log. ¿Cuándo?

  • Se hace commit.
  • La redo log buffer cache se llena 1/3.
  • Hay 1Mb de cambios en la redo log buffer cache.
  • Como mucho, cada 3 segundos.
  • Siempre antes que escriba el DBWR.

SMON. Recupera la instancia, si es necesario, cuando ésta arranca: aplica los cambios registrados en los redo log, abre la base de datos dejándola accesible a los usuarios, y hace rollback de las transacciones que no terminaron. Además libera el espacio ocupado por segmentos temporales durante el procesamiento de sentencias SQL.

PMON. Se activa periódicamente, recuperando los recursos después de que un proceso falle: hace rollback de las transacciones que el usuario tenía en curso, libera bloqueos a nivel de tabla/fila y otros recursos reservados por el usuario, y vuelve a arrancar dispatchers muertos.

CKPT. Avisa al DBWR cuando sucede un checkpoint y actualiza las cabeceras de los ficheros de datos y de control. Si los checkpoints suceden muy frecuentemente puede haber contención en disco. Si tardan mucho se alargará el proceso de recovery. Como mucho sucederá un checkpoint al llenarse el redolog.

ARCH. Proceso opcional. Archiva automáticamente los redo log online si se activa el modo ARCHIVELOG; asegurando que se registran todos los cambios hechos en la base de datos. Archiva el redo log que se ha llenado, cuando sucede un log switch.

Estructura Lógica

La estructura lógica de la base de datos determina el uso que se hace del espacio físico que la sustenta. Existe una jerarquía top-down en esta estructura, consistente en tablespaces, segmentos, extensiones y bloques.

Una BDO la forman un grupo de tablespaces. Un tablespace puede contener uno o más segmentos. Un segmento lo integran una o más extensiones. Una extensión tendrá al menos un bloque. El bloque es la unidad mínima de almacenamiento.

El tamaño del bloque será múltiplo del que tenga el SO, y lo determina la variable db_block_size (2K, 4K, 8K, 16K y 32K).

Cuando un segmento (tabla, índice, rollback o temporal) crece, el espacio que se añade es de una extensión.

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.