Está en la página 1de 92

ARQUITECTURA DE ORACLE

DIEGO FELIPE ZAPATA LUZ MARINA BOLAOS

CONTENIDO
1- Trminos que se van a utilizar 2- Data blocks, extents y Segments 3-Tablespace, datafiles y control files 4- Diccionario de datos. 5- Estructuras de memoria Interna 6- Estructuras de memoria Externa 7- Estructuras de Proceso

TERMINOS A UTILIZAR
Esquemas: El conjunto de objetos de un usuario es conocido como esquema. ndices: Un ndice es una estructura de la BD utilizada para agilizar el acceso a una fila de una tabla. Cada fila tiene un identificador de fila, ROWID, que determina el fichero, bloque y fila dentro del bloque donde est almacenada la fila. Cada entrada del ndice consite en un valor clave y una ROWID. Cada una de estas entradas se almacena en un rbol B+.Los ndices se crean automticamente cuando se define una restriccin UNIQUE o PRIMARY KEY. Tablespace: nombre del espacio de tablas donde se crear el segmento.

Clusters: Las tablas que son accedidas juntas

frecuentemente pueden ser almacenadas juntas. Para ello se crea un cluster. De este modo se minimiza el nmero de E/S. Las columnas que relacionan las tablas de un cluster se llaman clave del cluster.
Sinnimos: Para identificar completamente un objeto dentro de una BD se necesita especificar el nombre de la mquina, el nombre del servidor, el nombre del propietario y el nombre del objeto. Para hacer transparente todo esto al usuario se pueden utilizar los sinnimos. stos apuntarn a los objetos y si el objeto cambia de lugar o propietario, slo habr que modificar el sinnimo. Existen sinnimos pblicos y privados. Los pblicos son conocidos por todos los usuarios de una BD. Los privados son locales a un usuario.

Segmento de Rollback Para mantener la consistencia en lectura y permitir deshacer las transacciones, Oracle debe tener un mecanismo para reconstruir la imgen previa a una transaccin incompleta. Oracle utiliza los segmentos de rollback para esto. Los segmentos de rollback pueden crecer tanto como sea necesario para soportar las transacciones.

Relacin entre datablock, extent y segment

DATA BLOCK
Es la unidad mas pequea de almacenamiento de un dato en una base de datos. El tamao del bloque es independiente de cada sistema operativo, Oracle recupera estos bloques en bloques oracle no en bloques del So. Para tamao de bloque especfico se utiliza DB_BLOCK_SIZE

FORMATO DE UN DATABLOCK

ADMINISTRACION DE UN ESPACIO LIBRE


Se puede manejar manual o automticamente Cuando se maneja automticamente, el espacio libre es rastreado por el BITMAP

Manejo automatico de espacios libres


Beneficios: - Fcil de usar - Mejor ulitlizacin del espacio, especialmente para objetos de tamao de fila variable - Se ejecuta mas rpido en acceso concurrente - Mejor comportamiento multi instancias

Disponibilidad y reduccin de un espacio libre


Dos tipos de sentencias pueden alterar el tamao de un bloque de datos DELETE y UPDATE. El espacio liberado de estas sentencias es disponible para alojar las sentencias INSERT bajo dos condiciones:

Condiciones
El insert debe estar en la misma transaccin y subsecuente a la sentencia que libera el espacio. Si insert es una transaccin separada, puede usar el espacio solo despus que la otra transaccin haya hecho commit.

Encadenamiento y migracin de filas


Si los datos de una fila son demasiado extensos para encajar en un solo bloque, se utiliza el encadenamiento Cuando un bloque es modificable, y el espacio no es suficiente, se utiliza la migracin

PCTFREE, PCTUSED Y ROW CHAINING


Cuando el tablespace es manejado manualmente, se utilizan estos parmetros

PCTFREE

PCTUSER

