ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y...

28
ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto

Transcript of ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y...

Page 1: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

ARQUITECTURA DE ORACLE

Arquitectura de Bases de Datos

Maestría de Ingeniería de Sistemas y Computación

Universidad Nacional de Colombia

Ing. Wilson Soto

Page 2: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

INSTANCIA

Estado que presenta una base de datos en un tiempo dado.

Es posible que muchas instancias accedan a una única BD esta opción es conocida como Real Application Cluster (RAC).

Los parámetros que determinan el tamaño y la composición de una instancia se almacena en un archivo de inicialización init.ora o bien residen dentro de la BD, en un archivo de parámetros, conocido como SPFILE el cual esta almacenado en spfile.ora. Este archivo se lee durante el arranque de la instancia.

Page 3: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

Los Datos de una BD son almacenados en archivos físicos llamados datafiles en los discos. Internamente existen estructuras de la BD que proporcionan una asignación lógica de los datos con los archivos, lo que permite almacenar de forma separada diferentes tipos de datos. Estas divisiones lógicas se llaman espacios de tablas (tablespaces).

Así la división lógica de los objetos de BD entre varios espacios de tablas permite que dichos objetos se almacenen de forma física en archivos separados que pueden situarse en discos distintos.

DIVISION LOGICA DE LA BD

Page 4: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

Estructuras Internas de las BD

• Las internas de la BD (Tablas, usuarios y esquemas, índices, vistas, secuencias, procedimientos, funciones, paquetes y triggers, sinónimos, privilegios, roles, enlaces de BD, segmentos, extensiones y bloques, segmentos de rollback (anulación)).

• Las internas a las áreas de memoria (áreas de memoria compartida y los procesos).

• Las externas a la BD

• ORACLE utiliza procesos de background que son compartidos por todos los usuarios.

Page 5: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

Database

Instance

SGA

Redo logbuffer

Data buffercache

Shared pool

Data dict.cache

Librarycache

PMON DBW0SMON LGWRCKPT Others

Userprocess

Serverprocess

PGA

Control files

Data files

Redo logfiles

Archived log files

Parameterfile

Passwordfile

Estructuras de memoriaEstructuras de memoria

Procesos de Background Procesos de Background

Archivos Archivos

Page 6: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

La cual es privada para cada instancia o utilizada por un único proceso del usuario de ORACLE y además por los procesos de Background.

Existe una PGA por cada proceso. La PGA contiene lo siguiente:

Stack areasData areas

PGA (Program Global Area)

Page 7: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

• Es un grupo de estructuras de memoria compartida que contiene datos e información de control para una instancia de la BD.

• Almacena la mayor parte de la información sobre la propia estructura de la BD que es consultada con mas frecuencia.

• La SGA y los procesos constituye en ORACLE la instancia.

• Cada instancia tiene una propia SGA.

SGA (System Global Area)

Page 8: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

La SGA contiene las siguientes estructuras de datos:

Data buffer cacheRedo log bufferShared poolJava poolLarge pool (opcional)

Page 9: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

Data buffer cacheEs una parte de la SGA que mantiene copias de los bloques de la base de datos que son leídos desde los data files. Todos procesos de los usuarios concurrentemente son conectados a la instancia compartida para acceder al database buffer cache o bufer del bloque de datos.

El tamaño del cache del búfer del bloque de datos vienen determinado por el parámetro DB_BLOCK_BUFFERS del init.ora de dicho servidor de BD. La gestión del tamaño del cache del bufer del bloque de datos juega un importante papel en la gestión y ajuste de la BD.

Page 10: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

ORACLE gestiona el espacio disponible mediante un algoritmo de menos utilizado recientemente LRU (least rencently used). Cuando se necesita espacio libre en el cache, se escriben al disco los bloques menos utilizados recientemente, siendo sustituidos por nuevos bloques de datos. De esta forma, en la memoria se conservan los datos utilizados con mas frecuencia.

El Data buffer cache y el shared pool esta dividido en múltiples asignaciones de segmentos.Esta organización en múltiples segmentos lógicos reduce la contención sobre sistemas multiprocesos.

