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