viernes, 3 de abril de 2009

ARQUITECTURA DE BASE DE DATOS ORACLE

La arquitectura Oracle tiene 3 componentes básicos:
  • Las estructuras de memoria para almacenar los datos y el código ejecutable
  • Los procesos que corren el sistema de bases de datos y las tareas de cada usuario conectado a la base de datos
  • Los archivos que sirven para el almacenamiento físico, en disco, de la información de la base de datos.

Estructuras de Memoria
Hay 2 clases de memoria, una compartida por todos los usuarios y otra dedicada al trabajo de cada uno.


El SGA (system global area) es el área compartida y se divide en:
  • Shared pool: Mantiene el diccionario de datos y las áreas compartidas de las órdenes SQL que se solicitan para su procesamiento.
  • Database buffer cache: Es una porción del SGA que almacena los bloques de datos más recientemente usados. Pueden contener datos modificados todavía no escritos a disco. Mantiene los datos traídos de órdenes SQL.
  • Redo log buffer: Registra los cambios hechos a la base de datos.
  • Large Pool: Área utilizada para mejorar el rendimiento en servidores compartidos (multithreaded) o para procesos I/O de disco y cinta.
  • Java Pool: Área utilizada si se tiene una aplicación que va a ejecutar procedimientos Java (ya que Oracle maneja sus APIs con Java muchos administradores consideran a esta área de memoria como obligatoria).
  • Streams Pool: Utilizado para manejo de Streams.
Las 3 últimas antes mencionadas son opcionales.

Para cada sesión de usuario se crea también un área específica en memoria llamada PGA (program/process global area), la cual no se comparte con las otras sesiones de usuario.  


Procesos

Los procesos son programas que se ejecutan para permitir el acceso a los datos. Los procesos se cargan en memoria y son transparentes para los usuarios. Los procesos se clasifican en 3: procesos de base (background), de usuario y de proveedores.

Los procesos background son los que se encargan de traer datos desde y hacia la SGA; mejorando el desempeño al consolidar las tareas que son impartidas por todos los usuarios. Son:

  • Escritor de la BD (DBWR – Database writer): Es un proceso obligatorio que escribe los bloques modificados por los usuarios en los archivos que componen la BD cuando LGWR le envía el mensaje de hacerlo.
  • Escritor de registros (LGWR – Log writer): Escribe datos desde la SGA a los archivos redo log que sirven en caso de fallas en la instancia. Este proceso es obligatorio. LWGR envía la orden de escritura a l proceso DBWR.
  • Punto de control (CKPT - Check point): El punto de comprobación es un proceso opcional que ocurre cuando los usuarios conectados a la BD hacen solicitudes de exámenes de datos.
  • Supervisor del sistema (SMON – System monitor): Recupera el sistema ante una falla de la instancia.
  • Supervisor del proceso (PMON): Limpia el database buffer cache y libera recursos después de un proceso fallido.
  • Archivador (ARCH - Archive): Copia los registros de rehacer de la RAM en archivos de datos que permiten la recuperación cuando se presentan fallas de los medios magnéticos. 
  • Recuperador (RECO - Recovery): Recupera ante las fallas, en una transacción en ambientes distribuidos.
  • Bloqueo (LCKn - Lock): Efectúa los bloqueos entre instancias en caso de ambientes con servidores paralelos. Proceso opcional.

Los procesos de usuario suceden cuando un usuario se conecta a la base. Se crea un proceso que se encarga de ejecutar el código de aplicación del usuario y manejar el perfil del usuario con sus variables de ambiente. No se pueden comunicar directamente con la BD, sólo lo hacen a través de  procesos de servidor.

Los procesos de servidores ejecutan las órdenes SQL de los usuarios y llevan los datos al Database buffer caché, para que los procesos de usuario puedan tener acceso a los datos. 


Archivos

La base de datos abarca las estructuras físicas que se encuentran en disco. Estos archivos se dividen en dos: Requeridos y Externos. Entre los archivos requeridos están:

  • Control File: Almacena el status de las estructuras físicas de la base de datos.
  • Online Redo Log Files: Almacenan un registro de los cambios realizados a la base de datos mientras estos de van dando
  • Datafiles: Son el repositorio de la información. Sirven para el almacenamiento físico de las tablas, índices o agrupamientos (clusters) y procedimientos. Las unidades lógicas más grandes manejadas por Oracle son los tablespaces, que le permiten controlar espacios en el disco. Los tablespaces consisten de 1 o más datafiles. El espacio de tablas creado automáticamente es System. Un objeto de BD puede ser una tabla, un índice, un archivo temporal, los cuales se almacenan físicamente en segmentos, que son una colección de segmentos, que son una colección de data blocks, que son mapeados a los bloques del SO.

 

En cambio, los archivos externos son:

  • Parameter File: Define la instancia y los parámetros de inicialización. Hay de dos tipos Dinámico (binario, que no se puede ejecutar y se actualiza constantemente) y estático (que se lo puede editar mediante un editor ASCII y que solamente es leído una sola vez cuando la instancia se inicia.)
  • Password File: Archivo de sistema que almacena los nombres de usuario y contraseña (encriptadas) para poder autenticar a un usuario sin la necesidad del diccionario de datos.
  • Archive Log Files: Copias de los Online Redo Log Files llenos.
  • Backup Files: Copias de seguridad.


2 comentarios: