Está en la página 1de 55

1

Caractersticas del DBMS


ARQUITECTURA DEL GESTOR

Estructura de memoria y procesos de la instancia


ADMINISTRACIN DE BD

La Gestin de la memoria implica el mantenimiento de tamaos 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 mtodos de gestin de memoria, que son elegidos por los ajustes de parmetros de inicializacin. A partir de la versin 11g, Oracle recomienda que se habilite el mtodo conocido como la gestin de memoria automtica .

Arquitectura de la memoria
Las estructuras de memoria bsicos asociados con base de datos Oracle incluyen:

rea Global del Sistema (SGA)


Area Global del programa(PGA Programa)

rea Global del Sistema (SGA)


El SGA es un conjunto de estructuras de memoria compartida, conocidos como componentes SGA, que contienen datos e informacin 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.

rea Global del programa (PGA)


Es una regin de memoria que contiene datos e informacin 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 tambin asignan sus propios PGA.

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 coleccin de todos los PGA individuales se conoce como la instancia total del PGA, o simplemente instancia PGA .

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

Si la base de datos se ejecuta en Solaris u Oracle Linux, se puede aadir opcionalmente otro componente de memoria: Smart Flash Cache (cach flash). La cach flash es una extensin de la cach del bfer-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 general, especialmente para uso intensivo de lectura procesamiento de transacciones en lnea (OLTP) las cargas trabajo. La cach de flash reside en uno o ms dispositivos disco de destello, que son dispositivos de almacenamiento estado slido que utilizan memoria flash. en de de de de

10

Estructuras bsicas de memoria

Las estructuras de memoria bsicas asociadas con la base de datos Oracle incluyen:

11

Sistema de rea global (SGA) Programa de rea global (PGA) rea Global Usuario(UGA) reas de cdigo Software

Sistema de rea global (SGA)


El SGA es un conjunto de estructuras de memoria compartida, conocidos como componentes SGA, los cuales contienen datos e informacin 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.

12

Programa de rea global (PGA)


Es una regin de memoria no compartida que contiene datos e informacin 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.

13

rea Global Usuario(UGA)


La UGA es la memoria asociada con una sesin de usuario.

14

reas de cdigo Software


El rea de cdigo de software son zonas de memoria destinadas a almacenar el cdigo de Oracle en ejecucin o que puede ejecutarse. Este cdigo de Oracle se almacena en una zona distinta, y ms protegida, que las zonas dedicadas a almacenar los cdigos de programas de usuarios.

15

16

La SCA suele ser de tamao esttico, cambiando nicamente cuando el software se reinstala o actualiza. El tamao requerido para este rea puede variar en funcin del SO. Son reas de slo lectura y pueden ser instalas de forma compartida o no compartida. Cuando es posible, el cdigo de Oracle se comparte, por lo que todos los usuarios pueden acceder a l sin tener mltiples copias en memoria. El resultado es un ahorro considerable de memoria y una mejora del rendimiento general.

17

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

Descripcin general del rea del usuario Global


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

18

Fig. 3.- rea de Usuario Global

19

Si una sesin 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 especfico. 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 sesin.

20

La pgina del pool OLAP se almacena tambin en la UGA. Este grupo gestiona pginas de datos OLAP, que son equivalentes a los bloques de datos. La pool de la pgina se asigna al inicio de una sesin de OLAP y deja en libertad al final de la sesin. Una sesin de OLAP se abre automticamente cada vez que un usuario consulta un objeto tridimensional, como un cubo.

21

La UGA debe estar disponible para una sesin de base de datos durante la vida de la sesin. Por esta razn, la UGA no se puede almacenar en el PGA cuando se utiliza un servidor compartido porque el PGA es especfico 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 conexin, la UGA se almacena en el PGA.

Esquema del rea de Global Program


El PGA es especfica para un proceso operativo o hilo que no es compartido por otros procesos o subprocesos en el sistema. Debido a que la PGA es especfica del proceso, nunca se asigna al SGA. El PGA es un montn de memoria que contiene las variables de sesin, requiere un proceso de servidor dedicado o compartido. El proceso del servidor asigna estructuras de memoria que se requieren en el PGA.

