Componentes y Arquitectura de una Base de Datos Oracle

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 6,59 KB

Archivos Principales

  • Control File: Contiene información sobre los archivos físicos, nombre de la base de datos (BD), tamaños de bloque e información para la recuperación. Son requeridos para abrir la BD.
  • Data File: Contiene la información que registran las aplicaciones de los usuarios finales.
  • Redo Log: Registran todos los cambios hechos a la BD y el estado de recuperación.
  • Pfile y SPfile: Son archivos que contienen parámetros de configuración de la SGA, características opcionales de Oracle y procesos en segundo plano (background processes).

Instancia y Servidor Oracle

  • Una instancia de Oracle está conformada por una estructura de memoria llamada SGA y varios procesos en segundo plano.
  • Un servidor de Oracle consiste en una instancia y una BD Oracle.
  • Una instancia es una estructura temporal de memoria, pero la BD está basada en archivos físicos (Control File, Data File y Redo Log).

Procesos en Segundo Plano (Background Processes)

  • PMON (Process Monitor): Limpia las conexiones fallidas a la BD.
  • SMON (System Monitor): Ejecuta la recuperación de una instancia ante una caída.
  • DBWn (Database Writer): Escribe los bloques de memoria modificados en la SGA.
  • LGWR (Log Writer): Escribe información de la SGA (Redo Log Buffer).
  • CKPT (Checkpoint): Actualiza los archivos de la BD después de los eventos de checkpoint.

Áreas de Memoria

  • PGA (Program Global Area): Es una región de memoria asociada a cada proceso servidor, la cual contiene datos e información de control para cada una de las sesiones que los usuarios mantienen. No es un área de memoria compartida.
  • SGA (System Global Area): Conjunto de memoria compartida que contiene datos e información de control para una determinada instancia de Oracle y está compuesta por:
    • Shared Pool: Caché de memoria que almacena sentencias SQL y PL/SQL.
      • Library Cache: Almacena el texto de la instrucción.
      • Dictionary Cache: Almacena la información de uso más reciente sobre el Diccionario de Datos (DD).
    • Database Buffer Cache: Contiene los datos más recientemente leídos.
    • Redo Log Buffer: Almacena información sobre transacciones con propósito de recuperación.

Tablespaces

  • Los tablespaces pueden ocupar uno o más datafiles.

Diccionario de Datos

  • Está compuesto por un conjunto de tablas y vistas asociadas que almacenan información sobre los componentes de la BD, así como su estructura lógica y física.
  • Incluye dos tipos de objetos:
    • Tablas base: Se crean automáticamente con el comando CREATE DATABASE.
    • Vistas: Se crean al ejecutar el script catalog.sql.
  • Contiene información sobre tablas, índices, sinónimos, procedimientos, funciones, paquetes, triggers, usuarios y privilegios.
  • Vistas del Diccionario de Datos:
    • DBA: Todos los objetos en la BD.
    • ALL: Objetos accesibles para el usuario conectado.
    • USER: Objetos propiedad del usuario conectado.

Control File

  • Fichero binario sin el cual no es posible arrancar la BD.
  • Se lee al montar la BD.
  • Está asociado solo a una BD.
  • Contiene información como: nombre de la BD, fecha de creación, nombre de los tablespaces, nombre y localización de los ficheros de control y de redo, números de secuencia del registro en curso, información del checkpoint e información del backup.

Backup del Control File

  • Parar la BD.
  • Hacer una copia física del fichero a nivel de sistema operativo.
  • Incluir la nueva copia en el archivo init.ora en el parámetro control_files.
  • Respaldar después de que la BD ha cambiado:
    • ALTER DATABASE BACKUP CONTROLFILE TO 'filename'; De esta forma, se crea en un fichero de traza las sentencias SQL necesarias para volver a crear el fichero de control.

Redo Log File

  • Proveen información de las transacciones ante un evento de falla de la BD.
  • Una BD requiere al menos dos grupos.
  • Log Switch: Ocurre cuando un grupo redo log se llena y el LGWR pasa al siguiente.
  • Forzar un switch: ALTER SYSTEM SWITCH LOGFILE;
  • Forzar un checkpoint: ALTER SYSTEM CHECKPOINT;
  • El LGWR escribe al hacer commit o cada 3 segundos.
  • Agregar un grupo redo log: ALTER DATABASE [BD] ADD LOGFILE [grupo];
  • Eliminar un grupo redo log: ALTER DATABASE [BD] DROP LOGFILE [grupo];
  • Borrar miembros: ALTER DATABASE [BD] DROP LOGFILE MEMBER 'filename';
  • Noarchivelog: Los archivos redo son reescritos cada vez que el archivo se llena y ocurre un log switch. LGWR no sobreescribe un grupo hasta que el checkpoint para el grupo se completa.
  • Archivelog: Los grupos inactivos y llenos son archivados. Se pueden hacer respaldos físicos para recuperar la BD sin perder la información actualizada.

Estructura Lógica y Física

  • Estructura Lógica: Database, Tablespace, Segment, Extent, Oracle Block.
  • Estructura Física: Archivos de datos, de redo log y de control.

Tipos de Tablespace

  • De datos.
  • De índices.
  • De rollback.
  • Temporales.
  • El tablespace UNDO solo puede contener segmentos de rollback.
  • Los tablespaces temporales se ocupan cuando la memoria está llena, para operaciones como ORDER BY, JOIN y CREATE INDEX que no caben en la memoria.

Ejemplo de Creación de Usuario

ALTER USER <usuario>
IDENTIFIED BY <contraseña>/EXTERNALLY
DEFAULT TABLESPACE <espacio>
TEMPORARY TABLESPACE <espacio>
QUOTA <xx>K/UNLIMITED ON <espacio>
DEFAULT ROLE <role>/ALL/ALL EXCEPT <role>/NONE
PROFILE <perfil>
PASSWORD EXPIRE
ACCOUNT LOCK/UNLOCK;

Entradas relacionadas: