Unidad 2 Estructura de memoria y procesos de la instancia

Para que un SGBD 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.

Funcionamieto de la memoria:

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

  • 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.

Memoria Virtual:

La memoria virtual es una técnica de gestión de la memoria que permite que el sistema operativo disponga, tanto para el software de usuario como para si mismo, de mayor cantidad de memoria que este disponible físicamente.

Á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.

  • 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.

  • 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.

Instancia:

  • 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.

Tags: