Documente Academic
Documente Profesional
Documente Cultură
ndice
Instancia de Oracle
Base de Datos
Esta unidad se centra en los elementos que componen cada una de estas
partes. Adems se describir el concepto de Diccionario de Datos en Oracle 10g,
as como su funcin dentro del SGBD.
o Estructuras de memoria
o Procesos
o Ficheros de Datos
o Fichero de Control
o Ficheros de Redo
ndice
1.1. Arquitectura
1.2. Bases de datos en varias instancias
1.3. Las transacciones
Introduccin
Objetivos
- El concepto de transaccin.
Apartado 1.1: Definicin de Base de Datos
El servidor Oracle 10g es un SGBD objeto-relacional que permite
administrar datos de manera sencilla y completa. Todo servidor Oracle 10g
consta de dos partes diferenciadas (ver Figura 1):
ndice
Introduccin
Una instancia de Oracle 10g est compuesta por diversas zonas de
memoria compartida y una serie de procesos.
Objetivos
- Componentes de la PGA.
- Componentes de la SGA.
Apartado 2.1: Estructuras de memoria
Oracle crea y utiliza estructuras de memoria para llevar a cabo distintas
tareas; como por ejemplo almacenamiento del cdigo del programa que se est
ejecutando o datos que pueden compartir los usuarios.
Las estructuras bsicas de memoria que utiliza una instancia Oracle son
(ver Figura 4):
Esta rea se crea como primer paso en una solicitud de ejecucin. Cuando
se trata de una sentencia INSERT, UPDATE o DELETE, Oracle libera esta rea
al terminar la ejecucin de la sentencia. Cuando se trata de una sentencia
SELECT, la libera cuando la consulta ha terminado de suministrar filas o ha
producido un error.
1. Memoria de sesin
sta es la memoria asignada para almacenar variables de una sesin tales
como la informacin de conexin, y otra informacin asociada a la sesin. En el
caso de los servidores compartidos, la memoria de sesin no es de tipo privado,
sino que se almacena como informacin compartida.
Las operaciones que utilizan estas reas de trabajo son las clusulas
ORDER BY y GROUP BY, la palabra clave DISTINCT para eliminar registros
duplicados, la creacin de ndices con CREATE INDEX y, en general, cualquier
operacin que implique la ordenacin de datos, como las combinaciones de
tablas (que, segn la estrategia adoptada, deben ordenar los datos de una para
compararlos con los datos de otra, y as sucesivamente).
Apartado 2.4:
2.4: El rea Global del Sistema (SGA)
El rea Global del Sistema es una zona compartida de la memoria que
contiene datos e informacin de control de una instancia de Oracle. La SGA se
distingue de otras estructuras de memoria en que la informacin que contiene se
encuentra a disposicin de todos los procesos (tanto de usuario como de
servidor). Por lo tanto, a menudo se conoce la SGA como rea Global
Compartida.
Los valores utilizados en los siguientes parmetros son los que tienen un
mayor impacto en el tamao del SGA:
LARGE_POOL_SIZE
SHARED_POOL_SIZE
DB_CACHE_SIZE
LOG_BUFFER
La SGA es de lectura y escritura: es decir, todos los usuarios conectados a
una instancia pueden leer la informacin que contiene la SGA, y varios procesos
de la instancia escriben en la SGA durante el funcionamiento de Oracle. En
realidad, la SGA no es un todo continuo: est dividida en distintas estructuras de
memoria, las cuales se detallan a continuacin (ver Figura 6)
1. La cach de buffers.
Almacena los bloques de datos utilizados recientemente (se hayan o no
confirmado sus cambios en el disco). Al utilizarse este buffer se reducen las
operaciones de entrada y salida y por esto se mejora el rendimiento.
2. La cach de biblioteca
Se utiliza para almacenar cdigo SQL compartido. Aqu se manejan los
rboles de parsing utilizados para analizar las sentencias SQL y el plan de
ejecucin de las mismas. Si varias aplicaciones utilizan una misma sentencia
SQL, esta rea compartida garantiza el acceso por parte de cualquiera de ellas
en cualquier instante.
ndice
Objetivos
Oracle 10g utiliza distintos tipos de procesos. Por un lado, emplea mltiples
procesos especializados que ejecutan tareas muy concretas del servidor. A estos
hay que sumar una serie de procesos destinados a los usuarios (bien uno por
usuario, o bien uno o ms que comparten varios usuarios). Gracias a esta
especializacin de los procesos, los servidores Oracle 10g permiten que se
conecten al mismo tiempo mltiples usuarios y aplicaciones sin prdida de
rendimiento.
Una vez establecida una conexin, se crea una sesin. sta puede
definirse como la conexin que establece un usuario con una instancia Oracle a
travs de un proceso de usuario, facilitando para ello credenciales de seguridad.
La sesin dura desde el momento de la conexin hasta que el proceso de usuario
deja de atenderla, y un nico usuario puede establecer mltiples sesiones, cada
una con un proceso de usuario distinto.
Apartado 3.3: Procesos de Oracle
Los procesos de Oracle llevan a cabo tareas en nombre de otros procesos.
Estos se dividen en procesos de servidor y procesos en segundo plano. A
continuacin se describen los distintos tipos de procesos existentes en Oracle 10g
y las funciones que desempean.
1. Procesos de servidor
Oracle crea procesos de servidor para atender las peticiones de los
procesos de usuarios que establecen una conexin con la instancia. Los procesos
de servidor se comunican con el proceso de usuario, e interactan con Oracle
para desempear la tarea que les ha encargado el proceso de usuario
correspondiente.
CKPT (checkpoint)
Es el responsable de advertir al proceso DBWR de efectuar un proceso de
actualizacin en el disco de los datos mantenidos en memoria, incluyendo los
ficheros de datos y control (para registrar el checkpoint). (ver Figura 8).
Tanto SMON como PMON se activan cada cierto tiempo para comprobar si
se les necesita, y cualquier otro proceso puede invocarlos para que desempeen
su labor.
ARCH (archiver)
La funcin de este proceso opcional es la de respaldar o copiar en otro
destino la informacin almacenada en los archivos redo log cuando stos se
llenan o si existe una conmutacin explcita (cambio forzado del fichero de redo
utilizado). Este proceso est siempre activo cuando se ha establecido el modo
ARCHIVELOG. Si el sistema no est operando en este modo se hace ms difcil
recuperar el sistema sin problemas despus de un fallo general. (ver Figura 8).
LGWR se encarga de lanzar un nuevo proceso ARCH cada vez que los
procesos existentes no bastan para cubrir la demanda e informa de ello en el
fichero de alerta. Si se conoce a priori que se va a producir una fuerte demanda
de ficheros archivados, se pueden iniciar varios procesos mediante el parmetro
de inicio log_archive_maxyrocesses o de forma dinmica con el comando ALTER
SYSTEM. Sin embargo, esto ltimo no es necesario ya que el sistema calcula
automticamente cuntos procesos ARCn necesita y los arranca a medida que la
demanda lo exige.
RECO (recoverer)
Este proceso opcional es usado en entornos de BBDD distribuidas. Su
funcin es la de resolver transacciones distribuidas que estn pendientes debido a
un fallo de red o de sistema. Mediante intervalos de tiempo, el proceso RECO
local intenta conectarse a las BBDD remotas y completar automticamente el
COMMIT o el ROLLBACK de transacciones distribuidas pendientes.
Adems se han comentado las relaciones de las mismas con las estructuras
lgicas de almacenamiento del SGBD.
ndice
4. Base de Datos
4.1. Base de Datos
4.2. Ficheros de Datos
4.3. Ficheros de control
4.4. Ficheros de Redo o Undo
Introduccin
Objetivos
Estas estructuras fsicas, al igual los ficheros del sistema operativo, estn
almacenados en dispositivos "hardware" tangibles (cintas, discos duros y flexibles,
etc...). Es el administrador de la BBDD el que se ocupa de gestionar este tipo de
estructuras (aadir nuevos ficheros cuando se agota el espacio, etc), aunque los
usuarios tendrn que tenerlas tambin en cuenta a la hora de optimizar el
rendimiento de sus aplicaciones.
Es importante resaltar que toda BBDD Oracle debe tener asociado uno o
ms ficheros de datos. Adems cada uno de estos slo puede pertenecer a una
BBDD.
Los ficheros de redo dentro de una BBDD Oracle se pueden utilizar de dos
formas:
Multiplexacin
La multiplexacin consiste en generar varias copias de los ficheros de redo
donde se escribe al mismo tiempo. Oracle recomienda esta estrategia, ya que
aumenta la proteccin de la BBDD frente a fallos. Los ficheros idnticos que se
escriben al mismo tiempo forman grupos de redo en los cuales cada fichero es un
miembro del mismo. Todos los miembros de un grupo comparten las mismas
caractersticas de tamao, se escribe en ellos al mismo tiempo y se encuentran
activos simultneamente. El proceso LGWR nunca escribe simultneamente en
miembros de grupos distintos.
Figura 11. Ficheros redo log multplexados
Deben existir dos o ms ficheros (uno debe estar disponible para escrit-
ura mientras que se va guardando el otro). Al llenarse uno se tiene que
abrir el otro (conmutacin de log).
Adems se han comentado las relaciones de las mismas con las estructuras
lgicas de almacenamiento del SGBD.
ndice
5.1. Diccionario
5.2. Uso del Diccionario de datos
5.3. Tipos de vistas en el Diccionario de Datos
5.4. Tablas dinmicas de rendimiento
5.5. Actualizacin de la informacin del diccionario de datos
Introduccin
Objetivos
El usuario SYS es propietario de las tablas del DD, en las que se almacena
informacin sobre el resto de las estructuras de la BBDD.
Existe una tabla de catlogo para cada tipo de objeto posible. Su nombre
aparecer en plural TABLES, VIEWS, SEQUENCES, TABLESPACES, etc.
Algunos ejemplos son:
Las vistas del diccionario se crean en base a las tablas evitando as que las
tablas sean accedidas directamente por los usuarios, que podrn obtener
informacin del diccionario a travs de las vistas. El usuario SYS es el propietario
de las vistas del diccionario de datos que se crean durante la instalacin y sobre
las cuales se les concede derecho de acceso al usuario PUBLIC.
No son tablas reales y por ello no deberan ser utilizadas por ningn usuario
que no sea DBA. Los administradores podrn crear vistas a su medida para
visualizar el rendimiento del sistema en un instante determinado.
Pertenecen al usuario SYS, y las tablas contienen el prefijo V_$ y las vistas
el prefijo V$.
Apartado 5.5: Actualizacin de la informacin del Diccionario de
Datos
Al llegar a este punto es lgico pensar que ciertos datos del catlogo de
Oracle son continuamente actualizados, debido a la frecuencia de las operaciones
que modificar el contenido del DD. Por ejemplo en las vistas dinmicas, sus datos
no se almacenan en disco, sino que son tablas sobre datos contenidos en la
memoria del servidor, por lo que almacenan datos actualizados en tiempo real.
ANALYZE[TABLE|INDEX]nombre[COMPUTE|ESTIMATE|DELETE]
STATISTICS;
ARCH Archiver.
CKPT CheckPoint.
DD Diccionario de Datos.
RECO Recoverer.
SO Sistema Operativo.
[Arun Kumar R., 2005]. Oracle Database 10g Insider Solutions. Sams
Publishing. Captulo 1.
[Dawes,C. & Bryla, B., 2004] OCA: Oracle 10g Administration I Study
Guide. Sybex. Captulo 1.