Download Estructura física de la base de datos Oracle:

Document related concepts

Área Global del Sistema wikipedia , lookup

Redo Log File wikipedia , lookup

Base de datos en memoria wikipedia , lookup

MySQL Cluster wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Transcript
Estructura física de la base de datos Oracle:
La Arquitectura de Oracle tiene tres componentes básicos:
1. La Estructura de memoria
2. Los Procesos
3. Los Archivos.
1. ESTRUCTURA DE LA MEMORIA:
Es la estructura de memoria compartida que contienen datos e información de control
para una instancia de una base de datos, cada instancia tiene sus propias estructuras de
memoria y se localiza en la memoria virtual del computador. Las estructuras de memoria
se denominan System Global Area (SGA) la cual es un área compartida por todos los
usuarios y se divide en tres partes:
1.1. Fondo común compartido (Shared pool): Se utiliza durante el procesamiento de
comandos. Tiene dos zonas:
– Library Cache: almacena información relacionada a la instrucción de SQL:
– – Data Dictionary Cache (Dictionary Cache o Row Cache): almacena la
información de uso más frecuente sobre el diccionario de datos. Esta
información incluye definición de columnas, usuarios, passwords y privilegios.
Esta información es usada durante tiempo de compilación.
1.2. Arear de Memoria rápida (Dtabase buffer cache): mantiene los bloques de datos
leídos directamente de los archivos de datos. Cuando se procesa una consulta, el
servidor busca los bloques de datos requeridos en esta estructura. Si no se
encuentra, el proceso servidor lee el bloque de la memoria secundaria y coloca una
copia. Está organizada en dos listas:
– Lista de sucios: bloques que han sufrido modificaciones y no han sido escritos
en disco.
– Lista de menos recientemente usados: mantiene los bloques libres, los bloques a
los que se está accediendo actualmente y los bloques sucios que aún no han sido
remitidos a la lista de sucios.
1.3. Área de registro de rehacer (Redo log buffer): es un buffer circular que mantiene
todos los cambios que han sido realizados sobre la base de datos por operaciones de
insert, update, delete, create, alter y drop. Las entradas de este buffer contienen toda
la información necesaria para reconstruir los cambios realizados a la base de datos
por medio de cualquier instrucción (el bloque que ha sido cambiado, la posición de
cambio y el nuevo valor). El uso es estrictamente secuencial.
2. ARCHIVOS:
Los archivos que maneja Oracle, se clasifican en cuatro grupos:
2.1 Los Archivos de Datos (Datafiles): sirve para el almacenamiento físico de las
tablas, índices y procedimientos, estos son los únicos que contienen los datos de los
usuarios de la base de datos.
2.2 Archivos de Control (control files): tiene la descripción física y dirección de los
archivos para el arranque correcto de la base de datos
2.3 Archivos de Rehacer (redo log files): tienen los cambios que se han hecho a la base
de datos para recuperar fallas o para manejar transacciones. Debe esta conformado por
dos grupos como mínimo y cada grupo debe esta en discos separados. El principal
propósito de estos archivos es de servir de respaldo de los datos en la memoria RAM.
2.4 Archivos fuera de línea (archived files): archivos opcionales donde se pueda
guardar información vieja de los archivos de rehacer, convenientes para respaldos de
base de datos
3. LOS PROCESOS:
Los procesos son programas que se ejecutan para permitior el acceso a los datos, se
cargan en memoria y son transportados para los usuarios. Se clasifican en tres grupos:
3.1. Procesos de Base o de Soporte: se encargan de traer datos desde y hacia la
estructura de memoria (SGA), cada uno tiene su propia área de memoria; los
procesos de este tipo son los siguientes:
-
Database Writer (DBWR): se encarga de copiar los bloques desde el buffer
cache hasta la memoria secundaria.
-
Log Writer (LGWR): escribe las entradas desde el Log Buffer a disco. La
escritura de bloques del Redo Log Buffer a disco ocurre secuencialmente y bajo
las siguientes reglas:
– Cuando el Redo Log está lleno en un 33% o más.
– Cuando oucrre un time-out (cada tres segundos).
– Antes de que el DBWR escriba algún bloque modificado a disco.
– Cuando una transacción se compromete.
-
Checkpoint (CKPT): encargado de notificar al DBWR para que se escriban en
los archivos de datos todos los bloques contenidos en la lista de sucios. Este
proceso es invocado en intervalos de tiempo determinados. El CKPT es
opcional, si no existe las funciones son realizadas por el LGWR.
-
System Monitor (SMON): Encargado de realizar un proceso de recuperación
rápida cada vez que una instancia es inicializada. Esta labor incluye limpieza de
las estructuras de datos de soporte a la ejecución de consultas y llevar a la base
de datos a un estado estable previo a la ejecución de aquellas transacciones que
no hayan culminado exitosamente. También se encarga de desfragmentar el
espacio físico de almacenamiento uniendo bloques de datos libres en la memoria
secundaria.
-
Process Monitor (PMON): lleva la pista de los procesos de la base de datos y
efectúa labores de limpieza (liberar recursos y bloques ocupados en los cache’s)
si alguno de ellos termina prematuramente.
-
Archiver (ARCH): copia las bitácoras activas cuando éstas se encuentran
llenas. Este proceso se encuentra activo sólo cuando el DBMS se encuentra
operando en modo ARCHIVELOG, el único modo que admite recuperación de
los datos frente a fallas del sistema.
-
Recoverer (RECO): resuelve transacciones distribuidas que se encuentran
pendientes debido a la red o a fallas ocurridas en la base de datos distribuida.
-
Dispatcher (Dnnn): se crea por cada sesión de trabajo activa; es responsable de
enrutar los requerimientos desde el proceso usuario, al cual se encuentra
asociado, hacia los procesos servidores y retornar la respuesta al proceso de
usuario adecuado. Estos procesos se crean solo cuando se ejecuta con la opción
multithreading.
3.2. Procesos de Usuario: se encarga de ejecutar el código de aplicación del usuario y
manejar el perfil del usuario con sus variables de ambiente. Estos procesos no se
pueden comunicar directamente con la base de datos, por lo que la comunicación la
establecen mediante procesos de servidores.
3.3. Procesos de Servidores: estos procesos ejecutan las órdenes SQL de los usuarios y
llevan los datos del buffer caché para que los procesos de usuario puedan tener
acceso a los datos.
Estructura lógica de la base de datos oracle:
BIBLIOGRAFÍA:
http://xue.unalmed.edu.co/~mfcabrera/db/arqoracle.pdf
http://www.bd.cesma.usb.ve/ci5313/docs/taller1_Edna.pdf