22

23

Una analoga para un PGA es un espacio de trabajo temporal utilizado por un empleado de archivo. En esta analoga, 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 informacin, utiliza el espacio de trabajo para almacenar informacin acerca de la peticin del cliente y ordena las carpetas solicitadas por el cliente, posteriormente libera el espacio cuando se hace el trabajo.

24

Fig. 4.- Instancia PGA

El contenido de la PGA
El PGA se subdivide en diferentes zonas, cada una con un propsito diferente. En la figura 5, se muestra el posible contenido de la PGA para una sesin de servidor dedicado. No todas las reas de la PGA existirn en cada caso.

25

Fig. 5.- Contenido del PGA.

rea SQL Privada


Un rea privada SQL contiene informacin sobre una sentencia SQL analizada y otra informacin especfica de la sesin 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, informacin de estado de ejecucin de la consulta, y las reas de trabajo de ejecucin de consultas.

26

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 ejecucin en el SGA. Mltiples reas privadas de SQL en el mismo o en diferentes sesiones pueden apuntar a un nico plan de ejecucin en el SGA.

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

Ciclo de vida de una sesin:

28

Cursor
Un cursor es un nombre para un rea especfica 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 estn estrechamente relacionados con las reas de SQL privadas, los trminos se utilizan a veces indistintamente.

29

30

Fig. 6.- Cursor

Un rea SQL privada se divide en las siguientes reas:

31

El rea de ejecucin (Run-time Area). El rea persistente (Persistent Area).

La zona de tiempo de ejecucin

32

Esta rea contiene informacin sobre el estado de ejecucin de consultas. Por ejemplo, el seguimiento del nmero de filas recuperadas hasta el momento en un escaneo completo de tabla. Oracle crea el rea de ejecucin en el primer paso que una ejecucin es pedida. Para una sentencia INSERT, UPDATE y DELETE Oracle libera el rea de ejecucin despus de que la sentencia ha sido ejecutada. Para las consultas, Oracle libera el rea de ejecucin solamente cuando todas las filas han sido recorridas, o la consulta ha sido cancelada.

El rea persistente
Esta rea contiene variables de valores enlazados. Un valor variable de vinculacin se suministra a una sentencia SQL en tiempo de ejecucin cuando se ejecuta la sentencia. El rea persistente se libera slo cuando el cursor est cerrado. El proceso de cliente es responsable de la gestin de reas privadas de SQL. La asignacin y cancelacin de asignacin de reas SQL privadas depende en gran medida de la aplicacin, aunque el nmero de reas SQL privadas que un proceso cliente puede asignar est limitado por los parmetros de inicializacin OPEN_CURSORS .

33

reas de trabajo de SQL


Un rea de trabajo es una asignacin 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 ordenacin para ordenar un conjunto de filas. Del mismo modo, una combinacin hash utiliza un rea de hash para construir una tabla hash, mientras que una combinacin de mapa de bits utiliza el rea de combinacin de mapa de bits para combinar datos obtenidos de las exploraciones de varios ndices de mapa de bits.

34

Esquema sistema

del

rea

global

del

35

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 informacin en la instancia SGA.

36

Cada instancia de base de datos tiene su propio SGA. La Base de datos Oracle asigna automticamente 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 tamao del SGA se muestra como en el ejemplo siguiente:

37

SQL> STARTUP instancia ORACLE comenz. total System Global Area 368283648 bytes Tamao fijo 1300440 bytes Tamao variable 343935016 bytes Buffers de base de datos 16777216 bytes Rehacer Buffers 6270976 bytes Base de datos montada. Base de datos abierta.

Database Buffer Cache


La cach del bfer de base de datos, tambin llamada la cach del bfer, es el rea de memoria que almacena las copias de bloques de datos ledos de los archivos de datos. Un bfer es una direccin de memoria principal en el que el administrador del bfer almacena en cach temporalmente un bloque de datos que se utiliza en la actualidad o recientemente. Todos los usuarios estn simultneamente conectados a un acceso de instancia de base de datos de emisin para la cach del bfer.

