2.1. Características del DBMS
2.1.1 Estructura de memoria y procesos de la instancia
2.1.2 Estructuras físicas de la base de datos
2.1.1 Estructura de memoria y procesos de la instancia
2.1.2 Estructuras físicas de la base de datos
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:
■ 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.
– 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.
■ Area de Memoria rápida
(Database 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.
– 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.
· ■ Área de registro de
rehacer (Redo log buffer): es un buffer circular que mantiene todos loscambios
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.
■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.
·
■ ■ 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
·
■ ■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 estar conformado por dos
grupos como mínimo y cada grupo debe estar en discos separados. El principal
propósito de estos archivos es de servir de respaldo de los datos en la memoria
RAM.
· ■ 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.
LOS
PROCESOS:
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:
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.
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.
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.
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.
·
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.
No hay comentarios.:
Publicar un comentario