2.1.1 Estructura de memoria y
procesos de la instancia
DBMS
Definición
Es un sistema robusto que es capaz de
emplear algoritmos de almacenamiento y recuperación de información para poder
implementar un modelo de datos de manera física garantizando que todas las
transacciones que se realizan con respecto a dichos datos sean
"ácidas" (Atomicity, Consistency, Isolation, Duration).
Para que un
DBMS pueda funcionar, primero se debe hacer una instancia de este. Esta
instancia está compuesta principalmente de tres componentes:
·
Archivos
·
Estructuras
de memoria.
·
Estructuras
de procesos.
Cada una de estas estructuras se puede dividir a su vez en diferentes
puntos.
Archivos
·
Control (ctl): almacenan información
acerca de la estructura de archivos de la base.
·
Rollback (rbs): cuando se modifica el
valor de alguna tupla en una transacción, los valores nuevos y anteriores se
almacenan en un archivo, de modo que si ocurre algún error, se puede regresar
(rollback) a un estado anterior.
·
Redo (rdo): bitácora de toda
transacción, en muchos dbms incluye todo tipo de consulta incluyendo aquellas
que no modifican los datos.
·
Datos (dbf): el tipo más común,
almacena la información que es accesada en la base de datos.
·
Indices (dbf) (dbi): archivos
hermanos de los datos para acceso rápido.
·
Temp (tmp): localidades en disco
dedicadas a operaciones de ordenamiento o alguna actividad particular que
requiera espacio temporal adicional.
Estructura de Memoria
Área Global del
sistema (SGA): Es un grupo de estructuras de la memoria compartida que contiene
datos e información de control de una instancia de una BD. Si varios usuarios
se conectan de forma concurrente a la misma instancia, entonces los datos se
comparten en el SGA, por lo que también se llama shared global area.
Estructura
de Datos del SGA
·
Caché de los Buffers
·
Buffer del registro de Redo
·
El Pool compartido
·
Large Pool
·
Java Pool
·
Streams Pool
·
Caché de diccionario
Caché de los Buffers (Database Buffer Cache)
Contiene copias de los bloques de
datos de lectura de las páginas. Todos los procesos de los usuarios conectados
concurrentemente a la instancia comparten el acceso a ella.
Buffer del registro del Rehacer (Redo Log Buffer)
Contiene información sobre cambios
hechos a la base de datos, la cual se almacena en las ‘entradas redo’. Estas
entradas contienen la información necesaria para reconstruir, o rehacer cambios
hechos en la base de datos mediante las operaciones INSERT, UPDATE, DELETE,
CREATE, ALTER o DROP y se usan para la recuperación de la base de datos, si
fuera necesario.
El Pool Compartido
Es la parte del SGA
que contiene la cache de biblioteca, la cache de diccionario, los buffers para
los mensajes de ejecución paralela y las estructuras de control.
Large Pool
El administrador de la base de datos
puede configurar un área de memoria opcional llamado large pool que proporciona
grandes cantidades de memoria para asignar:
·
Memoria de la sesión para el servidor compartido y el Oracle XA
interface (usado donde las transacciones interactúan con más de una base de
datos)
·
Procesamiento de E/S
·
Copias de seguridad y operaciones de recuperación
Java Pool
Se usa en la memoria del servidor
para almacenar todo el código y datos del JVM en las sesiones.
Streams Pool
En una única base
de datos, se puede especificar que los flujos de memoria se asignen desde un
pool en el SGA llamado Streams pool.
Cache de diccionario (Dictionary Cache)
El
diccionario de datos es una colección de tablas y vistas de la base de datos
que contienen información sobre la base de datos (sus estructuras y sus
usuarios).
Oracle accede con frecuencia al
diccionario de datos, por lo que tiene dos localizaciones especiales en memoria
designadas a mantenerlo. Una de ellas es la caché del diccionario de datos,
también conocida como la cache de fila por que contiene datos sobre las filas
en vez de los buffers (los cuales contienen bloques de datos), y la otra es el
cache de biblioteca.
Estructuras de Proceso
Procesos de usuario: Cada
proceso de usuario representa la conexión de un usuario al servidor
Procesos
de segundo plano: El servidor se
vale de una serie de procesos que son el enlace entre las estructuras físicas y
de memoria.
· SMON
· PMON
· DBWR
· LGWR
· CKPT
· ARCH
· RECO
· LCK
Monitor del
sistema (System Monitor, SMON)
Es
responsable de efectuar la recuperación de un error cuando se arranca la
instancia a continuación de algún tipo de fallo.
Monitor de procesos (Process Monitor, PMON)
Es
responsable de controlar los procesos de usuario que accedan a la base de datos
y recuperados después de producirse algún error.
Escritor de base de datos (Database
Writer, DBWR)
El proceso DBWR es responsable de escribir los
bloques modificados (sucio) desde la caché de búfer del SGA a los archivos de
datos situados en disco.
Escritor de
registro (Log Writer, LGWR)
Es
responsable de escribir los datos desde el búfer de registro al archivo de
redo.
Punto de control (Checkpoint, CKPT)
Este proceso
escribe en los ficheros de control los checkpoints. Estos puntos de
sincronización son referencias al estado coherente de todos los ficheros de la
BD en un instante determinado, en un punto de sincronización.
Archivador (Archiver, ARCH)
Es
responsable de copiar los archivos de registro de rehacer en línea en el
soporte de almacenamiento de archivo cuando dichos registros se llenan.
Recuperador (Recoverer, RECO)
Es responsable de efectuar las tareas de limpieza
requeridas por las transacciones distribuidas que hayan fallado o que hayan
sido suspendidas.
Salvaste, mi trabajo :)
ResponderEliminarx2
ResponderEliminar