EXTENT
Es una unidad lgica de almacenamiento de una base de datos, compuesto por un numero determinado de datablocks contiguos, uno o mas extent constituyen un segmento

Asignacion de extent
Oracle asigna un extent para los datos de una tabla. Si los datos ocupan mas que el tamao que se le ha designado a el segmento, Oracle asigna otro extent de igual o mayor tamao para los nuevos datos.

Numero y tamao de un extent


Se puede determinar el tamao y el nmero de extent en la clausula STORAGE de la sentencia CREATE TABLE, si no se especifican, se utilizan los parametros de almacenamiento predefinidos por el tablespace. UNIFORM Y AUTOALLOCATE, parmetros de asignacin

El almacenamiento para los parmetros next, pctincrease, minextents, maxextents y default storage, no son vlidos para los extent que se manejan localmente.

Alojamiento de Extent
Oracle asigna diferentes algoritmos para asignar extenciones, dependiendo si estn alojadas en forma local o por medio del diccionario de administracin

Liberacin de Extent
Usando DROP TABLE excepto cuando: 1. El dueo de una tabla usa el DELETE_ANY (privilegio), puede truncar la tabla con la sentencia TRUNCATEDROP STORAGE 2. Un DBA puede liberar el espacio de extenciones poco usadas usando
ALTER TABLE n_tabLe DEALLOCATE UNUSED

3. Oracle libera uno o mas extent de un segmento con un rollback si este no tiene el tamao OPTIMAL.

Mas de extents
Extent para tablas Clustered Extent para vistas materializadas Extent para Segmentos temporales Extent para Segmento Rollback

SEGMENT
Es un conjunto de extent que contienen todos los datos para la estructura de almacenamiento lgico en un tablespace. SQL> select * from user_segments;

Parmetros que controlan el crecimiento de un segment


initial: tamao de la extensin inicial (10k). next: tamao de la siguiente extensin a asignar (10k). minextents: nmero de extensiones asignadas en el momento de la creacin del segmento (1). maxextents: nmero mximo de extensiones (99). pctincrease: Porcentaje en el que crecer la siguiente extensin antes de que se asigne, en relacin con la ltima extensin utilizada (50). pctfree: porcentaje de espacio libre para actualizaciones de filas que se reserva dentro de cada bloque asignado al segmento (10). pctused: porcentaje de utilizacin del bloque por debajo del cual Oracle considera que un bloque puede ser utilizado para insertar filas nuevas en l.

TIPOS DE SEGMENTOS
Segmento de datos Segmento de indices Segmentos de Rollback Segmentos temporales.

Segmento de datos
Oracle crea este tipo de segmentos cuando se crea una tabla con la clusula CREATE, se hace igual para vistas materializadas.

Segmento de Indices
Oracle crea este tipo de segmentos por ndice o particin de indice cuando se usa CREATE INDEX

SEGMENTOS ROLLBACK
Los segmentos de rollback almacenan la imagen anterior a una modificacin de un bloque. En las operacin de actualizacin, se almacenar el valor antiguo de las columnas modificadas. El segmento de rollback asegura que la informacin undo se guardan durante la vida de la transaccin

SEGMENTOS TEMPORALES
Cuando se ejecutan
- CREATE INDEX - SELECT ... ORDER BY - SELECT DISTINCT ... - SELECT ... GROUP BY - SELECT ... UNION - SELECT ... INTERSECT - SELECT ... MINUS SORT_AREA_SIZE->Tamao del segmento

TABLESPACE
Oracle almacena los datos logicamente en TABLESPACE, y fisicamente en DATAFILES asociado con su correspondiente espacio de tabla

Diferencias
Una base de datos oracle contiene uno o mas TABLESPACE Cada TABLESPACE consta de uno o mas DATAFILES Un dato de una Base de Datos se guarda colectivamente en DATAFILES

Asignacion de Espacios para una BD