Page 11: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

Es un buffer circular en la SGA que mantiene la información de los últimos cambios realizados a la BD (registra los cambios realizados).

Esta información es almacenada en las entradas Redo conteniendo la información necesaria para reconstrucción (rehacer cambios hechos) a la base de datos por instrucciones DML y DDL.

Se escriben en los archivos de registro rehacer en línea de forma que puedan utilizarse en las operaciones de reconstrucción durante las recuperaciones de la BD.

Redo log buffer

Page 12: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

Las entradas redo son copiadas por la instancia de procesos desde el espacio de memoria del usuario al buffer de redo log en la SGA. Las entrada redo toman en forma contigua el espacio en el buffer. Los procesos de background LGWR escriben los redo log buffer en línea o grupos de archivos sobre disco.

La inicialización del parámetro LOG_BUFFER determina el tamaño en bytes de los buffers de redologs. Por lo general, los grandes valores reducen el log de IO, en especial si las transacciones son numerosas. El default es 4 veces el máximo del bloque de datos para el Sistema Operativo.

Page 13: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

Shared pool

Shared pool

LIBRARY CACHE

DATA DICTIONARY CACHE

La librería cache contiene las sentencias SQL, procedimientos, packages y estructuras de control.

El diccionario cache contiene tablas, columnas, objetos, privilegios.

La segunda vez que cualquier usuario ejecuta una sentencia SQL idéntica, puede aprovecharse la información de análisis disponible en el fondo común SQL compartido para acelerar su ejecución.

Page 14: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

El tamaño total del Shared pool es determinado por la inicialización en SHARE_POOL_SIZE. El valor default de este parámetro es de 8M sobre plataformas de 32 bits y 64 M sobre plataformas de 64 bits.

Mientras la cache de buffers de bloques de datos y la cache de diccionario permiten que los usuarios de BD compartan información sobre los datos y su estructura, la cache de biblioteca permite que compartan instrucciones SQL que se emplean con mas frecuencia.

Esta área contiene el plan de ejecución y el árbol de análisis de las instrucciones SQL que se ejecutan en la BD.

Page 15: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

Si hay mas de un usuario ejecutando al mismo tiempo una unidad de programa, el área compartida es usada por todos los usuarios, cada usuario mantiene una copia de su área privada SQL, manteniendo valores específicos para su sesión.

Page 16: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

Java pool

Satisface los requisitos de análisis de los comandos JAVA.

JAVA_POOL_SIZE se debe definir en el parámetro de inicialización. Ejemplo en UNIX el tamaño predeterminado es 24 M este se debe definir un mínimo basado en el tamaño del granulo de la BD.

Page 17: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

Large pool

Es una memoria opcional. Si se utiliza la opción de servidor compartido o si lleva a cabo operaciones de copia de seguridad o restauración con frecuencia, estas operaciones pudieran resultar mas eficientes si creara un área de bloques de gran tamaño.

El administrador de la BD puede configurar la memoria teniendo encuentra:Procesos de I/O.Operaciones de backup y recuperación.Sesiones de memoria compartida con mas de una BD. Esta se establece en el parámetro de inicialización LARGE_POOL_SIZE.

Page 18: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

Procesos ORACLE

Responde a todos los procesos que están conectados a la instancia

Ejecuta sentencias SQL de la aplicación

Lee bloques de datos desde un datafiles sobre el disco intercambiando buffers de la SGA

Retorna resultados con los pasos dados en la aplicación

Page 19: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

Procesos de Background

El máximo rendimiento entre muchos usuarios, multiprocesos y adicionalmente procesos.

• DATABASE WRITER = DBW0• LOG WRITER = LGWR • CHECKPOINT = CKPT• SYSTEM MONITOR = SMON• ARCHIVER = ARCH• RECOVER = RECO

Page 20: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

DBWn

