Está en la página 1de 5

Oracle es un sistema de gestin de base de datos relacional ( RDBMS Relational Data Base Management System ), capaz de manejar gran

cantidad de datos en un entorno multi -usuario, donde gran cantidad de usuarios pueden acceder a la misma informacin de forma concurrente. Componentes de la Arquitectura de la Base de Datos Oracle Un sistema de base de datos Oracle consta de 2 partes, la base de datos en s y una instancia de la base de datos. La base de datos consta de estructuras fsicas y lgicas, mientras que la instancia consta de estructuras de memoria y de procesos asociados con dicha instancia. Estructuras de Memoria: Como comentbamos anteriormente, una instancia de base de datos consta de un rea de memoria y una serie de procesos que se hacen llamar procesos de background. Cada vez que una instancia se levanta, se reserva un rea de memoria denominada SGA (System Global Area), y se ejecutan los procesos asociados. Existen 2 estructuras bsicas de memoria en una instancia de base de datos: System Global Area (SGA): Esta estructura de memoria es una memoria compartida, ya que tanto el servidor como los procesos de background tienen acceso a dicha rea de memoria. Program Global Area (PGA): Esta regin de memoria es una memoria privada, que solo es accesible por los procesos del servidor o de background. La PGA por tanto no es una memoria compartida, cada proceso tiene su propia PGA. SGA Database Buffer Cache: Como sabemos Oracle trabaja con bloques de datos (mnima cantidad de informacin que almacena Oracle y que por defecto suelen ser 8 kb) y no con filas. En esta parte de memoria se almacenan imgenes de los bloques de datos fsicos (de disco) utilizados para realizar consultas o que han sido modificados por una sentencia. Redo Log Buffer: El Redo Log Buffer se podra definir como una bitcora. Esta parte de la memoria acta como un buffer circular y es donde se registrarn todos los cambios que se produzcan en la base de datos, entendiendo por cambios la ejecucin de las sentencias DML (Insert, Update, Delete, Merge) y DDL (Create, Alter, Drop, Truncate). Estas entradas de redo se almacenarn por si fuese necesario una recuperacin de la base de datos. Shared Pool: El rea de memoria que comprende la Shared Pool contiene la library cache, el data dictionary cache y el result cache. El data dictionary cache es una especie de metadatos de la base de datos, es en definitiva una coleccin de tablas y vistas que contienen informacin de la base de datos, sus estructuras y sus usuarios. Es una zona bastante accedida de la base de datos. Otra rea es la library cache. Es sin duda otra zona bastante concurrida de la base de datos. Oracle representa cada sentencia SQL que se ejecuta con una zona SQL compartida, con lo que Oracle es capaz de reconocer cuando 2 usuarios ejecutan la misma sentencia, y as poder reutilizar la misma rea para ambos usuarios. Esta zona de memoria compartida contiene el plan de ejecucin, con lo que Oracle ahorra memoria utilizando la misma rea para las sentencias que se ejecutan en mltiples ocasiones.

En la result cache se almacenan filas y no bloques. En este rea por ejemplo podemos guardar listas de valores muy utilizadas. Para ello tendremos que definir un tipo de Hint especial en nuestras consultas que hagan que los resultados obtenidos se almacenen en esta cache. Large Pool: Esta zona es opcional. El administrador del sistema puede configurarla siempre que quiera reservar memoria para realizar operaciones de backup o recuperacin de la base de datos o consultas en paralelo. Java Pool: Esta zona se utiliza para almacenar cdigo Java almacenado y datos de la JVM. Es a partir de la versin 8i de Oracle a partir de la cual tenemos disponible esta caracterstica. Stream Pool: Zona de memoria utilizada para almacenar Oracle Streams. Normalmente se usa en la configuracin de Data Guards (Replicaciones de datos, donde a partir de este buffer se ir enviando datos a una base de datos secundaria). A menos que se haya configurado, el tamao de esta zona de memoria ser de 0 kb. Keep, Recyble Pools: Estas zonas de memorias son similares a la Database Buffer Cache, pero se difieren en que son diseados para mantener la informacin ms o menos tiempo de lo que la retendra el algoritmo LRU. Con la infraestructura dinmica de la SGA, el tamao de los buffers puede ser alterado sin parar la base de datos. La base de datos utiliza una serie de parmetros de inicializacin para crear y manejar las estructuras de memoria. La manera ms simple de controlar la memoria de la base de datos es dejar a la base de datos que lo haga de forma automtica. Para conseguirlo, lo nico que tendremos que hacer es establecer 2 parmetros de configuracin: MEMORY_TARGET y MEMORY_MAX_TARGET. PGA La Program Global Area, es una regin privada de memoria que contiene datos e informacin de control de los procesos del servidor. Cada proceso tiene su propia PGA, y el acceso a dicha informacin es totalmente exclusivo. En un servidor dedicado, cada proceso tendr un espacio de pila y una zona denominada User Global Area (UGA). En un servidor compartido, en el cual mltiples usuarios comparten el mismo proceso servidor, ste solo tendr el espacio de pila, mientras que la UGA se almacenar en la SGA. En la UGA nos encontraremos con la siguiente informacin: Cursores abiertos Informacin de la sesin (quien eres, el rol que tienes) reas de trabajo SQL: Consistentes en la realizacin de varias operaciones SQL, como la ordenacin de las consultas (ORDER BY, GROUP BY). En este ejemplo, en el caso de no haber suficiente espacio para llevar a cabo dicha operacin esta informacin ser llevada a disco. Los procesos de usuario y los procesos Oracle Un proceso de usuario ejecuta el cdigo de un programa de aplicacin o una herramienta Oracle, y se comunica con los procesos del servidor.

Los procesos del servidor son creados por Oracle para capturar los requerimientos de los procesos de usuario. Los procesos background realizan las operaciones de I/O y monitorean a los otros procesos; lo realizan asincrnicamente para proveer mayor paralelismo y mejorar la performance. Database Writer (DBWR) Escribe los bloques modificados desde el DB buffer a los datafiles. Log Writer (LGWR) Escribe las entradas del redo log generadas en el redo log buffer al disco. Checkpoint (CKPT) Da una seal al DBWR de los checkpoints y actualiza todos los datafiles y control files para indicar el ms reciente checkpoint. System Monitor (SMON) Realiza la recuperacin de la instancia cuando se realiza el startup. Limpia los segmentos temporales y recupera transacciones muertas durante alguna falla. Process Monitor (PMON) Realiza la recuperacin de los procesos cuando un proceso de usuario falla; limpia el cach y libera recursos que el proceso usaba. Archiver (ARCH) Copia el redo log file online a un almacenamiento de archivo cuando est lleno. Recoverer (RECO) Resuelve transacciones distribuidas que quedaron pendientes durante una falla en una DB distribuida. Dispatcher (Dnnn) Se presentan cuando es usada una configuracin de server multithread. Lock (LCKn) Es usado para el bloqueo inter-instancia en el Oracle Parallel Server. Estructura lgica de la DB Tablespaces La DB est dividida en una o ms unidades lgicas de almacenamiento llamadas tablespaces, que a su vez pueden estar constituidos por uno o ms archivos del S.O., llamados datafiles. Representan un nivel medio

entre la DB y los datafiles. Por su parte, un datafile puede ser asociado con slo una tablespace y una base de datos Data blocks Un bloque de datos del Oracle Server es la menor unidad de almacenamiento usada por la base de datos. Extents Un extent es un conjunto de bloques de datos contiguos. Segments Un conjunto de uno o ms extents que contiene todos los datos para una estructura especfica en un tablespace. El segmento de datos es una coleccin de extents que mantiene todos los datos para una tabla o cluster. El segmento de ndices mantiene todos los datos para un ndice. El segmento de rollback mantiene datos para rollback, consistencia de lecturas o recuperacin El segmento temporario es una coleccin de extents que mantiene datos pertenecientes a objetos temporales (consultas largas que necesitan guardar resultados intermedios).

Estructura fsica de la DB Datafiles Contienen todos los datos de la base de datos, como las tablas e ndices. Redo Log files Mantienen registros de todos los cambios hechos a la base de datos, con fines de recuperacin. Formato del bloque de datos El bloque est dividido en el overhead, los datos de fila, y el espacio libre entre ellos dos. El overhead El overhead est constituido por: Cabecera (Header) contiene informacin general del bloque tales como la direccin del bloque y el tipo de segmento (datos, ndices o rollback). Directorio de tablas (Table Directory) contiene informacin acerca de aquellas tablas que tienen filas en este bloque. Directorio de filas (Row Directory) contiene informacin sobre las filas actuales en el bloque, incluyendo direcciones para cada pedazo de fila en el rea de datos.

Control files

Almacenan la estructura fsica y el estado de la base de datos. Tablas Nonclustered En tanto existan las tablas nonclustered o hasta que se las trunca, cualquier bloque de datos asignado a su segmento de datos permanece asignado a la tabla. Despus de eliminarse una tabla nonclustered, este espacio puede ser reclamado cuando otros extents requieran espacio libre. Tablas Clustered Almacenan su informacin en los segmento de datos creados para el cluster. Si se elimina una tabla en un cluster, el segmento de datos permanece para las otras tablas en el cluster y ningn extent se desasigna. Indices Todos los extents asignados en un segmento ndice permanecen asignados en tanto y en cuanto exista el ndice. Segmentos Rollback Oracle peridicamente chequea para ver si los segmentos de rollback de una base de datos han crecido ms que su tamao ptimo. Si un segmento rollback es mayor que su ptimo, Oracle automticamente desasigna uno o ms extents de su segmento de rollback. Segmentos temporarios Cuando se completa la ejecucin de una sentencia que requiere un segmento temporario, Oracle automticamente lo elimina. Segmentos Un segmento es un conjunto de extents que contienen todos los datos para una estructura de almacenamiento lgico especfica. Segmentos de datos Cada tabla o particin nonclustered y cada cluster en una base de datos Oracle tiene un segmento de datos simple para mantener todos sus datos.

También podría gustarte