El tamao de un TABLESPACE es el tamao de los DATAFILES que lo conforman, el tamao de una BD es el tamao colectivo de los TABLESPACE que lo constituye, Se puede agregar el tamao de una BD en tres formas

Adicionando un DATAFILE al TABLESPACE

AGREGANDO UN TABLESPACE

AGREGANDO TAMAO A UN DATAFILE

TABLESPACE
Todas las BD tienen uno llamado SYSTEM que se crea automaticamente Los procedimientos, funciones, paquetes y disparadores residen en SYSTEM
SQL> select * from user_tablespaces;

PARAMETROS DE CRECIMIENTO
initial: tamao de la extensin inicial (10k). next: tamao de la siguiente extensin a asignar (10k). minextents: nmero de extensiones asignadas en el momento de la creacin del espacio de tablas (1). maxextents: nmero mximo de extensiones. pctincrease: Porcentaje en el que crecer la siguiente extensin antes de que se asigne, en relacin con la ltima extensin utilizada. optimal: Tamao ptimo declarado para este espacio de tablas. pctused: porcentaje de utilizacin del bloque por debajo del cual Oracle considera que un bloque puede ser utilizado para insertar filas nuevas en l.

Creacin de un TABLESPACE
CREATE TABLESPACE CREATE DATABASE ALTER TABLESPACE DROP TABLESPACE

EJEMPLO DE CREACION DE TABLESPACE


SQL> create tablespace n_tablespace 2> datafile 'nombre_fichero' size 50M online;

CONTROL DE ARCHIVOS
Es un pequeo archivo binario necesario para iniciar y operar exitosamente las Bd. Un archivo de control es modificado continuamente por oracle durante el uso de la BD. Cada archivo de control esta asociado solo con una BD oracle

CONTENIDO DE LOS ARCHIVOS DE CONTROL


Un archivo de control contiene informacin acerca de las BD asociadas que son requeridas para el acceso de una instancia La informacin de los archivos de control puede ser modificada solo por Oracle

Entre otras cosas un archivo de control tiene informacin como:


El nombre de la BD La fecha de creacin de la BD La informacin del TABLESPACE Conjunto de BACKUPS e informacin de las mismas Copia de datafiles

Cada vez que un datafile es adicionado, modificado o borrado de una BD, el archivo de control es modificado y refleja este cambio en la estructura fsica, estos cambios son registrados as:
Oracle puede identificar los datafiles para abrir durante el inicio de la BD Oracle puede identificar archivos que son requeridos o estn disponibles en caso que sea necesario recuperar la BD

EL DICCIONARIO DE DATOS
Un diccionario de datos contiene:
Las definiciones de todos los esquemas de objetos en la BD (vistas, tablas, indices ...) Cuanto espacio ha sido asignado para el esquema de objetos y cuanto est usado actualmente. Valores por defecto para las columnas

Integridad de la informacin Los nombres de los usuarios Oracle Los privilegios y roles que se les han permitido a cada usuario Informacin de auditoras tales como: Quin accedi a modificar, varios esquemas de objetos. Otra informacin general de la base de datos

Todas las vistas y tablas del diccionario de datos para una BD estn almacenadas en el TABLESPACE SYSTEM de la BD. El diccionario de datos es una til herramienta no slo para cada BD Oracle.

Utilice sentencias SQL para acceder al diccionario de datos

ESTRUCTURA DEL DICCIONARIO DE DATOS


Tablas base: Es la tabla fundamental que almacena informacin de las bases de datos asociadas, solo oracle puede leer y escriber sobre esas tablas. Vista accesible al usuario: Resumen y muestran la informacin almacenada en las tablas base del diccionario de datos.

Como se usa el Diccionario de Datos


Los diccionarios de datos tienen tres usos primarios: Oracle accede al DD para encontrar informacin. Oracle modifica el DD cada ves que se usa una sentencia DDL Referencia de solo lectura

Como Oracle usa el Diccionario de Datos


