Tema 27. Bases de Datos Oracle

Skip to main content
< Todos los temas
Imprimir

Para entender el sistema de base de datos Oracle, especialmente de cara a una oposición, es fundamental distinguir entre lo que es el almacenamiento físico y el mecanismo que permite su gestión.

1. ¿Qué es una Instancia de Oracle?

Una instancia es la combinación de las estructuras de memoria y los procesos de fondo (background processes) que se ejecutan en un servidor para permitir el acceso y la manipulación de la información.  

Es importante no confundirla con la base de datos, que son las estructuras físicas (archivos) almacenadas en el disco.  

  • Relación 1 a 1: En una configuración estándar, una instancia sirve a una base de datos.
  • Relación N a 1 (RAC): En entornos de Real Application Clusters (RAC), múltiples instancias situadas en diferentes servidores pueden acceder de forma simultánea a una única base de datos compartida, lo que proporciona alta disponibilidad y escalabilidad.  
2. ¿Cómo funciona el sistema?

El funcionamiento se basa en la interacción entre el usuario, la instancia y los archivos físicos:

  1. Conexión: El usuario se conecta a través de un proceso de usuario que se comunica con un proceso de servidor en la instancia.
  2. Memoria (SGA): La instancia utiliza un área de memoria global llamada SGA (System Global Area). Aquí se cachean los datos leídos del disco (en el Buffer Cache) para que las futuras consultas sean más rápidas.  
  3. Escritura Diferida: Los cambios que realiza el usuario no se escriben inmediatamente en los archivos de datos para no penalizar el rendimiento; se registran primero en estructuras de memoria y luego procesos específicos los pasan al disco de forma asíncrona.
3. Procesos necesarios para que funcione

Para que una instancia sea operativa, requiere de varios procesos de fondo (background processes). Aunque los documentos mencionan procesos específicos de clúster, en una instancia estándar los fundamentales son:

  • DBWn (Database Writer): Escribe los bloques de datos modificados desde el buffer cache de la memoria a los archivos de datos en disco.
  • LGWR (Log Writer): Escribe los registros de transacciones (Redo Log) al disco. Es vital para la recuperación ante fallos.
  • CKPT (Checkpoint): Actualiza la información del estado de la base de datos en los archivos de control y cabeceras de archivos de datos.
  • SMON (System Monitor): Realiza la recuperación de la instancia al arrancar si hubo un fallo previo.
  • PMON (Process Monitor): Limpia los recursos de los procesos de usuario que han fallado o se han desconectado anormalmente.

En entornos RAC, aparecen procesos adicionales de gestión del clúster como CSS (sincronización de nodos), CRS (alta disponibilidad) y EVM (gestión de eventos).  

4. Términos principales que aprender

Para la oposición, debes dominar esta jerarquía y conceptos:

Estructuras Lógicas vs. Físicas  

  • Tablespace: Unidad lógica de almacenamiento. Una base de datos se divide en uno o varios tablespaces (ej. SYSTEM, SYSAUX, USERS).  
  • Datafile: Archivo físico en disco que pertenece a un tablespace. Un tablespace puede tener varios datafiles, pero un datafile solo pertenece a un tablespace.  
  • Segmentos, Extensiones y Bloques: Los objetos (como tablas) se guardan en segmentos, que se dividen en extensiones (conjuntos de bloques contiguos), y el bloque es la unidad mínima de E/S.

Control Files: Archivos binarios que contienen la «receta» de la base de datos: nombres y ubicaciones de archivos de datos y redo logs, necesarios para arrancar la instancia.  

  • Redo Log Files: Registran todos los cambios realizados; son fundamentales para «repetir» transacciones en caso de pérdida de datos.
  • SPFILE/PFILE: Archivos de parámetros que definen cómo se configura la instancia (ej. cuánta memoria asignar a la SGA).  
5. Puntos clave para la Oposición
  • Monitorización de Tablespaces: Es vital vigilar el Allocated Space Used (%). Si un tablespace no tiene activo el Auto Extend, un llenado al 100% detendrá las operaciones de escritura.  
  • Gestión de Alertas: Oracle recomienda umbrales de aviso al 70-85% y críticos al 90-97% para el espacio en tablespaces.  
  • Herramientas de Administración: * Enterprise Manager: Interfaz gráfica para administración general.
    • SRVCTL: Herramienta de línea de comandos esencial en RAC para arrancar/parar instancias y bases de datos.  
  • Diccionario de Datos: Vistas como DBA_TABLESPACE_USAGE_METRICS o DBA_DATA_FILES permiten al administrador conocer el estado real del sistema mediante consultas SQL
