arquitectura de un manejador de una base de datos

Una base de datos en ejecución consta de 3 cosas:

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.

Memoria

Shared Global Area (SGA): es el área más grande de memoria y quizás el más importante
Shared Pool: es una caché que mejora el rendimiento ya que almacena parte del diccionario de datos y el parsing de algunas consultas en SQL
Redo Log Buffer: contiene un registro de todas las transacciones dentro de la base, las cuales se almacenan en el respectivo archivo de Redo y en caso de siniestro se vuelven a ejecutar aquellos cambios que aún no se hayan reflejado en el archivo de datos (commit).
Large Pool: espacio adicional, generalmente usado en casos de multithreading y esclavos de I/O.
Java Pool: usado principalmente para almacenar objetos Java
Program Global Area (PGA): información del estado de cursores/apuntadores
User Global Area(UGA): información de sesión, espacio de stack

Procesos

Threading
System Monitor: despierta periódicamente y realiza algunas actividades entre las que se encuentran la recuperación de errores, recuperación de espacio libre en tablespaces y en segmentos temporales.
Process Monitor: limpia aquellos procesos que el usuario termina de manera anormal, verificando consistencias, liberación de recursos, bloqueos.
Database Writer: escribe bloques de datos modificados del buffer al disco, aquellas transacciones que llegan a un estado de commit.
Log Writer: escribe todo lo que se encuentra en el redo log buffer hacia el redo file
Checkpoint: sincroniza todo lo que se tenga en memoria, con sus correspondientes archivos en disco



Instancia de una bd en Oracle












Rotación de segmentos de rollback






Rotación de bitácoras de Redo







Tipos de instancias de un DBMS
Online Transaction Processing (OLTP): compra/venta, telemarketing
Segmentos cortos de rollback
Shared Pool muy largo
Redo log suficiente
Indices en discos separados
Segmentos temporales pequeños
Decision Support Systems (DSS): datawarehouse
Segmentos largos de rollback
Shared Pool relativamente corto
Redo log suficiente
Indices apropiados
Segmentos largos de temporal
Parallel Query en la medida de lo posible (si está disponible)








Fuente:
http://ict.udlap.mx/people/carlos/is346/admon03.html

Publicado por Jonathan en 18:35 No hay comentarios:

Etiquetas: Administración De Base de Datos

Estructura de la SGA.

Oracle utiliza la memoria para almacenar la siguiente información:
Código del programa
Información acerca de una sesión conectada, incluso si no se encuentra activa.
Información necesaria durante la ejecución del programa(por ejemplo, el estado de las consultas)
La información que comparten y con la cual se comunican los procesos Oracle (por ejemplo, la información de bloqueo)
La Caché de Datos
La memoria se puede estructurar en las siguientes partes:
Área Global del sistema (SGA), la cual se comparte entre todos los servidores y los procesos en segundo plano.
Áreas globales de programas (PGA), que es privada para cada servidor y proceso en segundo planos; a cada proceso se asigna un PGA.
Área de Ordenaciones (Sort Areas).
Memoria Virtual
Área de código de Software (SCA).


Figura 1. Estructura de la memoria en Oracle
Área Global del Sistema (System Global Area, SGA)
El Á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.
Una instancia en Oracle se compone de un SGA y de procesos. Cuando se crea una instancia, Oracle asigna memoria a un SGA automáticamente y esta se devuelve al sistema operativo cuando la instancia se cierra. Por tanto, cada instancia posee su propio SGA.
Además, es de lectura/escritura. Todos los usuarios conectados a una instancia multiproceso pueden leer la información contenida en el SGA de la instancia y varios procesos pueden escribir en él durante la ejecución.
Una parte del SGA contiene información general acerca del estado de la base de datos y de la instancia, a la que los procesos en segundo plano necesitan acceder (SGA fija), pero no se almacenan los datos de usuario. El SGA también incluye información de comunicación entre procesos, como la información de bloqueos. Además, si el sistema usa una arquitectura de servidor compartido, entonces las colas de petición y respuesta y algunos contenidos del PGA se encuentran en el SGA.
El SGA contiene la siguiente estructura de datos:
Caché de los Buffers de la BD (Database Buffer Cache).
Buffer del Dietario o del Registro del Rehacer (Redo Log Buffer).
El ‘Pool’ Compartido (Shared Pool).
Caché de Biblioteca.
Caché del Diccionario de Datos.
Estructuras de Control.
Información diversa

Comentarios

Entradas populares de este blog

Registro de un procesador.