38

39

La Base de datos Oracle utiliza la cach del bfer para conseguir los siguientes objetivos:

Optimizar la E / S fsica Mantener bloques de acceso frecuente en la cach del bfer y escribir bloques accede con poca frecuencia en el disco

Optimizar la E / S fsica
Los bloques de datos actualizan la base de datos en la memoria cach y almacena metadatos acerca de los cambios en el bfer del registro de rehacer(redo log). Despus 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.

40

41

Cuando la Flash Cache (cach flash) est activada, parte de la cach del bfer puede residir en la cach flash. Esta extensin de cach del bfer 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 magntico.

Buffer Unidos
La base de datos utiliza algoritmos internos para bferes 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 ms fcil para la base de datos a utilizar.

42

43

Limpio

Este buffer se utiliz anteriormente y ahora contiene una versin 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.

44

Sucio

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

Modos Buffer
Cuando un cliente solicita datos, la Base de Datos Oracle recupera buffers de la cach del bfer de la base de datos en cualquiera de los siguientes modos: Modo actual A modo actual, tambin llamado bloque db get, es una recuperacin de un bloque tal como aparece actualmente en la cach del bfer.

45

46

Modo coherente

Una lectura de obtencin consistente es una recuperacin de una versin coherente de lectura de un bloque. Esta recuperacin puede utilizar datos de deshacer .

Buffer E / S

47

Un E / S lgica, tambin conocida como un bfer de E / S , se refiere a las lecturas y escrituras de buffers en la cach del bfer.

Cuando un buffer solicitado no se encuentra en la memoria, la base de datos realiza una E / S fsica para copiar el bfer de cualquier memoria cach flash o disco en la memoria, y una E / S lgica de para leer el buffer almacenado en cach.

Buffer de escritura
El proceso escritor de la base de datos (DBW) escribe peridicamente, buffers sucios en el disco. DBW no escribe buffers en las siguientes circunstancias:

48

Un proceso de servidor no puede encontrar buffers limpios para leer los nuevos bloques en la cach del bfer de base de datos. A medida que se ensucian los buffers, el nmero de buffers libres disminuye. Si el nmero se reduce por debajo de un umbral interno, y si se requieren buffers limpios, entonces DBW manda una seal a los procesos del servidor para no escribir.

49

La bd pudo avanzar hasta el punto de chequeo, la cual es su posicin en el hilo Redo, desde el cual la instancia puede iniciar una recuperacin. Los tablespaces han cambiado su status a solo lectura y permanecen offline.

Buffer de lectura
Cuando el nmero de buffers limpios o no utilizados es bajo, la base de datos debe eliminar buffers de la cach del bfer. El algoritmo depende de si el cach flash est activado:

50

Cach de Flash desactivado La base de datos re-utiliza cada bfer limpio cuando se necesita, sobrescribirlo. Si se necesita el bfer se sobrescribe despus, entonces la base de datos debe leerlo desde el disco magntico.

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 reutilizacin de su bfer 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 ubicacin del cuerpo del buffer en la memoria cach flash. Si se necesita este buffer ms tarde, a continuacin, la base de datos se puede leer desde la memoria cach flash en lugar de desde el disco magntico.

52

Cuando un proceso cliente hace una peticin al buffer, el proceso del servidor busca en la cache del buffer. La bsqueda sigue el siguiente orden: 1.- El proceso del servidor busca en todo el bfer de la cach del bfer.

Si el proceso encuentra el buffer, a continuacin, la base de datos realiza una lectura lgica de este buffer.

53

2.- El proceso del servidor busca el encabezado de bfer en la lista LRU cach flash.

Si el proceso encuentra el encabezado de bfer, a continuacin, la base de datos realiza una lectura fsica optimizada del cuerpo del buffer de la cach flash en la memoria cach.

54

3.- Si el proceso no se ha encontrado el bfer 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 lgica del buffer que se lee en la memoria

55

Fig. 7.- Almacn intermedio de bsqueda

También podría gustarte