ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Conceptos básicos de Oracle

pzafraTesis5 de Septiembre de 2013

6.835 Palabras (28 Páginas)341 Visitas

Página 1 de 28

TEMA 1: Conceptos básicos de Oracle

NOTA: Todas las pruebas de este estudio se harán bajo el usuario SCOTT y usando el programa

de Oracle SQL*Plus como interfaz. Éste se inicia tecleando en una ventana MS-DOS:

sqlplusw.exe. Previamente se habrá concedido a este usuario los roles SELECT_CATALOG_ROLE y

PLUSTRACE para que pueda ver el diccionario de datos como usuario DBA mediante el comando:

GRANT select_catalog_role,plustrace TO SCOTT;

Introducción a la arquitectura de Oracle.-

Una primera y sencilla aproximación a la arquitectura general utilizada por el RDBMS ORACLE para el manejo

de base de datos (independientemente de la configuración single, multi-thread, parallel- utilizada) es la

mostrada en la siguiente figura.

Esta arquitectura puede ser divida en dos porciones lógicas:

- estructura de procesos y memoria

- estructura para el manejo de los datos

Estructura de procesos y memoria.-

Independientemente de la arquitectura computacional, o de su configuración, cada base de datos dentro del

RDBMS ORACLE es asociada a una determinada instancia, y de igual forma una instancia puede abrir y utilizar

sólo una base datos ORACLE en cualquier momento de su ejecución. Es posible poseer múltiples instancias

ejecutándose concurrentemente dentro de una misma máquina, cada una accediendo su propio espacio físico de

datos (su base de datos ORACLE). En el sistema de operación, la variable de entorno ORACLE_SID permite

identificar el nombre de la instancia ORACLE a la cual se conectarán, por defecto, las aplicaciones de usuario.

Cada vez que el RDBMS ORACLE es inicializado, tanto el System Global Area (SGA) como los procesos

demonios son levantados. El SGA junto con los procesos demonios es lo que se demonina como una instancia

ORACLE.

La memoria en Oracle.-

El System Global Area es un conjunto de estructuras de memoria compartida que contienen datos e

información de control para una determinada instancia ORACLE. El SGA se mantiene en la memoria virtual del

computador en el que reside la instancia ORACLE. Si dentro de la instancia existe la posibilidad de que más de un

usuario se encuentren conectados simultáneamente, los datos dentro del SGA de la instancia son compartidos

entre todos los usuarios. Es por esto que algunas veces al SGA también se le suele denominar Shared Global

Area. La estructura interna de la SGA de un RDBMS shared server puede observarse en esta figura:

Veamos que es lo que hace cada componente:

Buffer Cache (o Database Buffer Cache) : Su función es mantener bloques de datos leídos directamente

de los archivos de datos. 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 requerirán de acceso a memoria secundaria (lecturas físicas).

El Buffer Cache está organizado en dos listas: la lista de bloques sucios (dirty buffers) y la lista de los más

recientemente usados (= L.R.U. last recent used ). La lista de sucios almacena los bloques sucios, que

contienen datos que han sido modificados pero que no han sido escrito todavía a disco. La lista LRU mantiene

los buffers libres (no modificados y disponibles), los reservados (pinned buffers) que son lo que actualmente

son accedidos y los bloques sucios que todavía no han sido escritos a disco. El número de bloques manejados

por el Buffer Cache puede ser configurado para mejorar el rendimiento, así como el tamaño del bloque de

datos. En cualquier caso el tamaño de bloque de datos utilizado debe ser el mismo que el que se ha

configurado para la instancia como tamaño de bloque de datos utilizado por el RDBMS. No obstante se

pueden crear cachés adicionales con tamaños de bloque diferentes (2Kb, 4K, 8Kb, 16Kb ó 32Kb) para que

sean usados con tablespaces con un tamaño de bloque diferente. Los parámetros para estas subcachés son

del tipo DB_nK_CACHE_SIZE, siendo n uno de los cinco valores indicados antes.

Redo Log Buffer: Es un buffer circular que mantiene todos los cambios que han sido realizados sobre la

base de datos por operaciones INSERT, UPDATE, DELETE, CREATE, ALTER y DROP. Las entradas de este

buffer contienen toda la información necesaria para reconstruir los cambios realizados a la base de datos por

medio de calquier sentencia del DDL o del DML (el bloque que ha sido cambiado, la posición de cambio y el

nuevo valor). El uso del Redo Buffer es estrictamente secuencial, en tal sentido pueden entrelazarse cambios