Escribe el contenido a los buffers de archivos de datos (datafiles). Es el responsable de escribir modificaciones en la base de datos del buffer cache memoria a disco. Cuando modifica algún dato en la BD por ejemplo insertar, actualizar o eliminar, no solo modifican los datos en el disco. Cuando un hilo del usuario quiere leer un nuevo bloque de datos en la memoria pero no queda espacio libre o cuando el sistema realiza un control.Toda instancia de ORACLE tiene al menos un DBW. Los sistemas que deben soportar un gran volumen de rendimiento de transacciones pueden funcionar mejor con dos o mas hilos.

Page 21: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

LGWR

Este hilo registra la información sobre los cambios realizados a todas las transacciones que se confirman.

ORACLE registra el registro de transacciones así:

1. A medida que se realiza una transacción, ORACLE crea pequeños registros llamados redo log, que contienen justo la información necesaria para volver a generar los cambios realizados por la transacción.

Page 22: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

2. ORACLE almacena temporalmente las entradas redo log de las transacciones en el buffer del registro redolog de la instancia. El buffer del registro redolog de la instancia es una memoria pequeña que hace de cache temporal para las entradas redolog de la transacción para todas las transacciones del sistema.

3. Cuando se le pide a ORACLE que confirme la transacción LGWR lee las correspondientes entradas redolog desde el buffer del registro redolog y las escribe en el registro de transacciones de la BD. El registro de transacciones de la BD es un conjunto de archivos dedicados a registrar las entradas redolog creadas por todas las transacciones del sistema.

Page 23: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

Database

Instance

LGWR

SGA

Redo logbuffer

Data buffercache

Shared pool

COMMIT ProcessingCOMMIT Processing

1

2

34

Userprocess

Serverprocess

Control files

Data files

Redo logfiles

Page 24: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

ARCH

Hace una copia de seguridad de los archivos históricos de transacción automáticamente después de que LGWR los llene con las entradas rehacer. El conjunto secuencial de archivos históricos de transacción archivado que crea ARCH recibe el nombre global de registro de transacciones rehacer fuera de línea de la base de datos. Si una BD sufre una falla por ejemplo un disco, ORACLE usa las copias de seguridad de la BD y el registro de transacciones para recuperarla y todas las transacciones confirmadas.

Page 25: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

CKPT

Periódicamente el DBWR realiza un control. Durante un control, DBWR escribe todos los bloques de datos modificados desde memoria a los archivos de datos de la BD. El propósito de un control es establecer indicadores de consistencia de transacciones en el disco. Después de realizar un control, los cambios realizados por todas las transacciones se han escrito en los archivos de datos. Por lo tanto un control indica cuantas entradas rehacer del histórico debe aplicar ORACLE si el servidor deja de funcionar y existe la necesidad de recuperar la BD.

Page 26: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

SMON

Durante el procesamiento de las BD, realiza muchas operaciones internas. Cuando se arranca la BD SMON realiza la recuperación de la instancia, según lo que se necesite utilizando archivos del registro rehacer.

También limpia la BD eliminando objetos de las transacciones que el sistema ya no necesita. Agrupa extensiones libres contiguas en extensiones libres mayores.

Page 27: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

PMON

En ocasiones las conexiones de usuario no terminan correctamente. Por ejemplo un error de red puede desconectar sesiones. El SMON (System monitor) avisa de cuando han dejado de funcionar las conexiones del usuario. PMON borra después las conexiones huérfanas deshaciendo las transacciones de la sesión muerta y liberando cualquiera de los recursos de sesión que podrían de otra forma bloquear a otros usuarios.

Page 28: ARQUITECTURA DE ORACLE Arquitectura de Bases de Datos Maestría de Ingeniería de Sistemas y Computación Universidad Nacional de Colombia Ing. Wilson Soto.

RECO

ORACLE puede soportar sistemas de BD distribuidas y transacciones distribuidas.

Se activa automáticamente para resolver todas la transacciones distribuidas dudosas a medida que estas ocurren.

RECO resuelve el resultado local de una transacción distribuida dudosa para que coincida con el resultado de la transacciones en otros nodos. Parámetro en el init.ora superior a 0 DISTRIBUTED_TRANSACTIONS.