22 julio 2021

2.1 Estructura de memoria y procesos de la instancia


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 (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 porque contiene datos sobre las filas en vez de los buffers (los cuales contienen bloques de datos), y la otra es el cache de biblioteca.

 

Áreas globales de programas (PGA)

Es privada para cada servidor y son procesos en segundo planos; a cada proceso se asigna un PGA.

 El contenido de su memoria varía dependiendo donde se esté ejecutando la instancia y de si el servidor es compartido.

 Se clasifica en memoria de sección y área de SQL privada.

 

Área de Ordenaciones (Sort Areas).

 Son la zonas de memoria en las que se ordenan los datos, es decir el espacio en memoria necesita la organización y ordenación de las fila.

 Existen muchas razones importantes por las que este tamaño influye en el rendimiento.


Área de código de Software (SCA).

Son zonas de memoria destinadas a almacenar el código de Oracle en ejecución o que puede ejecutarse.


 Es almacenada en una zona distinta, y mas protegida que las zonas dedicadas a almacenar los códigos de programas de usuarios.

La SCA suele ser de tamaño estático, cambiando únicamente cuando el software se instala o actualiza.


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.


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.

 Instancias

Una instancia de BDD es el conjunto de estructuras de memoria y de procesos que acceden a los ficheros de datos.


Cada instancia está asociada a una base de datos. Cuando se inicia una base de datos en un servidor (independientemente del tipo de computadora), se le asigna un área de memoria (SGA) y lanza uno o más procesos. A la combinación del SGA y de los procesos es lo que se llama instancia. La memoria y los procesos de una instancia gestionan los datos de la base de datos asociada de forma eficiente y sirven a uno o varios usuarios.


Cuando se inicia una instancia El DBMS monta la base de datos, es decir, asocia dicha instancia a su base de datos correspondiente. En un misma computadora pueden ejecutarse varias instancias simultáneamente, accediendo cada una a su propia base de datos física.

·Únicamente el administrador de la base de datos puede iniciar una instancia y abrir una base de datos. Si una base de datos está abierta, entonces el administrador puede cerrarla y, cuando esto ocurre, los usuarios no pueden acceder a la información que contiene.

Para permitir el acceso a los datos, Oracle utiliza un conjunto de procesos que son compartidos por todos los usuarios. Además, existen estructuras de memoria que son utilizadas para almacenar los datos más recientemente solicitados a la BDD.


No hay comentarios.:

Publicar un comentario