Los datos en las tablas base del diccionario de datos son necesarios para el funcionamiento de oracle Oracle provee scripts para modificar las tablas del diccionario de datos Oracle tambin modifica el diccionario de datos continuamente para reflejar cambios en la estructura de la BD, auditoria, permisos y datos.

Oracle crea sinnimos pblicos para muchas vistas del diccionario de datos El administrador de seguridad tambin puede crear sinnimos pblicos adicionales

Sinnimos Pblicos para Vistas del Diccionario de Datos

Cache del diccionario de datos para acceso rapido


Mucha informacin del diccionario de datos se encuentra en el diccionario cache Toda la informacin es almacenada en memoria usando el algoritmo LRU, excepto las columnas de COMMENTS

Como Usar el Diccionario de Datos


Las vistas del diccionario de datos sirven como referencia El acceso a las vistas del DD se hace con sentencias SQL El DD esta siempre disponible cuando una BD de oracle se abre Un DD consiste en un conjunto de vistas

Prefijos de las Vistas del Diccionario de Datos

Vistas con el Prefijo USER


Se refiere a los usuarios propios del ambiente en la BD Muestra solo filas pertinentes al usuario Retorna un subconjunto de la informacin en todas las vistas

Puede tener sinonimos pblicos abreviados por conveniencia Por ejemplo: SELECT Object_Name, Object_Type FROM User_Objects;

Vistas con el Prefijo ALL


Se refiere a la perspectiva global del usuario de la BD Por ejemplo: SELECT Object_Name, Object_Type FROM All_Objects

Vistas con el Prefijo DBA


Muestra una vista global de la BD completa Los sinonimos no son creados para estas vistas Por ejemplo: SELECT Object_Name, Object_Type FROM SYS.DBA_Objects;

Estructuras de Memoria Internas


Oracle tiene dos estructuras principales de memoria:
PGA(Program Global Area): rea global del programa SGA(System Global Area): rea Global del Sistema

Area Global del Sistema (SGA)


Facilita la transferencia de informacin entre usuarios y la almacenada en la estructura de la BD Los SGA se dividen en varias partes: Buffers de BD, Database Buffer Cache Buffer Redo Log rea de SQL compartido

Database Buffer Cache


Es el cach que almacena los bloques de datos leidos de los segmentos de datos de la BD. El parametro
DB_BLOCK_BUFFERS del fichero init.ora

Fija el tamao del Buffer

Buffer Redo Log


Estos registros Redo describen los cmbios realizados en la BD y son escritos en los ficheros redo log. Antes de ser escritos en los ficheros redo log son escritos en un cach de la SGA llamado redo log buffer El tamao del buffer redo log se fija por el parmetro LOG_BUFFER

rea de SQL Compartido


En esta zona se encuentran las sentencias SQL que han sido analizadas. El analisis sintctico de las sentencias SQL lleva su tiempo y Oracle mantiene las estructuras asociadas a cada sentencia SQL analizada durante el tiempo que pueda para ver si puede reutilizarlas.

El contenido de la zona de SQL compartido es:


Plan de ejecucin de la sentencia SQL. Texto de la sentencia. Lista de objetos referenciados

Los pasos de procesamiento de cada peticin de anlisis de una sentencia SQL son:
Comprobar si la sentencia se encuentra en el rea compartida. Comprobar si los objetos referenciados son los mismos. Comprobar si el usuario tiene acceso a los objetos referenciados

Area Global del Programa (SGA)


El Program Global Area es un rea de memoria utilizada por un proceso Oracle

Estructuras Externas de Memoria


Son los ficheros que utiliza el servidor de BD tales como: Ficheros de la BD Ficheros Redo Log Ficheros de Control Ficheros de Traza El Fichero INIT.ORA

Ficheros de la BD
Solo son modificados por el DBWR. Toda actualizacin se guarda en los ficheros de redo log, y se lleva a la BD fsica. Almacenan los segmentos (datos, ndices, rollback) de la BD

