ARQUITECTURA DE ORACLELa 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 MEMORIACuando se arranca la BD, Oracle reserva un área de memoria llamada System Global Area (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.
2. Area 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.
3. Area 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.
4. Area 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.
LOS PROCESOSLos 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:
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).
SISTEMA DE ARCHIVOSLos archivos en los cuales consiste la arquitectura de Base de Datos de Oracle son: