Características del DBMS

55
Características del DBMS ARQUITECTURA DEL GESTOR 1

Transcript of Características del DBMS

Page 1: Características del DBMS

1

Características del DBMSARQUITECTURA DEL GESTOR

Page 2: Características del DBMS

2

Estructura de memoria y procesosde la instanciaADMINISTRACIÓN DE BD

Page 3: Características del DBMS

3

La Gestión de la memoria implica el mantenimiento de tamaños óptimos de las estructuras de memoria de una instancia de base de datos Oracle. Las estructuras de memoria que deben ser manejados son el área global del sistema (SGA) y el área global del programa (instancia PGA).

El DBMS Oracle soporta varios métodos de gestión de memoria, que son elegidos por los ajustes de parámetros de inicialización. A partir de la versión 11g, Oracle recomienda que se habilite el método conocido como la gestión de memoria automática .

Page 4: Características del DBMS

4Arquitectura de la memoria

Las estructuras de memoria básicos asociados con base de datos Oracle incluyen:

Área Global del Sistema (SGA)

Area Global del programa(PGA Programa)

Page 5: Características del DBMS

5Área Global del Sistema (SGA)

El SGA es un conjunto de estructuras de memoria compartida, conocidos como componentes SGA, que contienen datos e información de control para una instancia de base de datos Oracle.

El SGA es compartida por todos los procesos del servidor y de fondo. Los ejemplos de los datos almacenados en el SGA incluyen bloques de datos en caché y las áreas de SQL compartidas.

Page 6: Características del DBMS

6Área Global del programa (PGA)

Es una región de memoria que contiene datos e información de control para procesos del servidor. Es un espacio de memoria no compartida creada por Oracle Database, cuando se inicia un proceso de servidor. El acceso a la PGA es exclusiva para el proceso del servidor.

Hay un PGA para cada proceso de servidor. Los procesos en segundo plano también asignan sus propios PGA.

Page 7: Características del DBMS

7

El total de memoria asignada al PGA para todos los procesos en segundo plano y de servidor conectados a una instancia de base de datos Oracle se conoce como la instancia total de memoria PGA, y la colección de todos los PGA individuales se conoce como la instancia total del PGA, o simplemente instancia PGA .

Page 8: Características del DBMS

8

Fig. 1.- Estructuras de memoria de base de datos.

Page 9: Características del DBMS

9

Si la base de datos se ejecuta en Solaris u Oracle Linux, se puede añadir opcionalmente otro componente de memoria: Smart Flash Cache (caché flash). La caché flash es una extensión de la caché del búfer-SGA residente, proporcionando una caché de nivel 2 para los bloques de base de datos.

Se puede mejorar el tiempo de respuesta y el rendimiento en general, especialmente para uso intensivo de lectura de procesamiento de transacciones en línea (OLTP) las cargas de trabajo. La caché de flash reside en uno o más dispositivos de disco de destello, que son dispositivos de almacenamiento de estado sólido que utilizan memoria flash.

Page 10: Características del DBMS

10

Estructuras básicas de memoria

Page 11: Características del DBMS

11Las estructuras de memoria básicas asociadas con la base de datos Oracle incluyen:

Sistema de área global (SGA)

Programa de área global (PGA)

Área Global Usuario(UGA)

Áreas de código Software

Page 12: Características del DBMS

12Sistema de área global (SGA)

El SGA es un conjunto de estructuras de memoria compartida, conocidos como componentes SGA, los cuales contienen datos e información de control para una instancia de base de datos Oracle. El SGA es compartida por todos los procesos del servidor y segundo plano. Los ejemplos de los datos almacenados en el SGA incluyen bloques de datos en caché y las áreas de SQL compartidas.

Page 13: Características del DBMS

13Programa de área global (PGA)

Es una región de memoria no compartida que contiene datos e información de control para uso exclusivo de un proceso de Oracle.

El PGA es creado por la base de datos de Oracle cuando se inicia un proceso de Oracle.

Page 14: Características del DBMS

14Área Global Usuario(UGA)

La UGA es la memoria asociada con una sesión de usuario.

Page 15: Características del DBMS

15Áreas de código Software

El área de código de software son zonas de memoria destinadas a almacenar el código de Oracle en ejecución o que puede ejecutarse. Este código de Oracle se almacena en una zona distinta, y más protegida, que las zonas dedicadas a almacenar los códigos de programas de usuarios.

Page 16: Características del DBMS

16

La SCA suele ser de tamaño estático, cambiando únicamente cuando el software se reinstala o actualiza. El tamaño requerido para este área puede variar en función del SO. Son áreas de sólo lectura y pueden ser instalas de forma compartida o no compartida. Cuando es posible, el código de Oracle se comparte, por lo que todos los usuarios pueden acceder a él sin tener múltiples copias en memoria. El resultado es un ahorro considerable de memoria y una mejora del rendimiento general.

Page 17: Características del DBMS

17

Fig. 2.- Estructuras de memoria de base de datos

Page 18: Características del DBMS

18Descripción general del Área del usuario Global

La UGA es la memoria de la sesión, que es memoria asignada a las variables de sesión, como la información de inicio de sesión, y otra información requerida por una sesión de base de datos. En esencia, la UGA almacena el estado de sesión.

Fig. 3.- Área de Usuario Global

Page 19: Características del DBMS

19

Si una sesión de carga un paquete PL / SQL en la memoria, entonces la UGA contiene el estado de los paquetes, que es el conjunto de valores almacenados en las variables de paquete en un momento específico. El estado del paquete cambia cuando un subprograma cambia las variables. Por defecto, las variables de paquete son exclusivas y persisten durante toda la vida de la sesión.

Page 20: Características del DBMS

20

La página del pool OLAP se almacena también en la UGA.

Este grupo gestiona páginas de datos OLAP, que son equivalentes a los bloques de datos.

La pool de la página se asigna al inicio de una sesión de OLAP y deja en libertad al final de la sesión. Una sesión de OLAP se abre automáticamente cada vez que un usuario consulta un objeto tridimensional, como un cubo.

Page 21: Características del DBMS

21

La UGA debe estar disponible para una sesión de base de datos durante la vida de la sesión. Por esta razón, la UGA no se puede almacenar en el PGA cuando se utiliza un servidor compartido porque el PGA es específico de un único proceso. Por lo tanto, la UGA se almacena en el SGA cuando se utilizan conexiones de servidor compartido, lo que permite cualquier acceso compartido del proceso del servidor a la misma. Cuando se utiliza un servidor dedicado de conexión, la UGA se almacena en el PGA.

Page 22: Características del DBMS

22Esquema del área de Global Program

El PGA es específica para un proceso operativo o hilo que no es compartido por otros procesos o subprocesos en el sistema. Debido a que la PGA es específica del proceso, nunca se asigna al SGA.

El PGA es un montón de memoria que contiene las variables de sesión, requiere un proceso de servidor dedicado o compartido. El proceso del servidor asigna estructuras de memoria que se requieren en el PGA.

Page 23: Características del DBMS

23

Una analogía para un PGA es un espacio de trabajo temporal utilizado por un empleado de archivo. En esta analogía, el secretario de archivos es el proceso del servidor que hace el trabajo en nombre del cliente (proceso del cliente). El empleado borra una parte de la información, utiliza el espacio de trabajo para almacenar información acerca de la petición del cliente y ordena las carpetas solicitadas por el cliente, posteriormente libera el espacio cuando se hace el trabajo.

Page 24: Características del DBMS

24

Fig. 4.- Instancia PGA

Page 25: Características del DBMS

25El contenido de la PGA

El PGA se subdivide en diferentes zonas, cada una con un propósito diferente. En la figura 5, se muestra el posible contenido de la PGA para una sesión de servidor dedicado. No todas las áreas de la PGA existirán en cada caso.

Fig. 5.- Contenido del PGA.

Page 26: Características del DBMS

26Área SQL Privada

Un área privada SQL contiene información sobre una sentencia SQL analizada y otra información específica de la sesión para su procesamiento.

Cuando un proceso servidor ejecuta SQL o PL / SQL, el proceso utiliza el área SQL privada para almacenar variables con valores ligados, información de estado de ejecución de la consulta, y las áreas de trabajo de ejecución de consultas.

Page 27: Características del DBMS

27

No hay que confundir una zona privada de SQL, que se encuentra en la UGA, con la zona compartida SQL, que almacena los planes de ejecución en el SGA. Múltiples áreas privadas de SQL en el mismo o en diferentes sesiones pueden apuntar a un único plan de ejecución en el SGA.

Por ejemplo, 20 ejecuciones de SELECT * FROM empleados en una sola sesión y 10 ejecuciones de la misma consulta en una sesión diferente pueden compartir el mismo plan. Las áreas privadas SQL para cada ejecución no se comparten y pueden contener diferentes valores y datos.

Page 28: Características del DBMS

28Ciclo de vida de una sesión:

Page 29: Características del DBMS

29Cursor

Un cursor es un nombre para un área específica privada de SQL. Como se muestra en la Figura 6, se puede pensar en un cursor como puntero en el lado del cliente y como un estado en el lado del servidor. Debido a que los cursores están estrechamente relacionados con las áreas de SQL privadas, los términos se utilizan a veces indistintamente.

