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:
- Á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.
- Á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.
- Á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.
- Á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