en los bloques de datos producidos por transacciones diferentes. El tamaño de este Buffer también puede ser

configurado para mejorar el rendimiento de la instancia y de las aplicaciones que sobre ellas se ejecutan.

Shared Pool: Esta estructura se utiliza durante el procesamiento de comandos. Su tamaño también es

configurable. Contiene dos zonas específicas:

Library Cache, almacena la siguiente información relacionada con una instrucción de SQL:

- Texto de la instrucción.

- Árbol de parseo, es decir la versión compilada de la instrucción.

- Plan de Ejecución, es decir la secuencia de pasos a ser realizados para ejecutar la instrucción a bajo

nivel de acuerdo con los resultados producidos por el optimizador de consultas.

Basándose en esta información, si una consulta es ejecutada nuevamente, y su información permanece

todavía en el Library Cache, no será necesario compilar de nuevo la instrucción. En tal sentido este

componente de la arquitectura permite mejorar el rendimiento de las aplicaciones que se ejecutan

periódicamente.

Data Dictionary Cache, también conocido como Dictionary Cache o Row Cache, almacena la

información de uso más reciente sobre el diccionario de datos. Esta información incluye definición de

columnas, usuarios, passwords y privilegios. Durante la fase de compilación, esta información es

necesaria para resolver los nombres de los objetos utilizados en un comando SQL y para validar los

privilegios de acceso.

Request Queue y Response Queue: Estas estructuras constituyen los elementos básicos para el manejo

de conexiones de usuarios al manejador. Por cada instancia de ORACLE existirá una Request Queue y varias

Response Queues si está configurada en el modo servidor compartido (en caso contrario simplemente no

existirán). Cuando un proceso usuario desea establecer conexión con el manejador, la solicitud de conexión

será encolada en la Request Queue. Los procesos servidores tomarán las solicitudes de conexión, efectuarán

las acciones necesarias para que la base de datos complete la solicitud y colocarán la petición en la Response

Queue asociada al proceso que atendió la solicitud.

Los procesos en Oracle.-

Los procesos de ORACLE realizan funciones para los usuarios del manejador. En general se puede establecer

una partición en los procesos de ORACLE:

- Procesos Servidores (o Shadow Proceses), los cuales ejecutan funciones de interacción con el servidor de

datos basándose en las peticiones de los usuarios.

- Procesos Demonio (o Background Proceses), quienes realizan funciones para el RDBMS como un todo.

- Procesos de Red, encargados de proveer la interconexión entre procesos de usuario y el RDBMS o entre

RDBMS que establecen un sistema de bases de datos distribuidas.

Procesos Servidores y el Program Global Area (PGA)

Los procesos servidores (Snnn) se comunican con los diferentes procesos de usuario e interactúan con

ORACLE para satisfacer las peticiones. Por ejemplo, cuando un proceso de usuario solicita datos que no se

encuentran en el SGA (en alguno de los buffer caches, dependiendo del tipo de operación y de la fase de su

procesamiento), el proceso servidor que atiende la petición será el encargado de leer los bloques de datos y

almacenarlos en el SGA (recuerde que el SGA en un área de memoria compartida).

Puede existir una correspondencia de uno a uno entre procesos de usuario y procesos servidor (por ejemplo

en la configuración de RDBMS dedicado); aunque un proceso servidor puede conectarse a múltiples procesos de

usuario (como en la configuración de RDBMS multi-threaded). Las conexiones admitidas dependerán en todo

momento de la configuración de opciones del RDBMS realizadas durante la instalación del mismo.

El PGA constituye una región de memoria asociada a cada proceso servidor, la cual contiene datos e

información de control para cada una de las sesiones que los usuarios mantienen con el RDBMS ORACLE a través

de éste proceso servidor. Por lo tanto el PGA no es un área de memoria compartida. Una región de memoria para

almacenar un PGA es solicitada cuando un proceso usuario establece una sesión de trabajo con el manejador de

datos. El tipo de información que se almacena en el PGA depende de las opciones instaladas para el servidor

ORACLE. Por ejemplo, cuando se utiliza una configuración de servidor dedicado, el PGA contiene los siguientes

componentes:

- Sort Area,

...

Descargar como (para miembros actualizados) txt (46 Kb)
Leer 27 páginas más »
Disponible sólo en Clubensayos.com