miércoles, 13 de julio de 2011

Arquitectura de red

La arquitectura ORACLE tiene tres componentes básicos que son: 

  • Las estructuras para almacenar 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. 

A continuación se ilustra mediante un gráfico la arquitectura de ORACLE 



ESTRUCTURAS DE MEMORIA
 
Cuando se arranca la BD, Oracle reserva un área de memoria llamada System Global Área (SGA) y arranca una serie de procesos.
Una instancia es la combinación de la SGA y los procesos.
Estructuras básicas asociadas a una instancia:
    1. Área de código de programas:
      • Porciones de memoria usadas para almacenar código que está siendo o puede ser ejecutado.
      • El tamaño de esta área es fijo y depende del sistema operativo.
    1. Área global del programa:
      • Cada vez que un proceso de usuario se conecta a la BD y se crea una sesión se le aloja un área global del programa.
      • Contiene datos e información de control de dicho proceso.
    1. Área de ordenación:
      • Cuando una consulta solicita una ordenación de un resultado, ORACLE utiliza una zona de memoria del proceso de usuario.
      • El tamaño de este área puede crecer según las necesidades hasta un valor máximo (SORT_AREA_SIZE).
      • Si la ordenación requiere más espacio se recurre a un proceso de ordenación parcial y mezcla de resultados.
    1. Área global del sistema:
      • Búferes del bloque de datos (DBB):
*        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.
*        Aumenta la eficiencia del sistema ya que se requieren menos accesos a disco.
*        Se organizan en dos listas: buferes sucios y LRU (menos usados recientemente).
*        LRU: contiene búferes libres, búferes que están siendo accedidos y búferes que han sido modificados y no han sido trasladados a la de búferes sucios.
*        Cuando un proceso necesita un bloque en el DBB, accede al bufer adecuado y lo traslada al extremo (MRU) de la lista. 
*        Si el bloque requerido no esta en el DBB, lee el bloque de disco y lo almacena en un búfer del DBB.-Busca un bufer libre. 
*        Si en esta búsqueda encuentra buferes sucios los mueve a la lista correspondiente.
*        Si lo encuentra procede a leer los bloques en el bufer moviéndolo al final de la lista.
*        Si no encuentra huecos llama al proceso de escritura para que guarde varios búferes sucios a disco.
*        Excepción: el mecanismo de funcionamiento cambio cuando un proceso de usuario recorre una tabla entera: se ponen al final de la lista.
*        El tamaño de DBB se especifica mediante el parámetro DB_BLOCK_BUFFERS expresado en bloques de la BD. 

      • Búfer del registro de rehacer: 

*         Bufer circular que mantiene información sobre los cambios realizados en la BD.
*         Información necesario par reconstruir los cambios hechos a la BD por las instrucciones: insert, update, delete, create, alter o drop.
*         Existe un proceso encargado de escribir esta información en el fichero de rehacer correspondiente.
*         El tamaño de este bufer se especifica mediante el parámetro LOG_BUFFER. 

·         Fondo compartido: 

*         Es un área donde se encuentran construcciones tales como el área de SQL compartida y la cache del diccionario de datos.
*         Cada sentencia SQL se representa por una parte privada y una compartida.
o    Área compartida: árbol de análisis y el plan de ejecución de la sentencia SQL.
o    Área privada contiene variables de enlace y búferes temporales.
o    Información almacenada en la caché del diccionario de datos:
o    Nombre de todas las tablas y vistas de la BD.
o    Nombre y tipos de todas las columnas de las tablas de la BD.
o    Privilegios de todos los usuarios.
o    Tamaño de este área: SHARED_POOL_SIZE. 

LOS PROCESOS

Los procesos se dividen en dos categorías: procesos de usuario y procesos de Oracle. 
  • Procesos de usuario son las aplicaciones en sí, que realizan peticiones a la BD.
  • Los procesos ORACLE se pueden dividir en 2 tipos:
o    Procesos servidores: atienden las peticiones del usuario y se comunican con ORACLE a través de SGA.
*         Compilan y ejecutan las sentencias SQL.
*         Leen los bloques de datos desde el disco a los buferes.
*         Devuelve el resultado de las operaciones a la aplicación.
  • Procesos background gestionan los recursos de la BD.
*         Escritor de la BD (DBWR).
*         Escritor de registros (LGWR).
*         Punto de control (CKPT).
*         Supervisor del sistema (SMON).
*         Supervisor del proceso (PMON).
*         Archivador (ARCH).
*         Recuperador (RECO).
*         Bloqueo (LCKn).
*         Despachador (Dnnn).

No hay comentarios:

Publicar un comentario