Conceptos Generales: La dualidad de Oracle

Para entender Oracle, lo primero es diferenciar entre Base de Datos (lo estático) e Instancia (lo dinámico).

  • La Base de Datos (Estructura Física): Son los archivos que están en el disco duro. Si apagas el servidor, la base de datos sigue ahí.
    • Datafiles: Donde están los datos reales (tablas, índices).
    • Control Files: El «cerebro» físico; archivos pequeños que dicen dónde están el resto de archivos y en qué estado se encuentran.
    • Redo Log Files: El «seguro de vida»; graban todos los cambios para poder recuperarlos si el sistema falla.
  • La Instancia (Estructura de Memoria y Procesos): Es el software corriendo en la RAM. Es lo que permite que el usuario «hable» con los datos.
    • Se compone de la SGA (System Global Area), que es una bolsa de memoria compartida, y los Procesos de Fondo (como DBWn para escribir en disco o LGWR para los logs).
  • Oracle RAC (Real Application Clusters): es una arquitectura de «Alta Disponibilidad». Imagina una base de datos única a la que acceden varias instancias desde distintos servidores. Si un servidor muere, los demás siguen trabajando.

2. Administración Básica: El ciclo de vida

Administrar Oracle consiste en asegurar que la instancia esté arriba, los usuarios puedan entrar y el rendimiento sea óptimo.

  • Estados de arranque: Un administrador debe conocer las fases:
    1. NOMOUNT: Solo se lee el archivo de parámetros (init.ora o spfile). La instancia nace (memoria y procesos) pero no conoce la base de datos.
    2. MOUNT: La instancia lee los Control Files. Ya sabe dónde están los datos, pero nadie puede entrar aún. Es para tareas de mantenimiento.
    3. OPEN: Los archivos de datos se abren. La base de datos es totalmente funcional para los usuarios.
  • Herramientas de gestión:
    • Enterprise Manager (EM): Herramienta web (muy mencionada en tus PDF) que permite gestionar todo visualmente: desde el espacio hasta los usuarios.
    • SQL*Plus: La consola de comandos clásica.
    • SRVCTL: Fundamental en entornos RAC para gestionar recursos del clúster (nodos, instancias, servicios).
  • El Diccionario de Datos: Es el conjunto de tablas internas de Oracle que le dicen al administrador «quién es quién». Empiezan por DBA_, ALL_ o USER_ (ej. DBA_USERS, DBA_TABLESPACES).

3. Gestión de Almacenamiento: El puente lógico

Esta es la parte más importante para las oposiciones porque mezcla lo que ve el usuario con lo que ve el disco duro.

  • Estructura Lógica (Jerarquía):
    1. Bloque: La unidad más pequeña de lectura/escritura (normalmente 8KB).
    2. Extensión: Un conjunto de bloques contiguos.
    3. Segmento: El espacio que ocupa un objeto completo (por ejemplo, una tabla).
    4. Tablespace: La unidad lógica superior. Una base de datos se divide en varios Tablespaces (SYSTEM, SYSAUX, USERS, TEMP).
  • Relación Lógico-Física:
    • Un Tablespace (lógico) está formado por uno o varios Datafiles (físicos).
    • Importante para el examen: Un Datafile solo puede pertenecer a UN Tablespace.
  • Administración de Ocupación (Basado en tu PDF):
    • Monitorización: Debemos vigilar el espacio libre. Si un Tablespace se llena, la base de datos se detiene para las escrituras.
    • Umbrales: Se suelen configurar alertas al 85% (Warning) y 97% (Critical).
    • Soluciones ante falta de espacio:
      1. Activar el AUTOEXTEND en los datafiles (que crezcan solos).
      2. Resize: Aumentar el tamaño de un datafile existente manualmente.
      3. Add Datafile: Añadir un nuevo archivo físico al Tablespace.

Resumen para el opositor:
  • Instancia = Memoria (SGA) + Procesos.
  • Base de Datos = Archivos (Datafiles + Control + Redo).
  • Tablespace = El contenedor lógico de los datos.
  • RAC = Varias instancias contra una base de datos (Escalabilidad).
  • Monitorización = Vigilar que el % de ocupación no llegue al límite mediante vistas como DBA_TABLESPACE_USAGE_METRICS.