Page 30: Características del DBMS

30

Fig. 6.- Cursor

Page 31: Características del DBMS

31Un área SQL privada se divide en las siguientes áreas:

El área de ejecución (Run-time Area).

El área persistente (Persistent Area).

Page 32: Características del DBMS

32La zona de tiempo de ejecución

Esta área contiene información sobre el estado de ejecución de consultas. Por ejemplo, el seguimiento del número de filas recuperadas hasta el momento en un escaneo completo de tabla.

Oracle crea el área de ejecución en el primer paso que una ejecución es pedida. Para una sentencia INSERT, UPDATE y DELETE Oracle libera el área de ejecución después de que la sentencia ha sido ejecutada. Para las consultas, Oracle libera el área de ejecución solamente cuando todas las filas han sido recorridas, o la consulta ha sido cancelada.

Page 33: Características del DBMS

33El área persistente

Esta área contiene variables de valores enlazados. Un valor variable de vinculación se suministra a una sentencia SQL en tiempo de ejecución cuando se ejecuta la sentencia. El área persistente se libera sólo cuando el cursor está cerrado.

El proceso de cliente es responsable de la gestión de áreas privadas de SQL. La asignación y cancelación de asignación de áreas SQL privadas depende en gran medida de la aplicación, aunque el número de áreas SQL privadas que un proceso cliente puede asignar está limitado por los parámetros de inicialización OPEN_CURSORS .

Page 34: Características del DBMS

34Áreas de trabajo de SQL

Un área de trabajo es una asignación privada de PGA, es un área de memoria utilizada para las operaciones que requieren mucha memoria.

Por ejemplo, un operador que utiliza el área de ordenación para ordenar un conjunto de filas. Del mismo modo, una combinación hash utiliza un área de hash para construir una tabla hash, mientras que una combinación de mapa de bits utiliza el área de combinación de mapa de bits para combinar datos obtenidos de las exploraciones de varios índices de mapa de bits.

Page 35: Características del DBMS

35Esquema del área global del sistema

El SGA es un área de memoria de lectura / escritura que, junto con los procesos de fondo de Oracle, constituyen una instancia de base de datos. Todos los procesos de servidor que se ejecutan en nombre de los usuarios pueden leer la información en la instancia SGA.

Page 36: Características del DBMS

36

Cada instancia de base de datos tiene su propio SGA. La Base de datos Oracle asigna automáticamente la memoria para un SGA en el inicio de la instancia y reclama la memoria en caso de apagado.

Cuando se inicia una instancia de SQL * Plus u Oracle Enterprise Manager, el tamaño del SGA se muestra como en el ejemplo siguiente:

Page 37: Características del DBMS

37

SQL> STARTUP

instancia ORACLE comenzó.

total System Global Area 368283648 bytes

Tamaño fijo 1300440 bytes

Tamaño variable 343935016 bytes

Buffers de base de datos 16777216 bytes

Rehacer Buffers 6270976 bytes

Base de datos montada.

Base de datos abierta.

Page 38: Características del DBMS

38Database Buffer Cache

La caché del búfer de base de datos, también llamada la caché del búfer, es el área de memoria que almacena las copias de bloques de datos leídos de los archivos de datos. Un búfer es una dirección de memoria principal en el que el administrador del búfer almacena en caché temporalmente un bloque de datos que se utiliza en la actualidad o recientemente. Todos los usuarios están simultáneamente conectados a un acceso de instancia de base de datos de emisión para la caché del búfer.

Page 39: Características del DBMS

39

La Base de datos Oracle utiliza la caché del búfer para conseguir los siguientes objetivos:

Optimizar la E / S física

Mantener bloques de acceso frecuente en la caché del búfer y escribir bloques accede con poca frecuencia en el disco

Page 40: Características del DBMS

40Optimizar la E / S física

Los bloques de datos actualizan la base de datos en la memoria caché y almacena metadatos acerca de los cambios en el búfer del registro de rehacer(redo log). Después de un COMMIT , la base de datos escribe los buffers de rehacer en el disco, pero no escribe de inmediato bloques de datos. En cambio, el escritor de base de datos (DBW) realiza escrituras diferidas en segundo plano.

Page 41: Características del DBMS

41

Cuando la Flash Cache (caché flash) está activada, parte de la caché del búfer puede residir en la caché flash.

Esta extensión de caché del búfer se almacena en un dispositivo de disco flash. La base de datos puede mejorar el rendimiento mediante el almacenamiento en caché flash en lugar de leer el disco magnético.

Page 42: Características del DBMS

42Buffer Unidos

La base de datos utiliza algoritmos internos para búferes en la memoria caché. Un buffer puede estar en cualquiera de los siguientes estados mutuamente exclusivos:

No usado

El buffer está disponible para su uso, ya que nunca se ha utilizado o no se utiliza actualmente. Este tipo de buffer es el más fácil para la base de datos a utilizar.

Page 43: Características del DBMS

43

Limpio

Este buffer se utilizó anteriormente y ahora contiene una versión consistente de lectura de un bloque como de un punto en el tiempo. El bloque contiene datos, pero es "limpia" por lo que no tiene que verficarse con el punto de control. La base de datos puede fijar el bloque y volver a utilizarlo.

Page 44: Características del DBMS

44

Sucio

El buffer contiene datos modificados que aún no se ha escrito en el disco. La base de datos debe verificar el bloque antes de volver a usarlo.

Page 45: Características del DBMS

45Modos Buffer

Cuando un cliente solicita datos, la Base de Datos Oracle recupera buffers de la caché del búfer de la base de datos en cualquiera de los siguientes modos:

Modo actual

A modo actual, también llamado bloque db get, es una recuperación de un bloque tal como aparece actualmente en la caché del búfer.

Page 46: Características del DBMS

46

Modo coherente

Una lectura de obtención consistente es una recuperación de una versión coherente de lectura de un bloque. Esta recuperación puede utilizar datos de deshacer .

Page 47: Características del DBMS

47Buffer E / S

Un E / S lógica, también conocida como un búfer de E / S , se refiere a las lecturas y escrituras de buffers en la caché del búfer.

Cuando un buffer solicitado no se encuentra en la memoria, la base de datos realiza una E / S física para copiar el búfer de cualquier memoria caché flash o disco en la memoria, y una E / S lógica de para leer el buffer almacenado en caché.

Page 48: Características del DBMS

48Buffer de escritura

El proceso escritor de la base de datos (DBW) escribe periódicamente, buffers sucios en el disco. DBW no escribe buffers en las siguientes circunstancias:

Un proceso de servidor no puede encontrar buffers limpios para leer los nuevos bloques en la caché del búfer de base de datos.

A medida que se ensucian los buffers, el número de buffers libres disminuye. Si el número se reduce por debajo de un umbral

interno, y si se requieren buffers limpios, entonces DBW manda una señal a los procesos del servidor para no escribir.

Page 49: Características del DBMS

49

La bd pudo avanzar hasta el punto de chequeo, la cual es su posición en el hilo Redo, desde el cual la instancia puede iniciar una recuperación.

Los tablespaces han cambiado su status a solo lectura y permanecen offline.

Page 50: Características del DBMS

50Buffer de lectura

Cuando el número de buffers limpios o no utilizados es bajo, la base de datos debe eliminar buffers de la caché del búfer. El algoritmo depende de si el caché flash está activado:

Caché de Flash desactivado

La base de datos re-utiliza cada búfer limpio cuando se necesita, sobrescribirlo. Si se necesita el búfer se sobrescribe después, entonces la base de datos debe leerlo desde el disco magnético.

Page 51: Características del DBMS

51

Caché de Flash habilitado

El DBW no puede escribir el cuerpo de un buffer limpio a la caché de flash, lo que permite la reutilización de su búfer en memoria. La base de datos mantiene la cabecera del buffer en una lista LRU, en la memoria principal para rastrear el estado y la ubicación del cuerpo del buffer en la memoria caché flash. Si se necesita este buffer más tarde, a continuación, la base de datos se puede leer desde la memoria caché flash en lugar de desde el disco magnético.

Page 52: Características del DBMS

52

Cuando un proceso cliente hace una petición al buffer, el proceso del servidor busca en la cache del buffer. La búsqueda sigue el siguiente orden:

1.- El proceso del servidor busca en todo el búfer de la caché del búfer.

Si el proceso encuentra el buffer, a continuación, la base de datos realiza una lectura lógica de este buffer.

Page 53: Características del DBMS

53

2.- El proceso del servidor busca el encabezado de búfer en la lista LRU caché flash.

Si el proceso encuentra el encabezado de búfer, a continuación, la base de datos realiza una lectura física optimizada del cuerpo del buffer de la caché flash en la memoria caché.

Page 54: Características del DBMS

54

3.- Si el proceso no se ha encontrado el búfer en la memoria (un error de caché), entonces el proceso del servidor realiza los siguientes pasos:

Copia el bloque desde un archivo de datos en la memoria

Realiza una lectura lógica del buffer que se lee en la memoria

Page 55: Características del DBMS

55

Fig. 7.- Almacén intermedio de búsqueda