Está en la página 1de 30

Instituto Profesional DuocUC Escuela de Ingeniera

Componentes Arquitectura Oracle

Jaime Amigo P. 2006, Santiago - Chile

Instituto Profesional DuocUC Escuela de Ingeniera

Objetivos
Despus de completar esta leccin, usted deber: Comprender la Arquitectura Oracle y sus principales componentes Listar las estructuras involucradas en la conexin de un usuario a una Instancia Oracle

Instituto Profesional DuocUC Escuela de Ingeniera

Descripcin Componentes Principales

Descripcin Componentes Principales La arquitectura Oracle incluye un nmero primario de componentes las que sern discutidas a lo largo de la leccin. La arquitectura de Oracle Server puede ser descrita en tres categoras: 1. Procesos de Usuarios 2. Estructuras de Memorias que recolectan datos, llamada Instancia Oracle 3. Estructuras fsicas de archivos que se denomina Base de Datos (Data Files, Control Files y Redo Log Files) La figura expuesta a primera vista puede parecer compleja, sin embargo, cada uno de esos componentes ser descrito en mayor detalle en las siguientes lecciones. Procesos de Usuarios A nivel de usuarios, dos procesos permiten a un usuario interactuar con la instancia y finalmente con la base de datos: Procesos Usuarios y Procesos Servidor.

Descripcin de componentes principales (continuacin) Cuando un usuario corre una aplicacin (sqlplus, forms, etc), Oracle levanta un proceso usuario para soportar la conexin a la instancia. Dependiendo de la arquitectura de la aplicacin el proceso usuario existen en el propio PC del usuario o en una capa intermedia del servidor de aplicaciones. As, este proceso usuario inicia la conexin a la instancia. Oracle llama la iniciacin y mantenimiento de la comunicacin entre proceso usuario y la instancia, conexin. Cuando la conexin es hecha, el usuario estable una sesin en la instancia. Despus de establecer una sesin, cada usuario inicia un Proceso Servidor en el Servidor (Host). Este proceso servidor, es responsable de ejecutar las tareas que permiten al usuario interactuar con la base de datos. En resumen, un proceso usuario y servidor, estn asociados con cada conexin de usuario y una estructura adicional de memoria llamada Program Global Area (PGA) se crea para cada usuario. La PGA almacena informacin especfica de la sesin tales como valores de variables. Cada proceso servidor sobre el servidor tiene un rea de memoria llamada PGA.

Instituto Profesional DuocUC Escuela de Ingeniera

Servidor Oracle

Un Servidor Oracle: Es un Sistema Administrador de Bases de Datos que provee una administracin abierta, comprensiva, integrada de informacin Consiste de una instancia Oracle y una base de datos Oracle

Instituto Profesional DuocUC Escuela de Ingeniera

Instancia Oracle
Es el medio para accesar una base de datos Oracle Siempre abre una y solo una base de datos Consiste de estructuras de memoria y procesos

Instancia Oracle Una instancia Oracle esta conformada por una estructura de memoria llamada System Global Area (SGA) y varios procesos background. El proceso servidor se comunica con la SGA para satisfacer los requerimientos de informacin del usuario. Los componentes de la SGA sern descritos con mayor detalles mas adelante Si se esta en una ambiente UNIX o LINUX y tiene un motor Oracle y una instancia subida, podr ver los procesos background de dicha instancia ejecutando el comando ps fea|grep ora_. All aparecer el dueo, el process id padre, process id hijo, hora de inicio del proceso y nombre del proceso.

Instancia Oracle (continuacin)

Ejemplo muestra procesos en Linux de una instancia Oracle version 10g oracle 32723 oracle 32725 oracle 32727 oracle 32729 oracle 32731 oracle 32733 oracle 32735 oracle 32737 oracle 32751 oracle oracle oracle 367 369 371 1 0 Mar17 ? 1 0 Mar17 ? 1 0 Mar17 ? 1 0 Mar17 ? 1 0 Mar17 ? 1 0 Mar17 ? 1 0 Mar17 ? 1 0 Mar17 ? 1 0 Mar17 ? 1 0 Mar17 ? 1 0 Mar17 ? 1 0 Mar17 ? 00:00:04 ora_pmon_desa10g 00:00:00 ora_mman_desa10g 00:00:04 ora_dbw0_desa10g 00:00:09 ora_lgwr_desa10g 00:00:13 ora_ckpt_desa10g 00:00:12 ora_smon_desa10g 00:00:00 ora_reco_desa10g 00:00:01 ora_cjq0_desa10g 00:00:00 ora_o000_desa10g 00:00:02 ora_qmnc_desa10g 00:00:33 ora_mmon_desa10g 00:00:04 ora_mmnl_desa10g

Instituto Profesional DuocUC Escuela de Ingeniera

Estableciendo una conexin y creando una sesin


Establecer una conexin de usuario y crear una sesin, es lo que se conoce como conectarse a una instancia Oracle

Instituto Profesional DuocUC Escuela de Ingeniera

Base de Datos Oracle


Es una coleccin de datos tratados como una unidad El propsito general es almacenar y recuperar datos de informacin relacionada Consiste de tres tipos de archivos
Data Files Control Files Redo Log Files

Base de Datos Oracle Una instancia es una estructura temporal de memoria, pero la base de datos Oracle esta basada en un conjunto de archivos fsicos que residen dentro de un servidor en discos duros. Estos archivos son llamados, control files, data files y redo logs. Otros archivos fsicos que estn asociados a una base de datos Oracle pero que tcnicamente no son parte de esta son el password file (archivos de password), el PFILE y SPFILE (que sern descritos en otras secciones de este curso) y finalmente, archive redo log files. El detalle de cada uno de estos tipos de archivos ser cubierto en el transcurso de este curso.

Instituto Profesional DuocUC Escuela de Ingeniera

Estructura Fsica
La estructura fsica de una base de datos Oracle esta determinada por los archivos del Sistema Operativo que proveen el almacenamiento fsico para la informacin de la base de datos Control files Data files Redo log files

Estructura Fsica Control File Contiene informacin de otros archivos fsicos, nombre de la base de datos, tamao del bloque de la base de datos, conjunto de caracteres e informacin para recuperacin. Estos archivos son requeridos para abrir la base de datos. Data Files Contienen la informacin que registran las aplicaciones finales de usuarios Redo Log Registra todos los cambios hechos a la base de datos y es usado para recuperacin Archivos de Parmetros (PFILE y SPFILE) Son parmetros de configuracin de la SGA, caractersticas opcionales de Oracle y procesos background Archived Log Son copias del contenido de Redo Log previos y son usados para recuperacin 10

Estructura Fsica (continuacin)

Password File Archivo opcional usado para almacenar nombres de usuarios que les han sido otorgados los privilegios de SYSDBA y SYSOPER Oracle Net Entradas que configuran el listener de la base de datos y los clientes, permitiendo as la conectividad entre aplicaciones y el servidor

11

Instituto Profesional DuocUC Escuela de Ingeniera

Estructura de Memoria
La estructura de memoria consiste de dos reas conocidas como: SGA (System Global Area):
Asignada en la subida de la instancia (startup) y es un componente fundamental de una instancia Oracle

PGA (Program Global Area):


Asignada cuando el proceso servidor es iniciado

SGA (System Global Area) Conjunto de memoria compartida que contiene datos e informacin de control para una determinada instancia ORACLE. El SGA se mantiene en memoria virtual del computador en el que reside la instancia ORACLE. Si dentro de la instancia existe la posibilidad de que ms de un usuario se encuentre conectado simultneamente, los datos dentro de la SGA de la instancia son compartidos entre todos los usuarios. PGA (Programa Global Area) Los procesos servidores (Snnn) se comunican con los diferentes procesos de usuario e interactan con ORACLE para satisfacer las peticiones. Por ejemplo, cuando un proceso de usuario solicita datos que no estan en la SGA, el proceso servidor que atiende la peticin ser el encargado de leer los bloques de datos de disco y almacenarlos en la SGA. Puede haber un proceso servidor por cada proceso usuario (configuracin de DBMS Dedicado) o un proceso servidor para muchos procesos usuarios (configuracin de DBMS Multi-Threaded). La PGA es una regin de memoria asociada a cada proceso servidor, la cual contiene datos e informacin de control para cada una de las sesiones que los usuarios mantienen con ORACLE a travs de este proceso servidor. La PGA no es un rea de memoria compartida. 12

Instituto Profesional DuocUC Escuela de Ingeniera

SGA System Global Area


Usada para almacenar informacin que es compartida por procesos de la base de datos Contiene datos e informacin de control para el Servidor Oracle que se asigna en una memoria virtual del servidor donde reside la BD La SGA consiste de varias estructuras de memoria: Shared Pool Database Buffer Cache SELECT * from V$SGA; Redo Log Buffer Otras estructuras

System Global Area La SGA esta compuesta de tres componentes requeridos y de tres componentes opcionales. Componentes requeridos Shared Pool : Cache de memoria que almacenada las sentencias SQL y PL/SQL mas recientemente usadas por usuarios. Contiene Library Cache y Data Dictionary Cache (se explicarn ms adelante) Database Buffer Cache: Cache de memoria que contiene los datos mas recientemente accesados (ledos) por los usuarios desde disco Redo Log Buffer: Almacena informacin de transacciones con propsitos de recuperacin (insert, delete, update, create, alter y drop) Componentes opcionales Java Pool: Cache de memoria que almacenada los objetos JAVA mas recientemente usados y cdigo de aplicacin cuando se usa la opcin Oracle JVM

13

System Global Area (continuacin) Large Pool: Cache de memoria que contiene para grandes operaciones como recuperacin y respaldo con Recovery Manager (RMAN) y componentes de Shared Server Streams Pool: Cache de memoria que almacena datos asociados con requerimientos de colas de mensajes cuando se instala la opcin Advanced Queuing en el Servidor

El tamao de estos componentes de la SGA pueden ser administrados manualmente o automticamente. Si se escoge administrar manualmente estos componentes, se debe especificar el tamao de cada uno de ellos aumentando o disminuyendo el tamao de ellos segn las necesidades de la aplicacin. Si los estos componentes son administrados automticamente, la instancia por si misma monitorea la utilizacin de cada componente de la SGA y ajusta sus tamaos. Independiente si la administracin de la SGA es automtica o manual, Oracle asigna o desaigna espacio dinmico dentro de la SGA dividiendo la SGA dentro de unidades llamadas granules. Dependiendo del sistema operativo donde reside el motor de base de datos Oracle, los granules pueden ser de 4 MB, 8 MB o 16 MB.

14

Instituto Profesional DuocUC Escuela de Ingeniera

SGA System Global Area


SQL> Select * from V$SGA; NAME VALUE --------------------------Fixed Size 787988 Variable Size 145750508 Database Buffers 25165824 Redo Buffers 262144 Muestra que el tamao total de la SGA es 171,966,464 bytes Donde: El tamao Variable Size esta compuesto de Shared Pool, Large Pool y Java Pool (145,750,508 bytes). Database Buffer Cache es 25,165,824 bytes.Redo Log Buffer es 262,144 bytes Y hay cierto espacio adicional para almacenar informacin de procesos usada por los procesos background de la instancia (787,988 bytes) La vista V$SGA_DYNAMIC_COMPONENTS contiene informacin mas detallada de la SGA de una instancia Oracle

15

Instituto Profesional DuocUC Escuela de Ingeniera

Shared Pool
El Shared Pool es usado para almacenar las sentencias SQL ms recientemente usadas y las definiciones de datos ms recientemente usados Esto consiste dos estructuras de memoria claves para el rendimiento
Library cache Data Dictionary Cache

El parmetro que determina su tamao se llama SHARED_POOL_SIZE

SHOW PARAMETERS SHARED_POOL;

ALTER SYSTEM SET SHARED_POOL_SIZE = 64 MB;

Esta estructura se utiliza durante el procesamiento de comandos. Su tamao es configurable post creacin de la BD. Contiene dos zonas especficas: A) Library Cache Almacena la siguiente informacin relacionada a una instruccin SQL: - Texto de la instruccin - Arbol de parching, es decir la versin compilada de la instruccin - Plan de ejecucin, es decir, la secuencia de pasos a ser realizados para ejecutar la instruccin a bajo nivel de acuerdo con los resultados producidos por el optimizador de consultas Basndose en esta informacin, si una consulta es ejecutada nuevamente y su informacin permanece todava en la Library Cache, no ser necesario compilar de nuevo la instruccin. Esto permite mejorar el rendimiento de las aplicaciones que se ejecutan peridicamente.

16

Shared Pool (continuacin) B) Data Dictionary Cache Almacena informacin de uso mas reciente sobre el diccionario de datos. Esta informacin incluye informacin de columnas, usuarios, password y privilegios. Durante la fase de compilacin, esta informacin es necesaria para resolver los nombres de los objetos utilizados en un comando SQL y para validar los privilegios de acceso.

17

Instituto Profesional DuocUC Escuela de Ingeniera

Library Cache
Almacena informacin sobre las sentencias SQL y PL/SQL ms recientemente usadas. La Library Cache: Habilita el compartimiento de sentencias ms comnmente usadas Es administrada por un algoritmo LRU (Least Recent Use, La de menor Uso Reciente). Compuesta de dos estructuras:
Shared SQL Area Shared PL/SQL Area

Su tamao esta determinado por el dado en el Shared Pool

Library Cache, almacena la siguiente informacin relacionada con una instruccin de SQL: Texto de la instruccin Arbol de parsing, es decir la versin compilada de la instruccin Plan de Ejecucin, es decir la secuencia de pasos a ser realizados para ejecutar la instruccin a bajo nivel de acuerdo con los resultados producidos por el optimizador de consultas. Basndose en esta informacin, si una consulta es ejecutada nuevamente, y su informacin permanece todava en el Library Cache, no ser necesario compilar de nuevo la instruccin. En tal sentido este componente de la arquitectura permite mejorar el rendimiento de las aplicaciones que se ejecutan peridicamente.

18

Instituto Profesional DuocUC Escuela de Ingeniera

Data Dictionary Cache


Es una coleccin de las definiciones de base de datos mas recientemente usadas. Incluye informacin sobre archivos de base de datos, tablas, ndices, columnas, usuarios, privilegios y otros objetos Durante la fase de parser, el proceso servidor mira la informacin de el diccionario de datos para resolver los nombres de objetos y validar accesos Un cach del diccionario de datos dentro de la memoria mejora el tiempo de respuesta ante consultas El tamao esta determinado por el dado en el Shared Pool

Algoritmo de reemplazo de pginas "la de menor uso reciente" (LRU) Este algoritmo es una buena aproximacin al ptimo y se basa en la observacin de que las pginas de uso frecuente en las ltimas instrucciones se utilizan con cierta probabilidad en las siguientes. De la misma manera, es probable que las pginas que no hayan sido utilizadas durante mucho tiempo permanezcan sin uso por bastante tiempo. Implementando el algoritmo con esta base, al ocurrir un fallo de pgina, se elimina la pgina que no haya sido utilizada durante el tiempo ms grande. De ah su denominacin: menor uso reciente (LRU - Least Recent Use). A diferencia de los algoritmos anteriores, el LRU tiene un mejor rendimiento en cuanto al tiempo de aprovechamiento del CPU y del uso de la memoria. Sin embargo, el problema con este algoritmo es que su implementacin es muy cara, ya que requiere de una asistencia considerable de hardware.

19

Instituto Profesional DuocUC Escuela de Ingeniera

Database Buffer Cache


Almacena copias de bloques de datos que han sido recuperados desde los Datafiles. Habilita una ganancia de performance cuando se obtienen datos para modificarlos Es administrado a travs de un algoritmo LRU El parmetro DB_BLOCK_SIZE determina el tamao de bloque primario

Su funcin es mantener los bloques de datos ledos directamente de los archivos de datos en disco. Cuando se procesa una consulta , el servidor busca los bloques de datos requeridos en esta estructura. Si el bloque no se encuentra en esta estructura, el proceso servidor lee el bloque de la memoria secundaria y coloca una copia en esta estructura. De esta forma, otras peticiones que requieran de este bloque de datos no requerirn de un acceso a memoria secundaria (lecturas fsicas a disco).

20

Instituto Profesional DuocUC Escuela de Ingeniera

Database Buffer Cache


El tamao de cada buffer de Buffer Cache es equivalente al tamao de un Bloque Oracle, normalmente definido en 4 KB Database Buffer Cache consiste en Sub Cache independientes y bloques de mltiples tamaos:
DB_CACHE_SIZE

Tamao por defecto no puede ser 0


DB_KEEP_CACHE_SIZE Usado para retener en memoria bloques que podran ser reusados BD_RECYCLE_CACHE_SIZE Puede ser usado para eliminar bloques de memoria que tienen pequeos cambios

El parametro DB_BLOCK_SIZE determina el tamao de bloque primario El Database Buffer Cache puede ser modificado dinmicamente usando ALTER SYSTEM

21

Instituto Profesional DuocUC Escuela de Ingeniera

Redo Log Buffer Cache


Es un buffer de datos circular que registra todos los cambios hechos en los bloques de datos de una base de datos
El propsito principal es recuperar Los cambios registrados en su interior son llamados entradas de Redo Las entradas de Redo contienen informacin para reconstruccin de cambios realizados por operaciones de INSERT, DELETE, UPDATE, CREATE, ALTER o DROP El parmetro que define su tamao se llama LOG_BUFFER

Es un Buffer circular que mantiene todos los cambios que han sido realizados sobre la base de datos por operaciones de insert, update, delete, create, alter y drop. Las entradas de este buffer contienen toda la informacin necesaria para reconstruir los cambios realizados a la base de datos por medio de cualquier sentencia DDL o DML (el bloque que ha sido cambio, la posicin de cambio y el nuevo valor). El uso de Redo Log Buffer es estrictamente secuencial, en tal sentido pueden entrelazarse cambios en los bloques de datos producidos por transacciones diferentes. El tamao de este Buffer tambin puede ser configurado para mejorar el rendimiento de la instancia y de las aplicaciones que sobre ellas se ejecuten.

22

Instituto Profesional DuocUC Escuela de Ingeniera

PGA Program Global Area


Es una rea de memoria reservada para cada proceso de usuario que se conecta a una base de datos Oracle La PGA es asignada cuando un proceso de usuario es asignado y desasignada cuando el proceso termina A diferencia de la SGA, la PGA es utilizada por solo un proceso

23

Instituto Profesional DuocUC Escuela de Ingeniera

Estructura de Procesos
Programa que dependiente del tipo de informacin que pueda ser requerida, ejecuta una serie de pasos o ejecuta una tarea especfica Oracle toma ventaja de varios tipos de procesos: User process
Se levantan cuando un usuario inicia una conexin

Server process
Conectados a una instancia Oracle y levantados cuando se establece una sesin

Background process
Disponibles cuando una instancia Oracle es levantada o iniciada

24

Instituto Profesional DuocUC Escuela de Ingeniera

User Process
Si un usuario requiere informacin de una base de datos Oracle, primero debe establecer una conexin con el Servidor Oracle Para establecer la conexin se requiere de una herramienta de interface tal como SQL*PLUS y en ese instante, se levantan los procesos de usuario Los procesos de usuario no interactan directamente con el Servidor Oracle

25

Instituto Profesional DuocUC Escuela de Ingeniera

Server Process
Un proceso servidor es un programa que interacta directamente con el Servidor Oracle Genera llamadas y entrega resultados Puede ser dedicado o compartido Servidor dedicado significa que atiende a un solo proceso de usuario, cuando el proceso de usuario se desconecta el proceso servidor es terminado Servidor compartido significa que un proceso servidor puede atender a varios procesos de usuarios

26

Instituto Profesional DuocUC Escuela de Ingeniera

Background Process
La relacin entre las estructuras fsicas y de memoria son mantenidas y son hechas por procesos Background Oracle Procesos Obligatorios SMON = System Monitor PMON = Process Monitor DBWn = Database Writer LGWR = Log Writer CKPT = Checkpoint Procesos Opcionales (ARCn, CJQn, Jnnn, Qnnn, QMNn, Pnnn, Dnnn, Snnn, MMAN, MMON, MMNL, RVWR, CTWR, RECO)

Procesos Background SMON: Ejecuta la recuperacin de una instancia ante una cada, limpieza de estructuras de datos de soporte a la ejecucin de consultas y llevar la BD a un estado estable previo a la ejecucin de las transacciones que no hayan culminado exitosamente, desfragmentar el espacio fsico de almacenamiento uniendo bloques de datos libres en la memoria secundaria. PMON: Limpia las conexiones fallidas de usuarios a la base de datos, efecta labores de limpieza (libera los recursos y bloques ocupados en los cache) si algn proceso termina prematuramente. DBWn: Escribe los bloques de memoria modificados en la SGA (Database Buffer Cache) a los datafiles en disco. La n en algunos sistemas operativos indica que ms de uno de esos procesos puede estar ejecutndose. En esos casos, la n es reemplazada por un valor numrico. Por ejemplo, si estn corriendo tres procesos database writer, estos denominados DBW0, DBW1 y DBW3. Cuando una transaccin cambia los datos de un bloque de datos, no es necesario que este bloque se escriba inmediatamente en el disco. Normalmente escribe solo cuando se requieren nuevos bloques de datos en el Database Buffer Cache. 27

Background Process (continuacin) LGWR: Escribe informacin de la SGA (Redo Log Buffer) a los archivos de redo log en disco, con el propsito de recuperacin. La escritura de bloques es secuencial y ocurre si: a) El Redo Log Buffer esta lleno en un 33% o ms, b) Cuando ocurre un timeout (3 segundos), c) antes que el DBWn escriba algn bloque modificado a disco y cuando hay un COMMIT CKPT: Actualiza los archivos de la base de datos seguidos de los eventos de checkpoint. Este proceso es opcional, sino existe sus funciones son reemplazadas por el LGWR Procesos opcionales ARCn: Copia informacin para recuperacin escrita por el LGWR a los Red Log Files y a una segunda localizacin en caso de ser necesario para recuperacin. Casi todas las bases de datos de produccin usan este proceso opcional, que se configura en el archivo de parmetros de inicializacin de la base de datos. CJQn: Asigna jobs a Colas de Procesos de Trabajos (Job Queue) cuando se usa la caracterstica de Job Scheduling Jnnn: Ejecuta jobs de base de datos que han sido esquematizados, cuando se usa la caracterstica de Job Scheduling

28

Instituto Profesional DuocUC Escuela de Ingeniera

Estructura Lgica
La estructura lgica de la arquitectura Oracle se conoce como el espacio fsico de una base de datos a ser usada La jerarqua existente en esta estructura consiste de: Una base de datos Oracle esta agrupada de TABLESPACES Un tablespace puede contener 1 o mas SEGMENTS Un segmento esta hecho de EXTENTS Un extent esta hecho de BLOCKS lgicos Un block es una pequea unidad para operaciones de Read y Write Un tablespace fsicamente corresponde a un Datafile

Detalle sobre la Creacin y Administracin de Tablespace ser vera en Lecciones posteriores

29

Instituto Profesional DuocUC Escuela de Ingeniera

Fin de la Leccin

Jaime Amigo P. 2006, Santiago - Chile

También podría gustarte