INTRODUCCIÓN
No podemos aspirar a que nuestras aplicaciones de BD funcionen bien si no conocemos la arquitectura de la BD. Por ello es indispensable conocer los factores y parámetros que influyen en el funcionamiento de nuestro SGBD para poder solucionar los problemas que se pueden plantear en cuanto nos salgamos de las aplicaciones estándares y básicas de BD, o en cuanto tengamos algún problema.
Antes de pasar a analizar la arquitectura de la BD es necesario conocer ciertos conceptos como son:
Instancias.- Una instancia de BD es un conjunto de procesos del servidor Oracle que tiene su propia área global de memoria y una base de datos asociada a ellos.
Base de datos (BD).- Una Base de Datos Oracle es un conjunto de datos almacenado y accesible según el formato de tablas relacionales. Una tabla relacional tiene un nombre y unas columnas. Los datos están almacenados en las filas. Las tablas pueden estar relacionadas con otras. Además una Base de Datos Oracle está almacenada físicamente en ficheros, y la correspondencia entre los ficheros y las tablas es posible gracias a las estructuras internas de la BD, que permiten que diferentes tipos de datos estén almacenados físicamente separados. Está división lógica se hace gracias a los espacios de tablas, tablespaces.
Espacios de tablas (tablespaces).- Un espacio de tablas es una división lógica de la BD. Cada BD tiene al menos uno (SYSTEM). Un espacio de tablas puede pertenecer sólo a una BD. Los espacios de tablas se utilizan para mantener juntos los datos de usuarios o de aplicaciones para facilitar su mantenimiento o mejorar las prestaciones del sistema. De esta manera, cuando se crea una tabla se debe indicar el espacio de tablas al que se destina. Por defecto se depositan en el espacio de tablas SYSTEM, que se crea por defecto. Este espacio de tablas es el que contiene el diccionario de datos, por lo que conviene reservarlo para el uso del servidor, y asignar las tablas de usuario a otro.
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 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:
Á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.
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.
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.
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.
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.
- Área compartida: árbol de análisis y el plan de ejecución de la sentencia SQL.
- Área privada contiene variables de enlace y búferes temporales.
Información almacenada en la caché del diccionario de datos:
- Nombre de todas las tablas y vistas de la BD.
- Nombre y tipos de todas las columnas de las tablas de la BD.
- Privilegios de todos los usuarios.
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:
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).
LOS ARCHIVOS
Los archivos que maneja ORACLE se clasifican en cuatro grupos como se observa en la siguiente figura:
Los Archivos de datos (DataFile).- estos archivos sirven para el almacenamiento físico de las tablas, índices o agrupamientos (clusters) y procedimientos. Estos Archivos, son los únicos que contienen los datos de los usuarios.
BIBLIOGRAFÍA:
- http://www.infor.uva.es/~jvegas/cursos/bd/orarq/orarq.html#1
- http://xue.unalmed.edu.co/~mfcabrera/db/arqoracle.pdf
- http://www.oracle.com/global/es/prensa/cma/np_middle_fusion.htm
- http://www.google.com.ec/url?sa=t&ct=res&cd=9&url=http%3A%2F%2Fwww.orape.net%2Fdownloads-file-54.html&ei=2sVhR7DvOZ6ezQTQyZw2&usg=AFQjCNG2p-8MjTgQgfqGnP_L6nRpJh-WiQ&sig2=heEqyKYnYzmVLNmQSwMc7g
No hay comentarios:
Publicar un comentario