Ficheros Redo Log


En ellos se graba toda operacin que se efectue en la BD y sirven de salvaguarda de la misma De esta manera se visualizan los nombres y los estados de los ficheros Redo Log SELECT group#, status, substr(member,1,60) FROM v$logfile; Y as se visualizan estadsticas de estos ficheros SELECT group#, sequence#, bytes, members, archived, 2 status, first_change#, first_time FROM v$logfile;

Ficheros de Control
Mantienen la informacin fsica de todos los ficheros que forman la BD Contiene informacin como: Infomacin de arranque y parada de la BD. Nombres de los archivos de la BD y redo log. Informacin sobre los checkpoints. Fecha de creacin y nombre de la BD. Estado online y offline de los archivos.

Ficheros de Traza
Ayudan en la diagnosis de problemas y en el ajuste del SGBD. Cada proceso del servidor escribe en un fichero de traza asociado cuando es necesario. Los procesos de usuarios tambin pueden tener asociados ficheros de traza. La situacin de estos ficheros de traza del sistema se especifica por el parmetro BACKGROUND_DUMP_DEST Los de usuario por USER_DUMP_DEST.

El Fichero INIT.ORA
Este fichero contiene los parmetros del sistema Oracle y debe ser utilizado por el DBA para configurar el SGDB

ESTRUCTURA DE PROCESOS
Existen dos tipos de procesos:
Procesos de usuario Procesos del servidor Oracle.

PROCESOS DE ORACLE
ORACLE PROCESS: Invocados por otros procesos para realizar las funciones en nombre del proceso invocando. SERVER PROCESS: Maneja requerimientos de procesos de usuario conectados. Un proceso del servidor se comunica con el proceso de usuario y acta recprocamente con Oracle para llevar a cabo las demandas del proceso del usuario. BACKGROUND PROCESS: consolida funciones que seran por otra parte manejado por programas mltiples de Oracle que corren para cada proceso del usuario.

DATABASE WRITER, DBWR: Es responsable de gestionar el contenido del buffer de los datos, lee los bloques de los archivos de datos y los guarda en SGA.
LOG WRITER, LGWR: pone la informacin de los redolog buffers en los ficheros de redolog. Esto se produce a cada validacin de transaccin, y antes de que se comunique al proceso que todo ha ido bien. As, aunque los ficheros de DB no se actualicen en ese instante con los buffers de BD, la operacin queda guardada y se puede reproducir.

CHECKPOINT (CKPT: Escribe en los ficheros de control los checkpoints. De esta manera se mantiene el estado actual de la DB en algn sitio.
SYSTEM MONITOR, (SMON) : Se encarga de todas las recuperaciones que sean necesarias durante el arranque y se recupera a travs de los archivos REDO LOG y limpia los segmentos temporales no utilizados

PROCESS MONITOR (PMON): Restaura las transacciones no validadas por los procesos de usuario que se abortaron, libera bloqueos y recursos SGA.
RECOVERER (RECO): Asociado con los servidores distribuidos, recupera una transaccin perdida cuando estaba en camino.

ARCHIVER (ARCH): Tiene que ver con los ficheros redo log. Estos ficheros se reutilizan de manera cclica de modo que se van perdiendo los registros redo log que tienen una cierta antigedad. Cuando la BD se ejecuta en modo ARCHIVELOG, antes de reutilizar un fichero redo log realiza una copia del mismo. Job Queue Processes(Jnnn): Son usados para procesos por lotes, son manejados dinmicamente. Esto les permite a los clientes de cola usen ms procesos de cola cuando se requieren, los recursos usados por los nuevos procesos se suelta cuando ellos estn ociosos.

Dispatcher(Dnnn): Son procesos Background opcionales, slo se presenta cuando se usa una configuracin de servidor compartido. Lock Manager Server(LMS): El proceso de bloqueo est asociado al servidor en paralelo.

GRACIAS

También podría gustarte