Está en la página 1de 48

UNIDAD 1

ARQUITECTURA DEL
SISTEMA GESTOR DE BASES
DE DATOS
ADMINISTRACIÓN I –
MÓDULO 1
Objetivos

Conocer la arquitectura de Oracle y sus componentes


principales
Conocer las estructuras de memoria
Conocer las estructuras de procesos
Conocer las estructuras de almacenamiento
ORACLE SERVER
Sistema de gestión de base de datos permite compartir
grandes volúmenes de información entre múltiples
usuarios simultáneos de forma segura y con gran
rendimiento.

Está formado por una instancia y una base de datos


ARQUITECTURA DEL
ORACLE SERVER
Instancia
M
E Estructuras
M System Global Area (SGA)
de Memoria
O
R
I Procesos Background processes
A

D Archivos Físicos Base de datos


I
S
C
O
ARQUITECTURA DEL
ORACLE SERVER
Oracle Server consiste en:

Una instancia residente en memoria compuesta por:


 Estructuras de memoria(SGA)
 Procesos background

Una base de datos residente en disco compuesta por:


 Archivos físicos
ARQUITECTURA DEL ORACLE
SERVER
(MÁS EN DETALLE)Instancia
SGA
Shared pool
Database Library
Redo log
buffer cache
buffer
cache
Data dictionary
Java Stream Large cache
pool pool pool

DBWn CKPT LGWR SMON PMON ARCn RECO Others

Base de Datos

Parameter Data files Control Redo Log


file files files
Archived
Log files
Password
file
ARCHIVOS DE LA BASE DE DATOS
(ESTRUCTURA FÍSICA)
Una base de datos consiste en 3 tipos de archivos:

• Datafiles: contienen los datos reales (tablas de los


usuarios y Dicc.Datos, índices, undo, etc).

• Controlfiles: contienen información de la estructura


física de la base de datos, se utilizan para verificar
integridad de la base de datos.

• Redo log files: contienen Base de Datos


un registro de los cambios Data files Control Redo Log
efectuados en la base de files files

datos para recuperación


de datos en caso de fallos.
OTROS ARCHIVOS DEL ORACLE
SERVER
(FUERA DE LA BASE DE DATOS)
Oracle Server utiliza también otros archivos que no pertenecen
a la base de datos:

• Parameter file: contiene el conjunto de parámetros para la


configuración de la instancia (ej: tamaño de estructuras de
memoria, etc)

• Password file: se utiliza para autenticar ciertos privilegios de


usuarios(ej: levantar y bajar la base)

• Archived log files: son copias de los redo log files que
permiten recuperar la base en caso de falla de discos

Parameter Password Archived


file file Log files
PRACTICA
INSTANCIA
Compuesta por la estructura de memoria SGA y procesos
background:

• System Global Area: conformada por varias estr. de


memoria, contienen datos e información de control para
el Oracle Server

• Procesos Background: cada uno cumple una función


específica
Instancia
SGA
Shared pool
Database Library
Redo log
buffer cache
buffer
cache
Data dictionary
Java Stream Large cache
pool pool pool
DBWn CKPT LGWR SMON PMON ARCn RECO Others
CONEXIÓN AL ORACLE
SERVER
Sesión creada
Proceso
Servidor
Instancia
SGA
Proceso Database
Shared pool
Library
Usuario buffer
Redo log
buffer cache
cache
Data dictionary
Java Stream Large cache
pool pool pool

DBWn CKPT LGWR SMON PMON ARCn RECO Others

Usuario

Oracle Server

Se llama sesión a la conexión específica


de un usuario a Oracle Server
PROCESAMIENTO DE UNA
SENTENCIA SQL

Para la conexión a la instancia actúan 2 procesos:


 un proceso usuario
 un proceso servidor

Los componentes del Oracle Server participantes dependen


del tipo de sentencia a procesar:
 Query para retornar filas (SELECT)
 DML para modificar datos (INSERT, UPDATE,
DELETE)
 Commit para confirmar transacción

No todos los componentes participan en el procesamiento


de sentencias
ETAPAS DEL PROCESAMIENTO DE
UNA SENTENCIA SQL
El procesamiento de una sentencia SQL incluye
entre 2 y 3 etapas según el tipo de sentencia:

1. Análisis de sintaxis: Compila la sentencia SQL (select * from


…., insert into, update set, delete from tabla, truncate;

2. Ejecución: Identifica las filas seleccionadas (SELECT) o aplica


los cambios en los datos(DMLs)

3. Fetch (Retorna las filas, solo en caso de SELECT)


ETAPA ANÁLISIS DE
SINTAXIS
El proceso servidor busca si existe una sentencia SQL idéntica en
memoria en la estructura Library Cache (Shared Pool)

Si no la encuentra en memoria:
 Chequea la sintaxis
 Busca si están en memoria las definiciones de objetos y privilegios en la
Data Diccionary Cache (Shared Pool), si no las encuentra busca en las
tablas del diccionario de datos
 Bloquea los objetos mientras realiza el análisis de sintaxis
 Determina el plan de ejecución
 SELECT, FROM, WHERE, GROUP BY, ORDER BY (advisor)
 Deja una copia de la sentencia en la Library Cache(Shared Pool)
ETAPA ANÁLISIS DE
SINTAXIS (CONTINUACIÓN)

Si la encuentra en memoria:

 Solo chequea privilegios de objetos(en la Data Diccionary


Cache o en las tablas del diccionario de datos según existan)
 Utiliza esa copia previamente en memoria para la ejecución
de la sentencia SQL
SHARED
POOL(ESTRUCTURA DE LA
SGA)Shared Pool
Library
cache

Data dictionary
cache

Library Cache: contiene las sentencias SQL y PL/SQL utilizadas más


recientemente
Data Dictionary Cache: contiene las definiciones de los objetos y
privilegios utilizados más recientemente
Incluye además otras estructuras de control, para gestionar ejecuciones de
consultas en paralelo, entre otros
ETAPA EJECUCIÓN

Una ver finalizada la etapa de análisis de sintaxis, el proceso


Servidor continúa con la siguiente etapa, la ejecución la
sentencia SQL

Los pasos a realizar durante esta etapa difieren según sea una
consulta (SELECT) o una DML
ETAPA EJECUCIÓN:
CONCEPTO BLOQUES DE DATOS
Un Bloque de dato es la menor unidad de almacenamiento
que el Oracle Server puede leer o escribir. 8192 Bytes
Los datafiles están formados por bloques de un tamaño fijo
Las filas de las tablas, índices, rollbacks están almacenados en
bloques de datos
Dependiendo del tamaño de bloque y de las filas, puede haber
varias filas por bloque o una fila puede ocupar varios bloques
Varchar2 (255) = “jose” (4Bytes) varchar(5000) = sdsaas
9166Bytes
int (32565) = 10000
bool (1,0)
ETAPA EJECUCIÓN EN
UNA CONSULTA
El proceso servidor busca si están cacheados en el Database
Buffer Cache los bloques de datos que contienen las filas
que necesita

 Si no encuentra los bloques en memoria:


 Lee los bloques de datos desde los datafiles

(lectura a disco)
 Coloca una copia de los bloques en el DBC

 Para siguientes solicitudes de los mismos bloques ya los


puede encontrar en memoria sin necesidad de realizar
lecturas físicas

 Si los encuentra los lee directamente de la DBC


ETAPA EJECUCIÓN EN
UNA DML
 El proceso servidor busca en el Database Buffer Cache:
 Los bloques que contienen las filas a modificar

 Los bloques de rollback para guardar la before-image

 Si no encuentra los sube desde los datafiles al DBC

 Bloquea las filas que van ser modificadas

 Registra en el redo log buffer los cambios a ser realizados


en los bloques

 Modifica los bloques sobre el DBC:


 Los de rollback guardando la before-image del datos

 Los bloques de datos guardando los nuevos valores


ETAPA EJECUCIÓN DE UN
COMMIT
Cuando se ejecuta un COMMIT los siguientes pasos
son realizados por el proceso servidor:

 Registra el COMMIT en el redo log buffer

 El proceso LGWR escribe los registros de redo desde


el redo log buffer hacia los redo log files(incluyendo el
registro del COMMIT), se garantiza que la transacción
completa está registrada en los redo log files

 El usuario recibe el mensaje de COMMIT completo

 Desbloquea las filas y da por finalizada la transacción


DATABASE BUFFER CACHE
(ESTRUCTURA DE LA SGA)

Database Buffer Cache

Almacena copias de los bloques de datos más recientemente usados, algunos


bloques están modificados (dirty)
Permite mejorar de rendimiento al poder leer y actualizar datos directamente en
memoria
Oracle Server utiliza un algoritmo LRU para envejecer los buffers menos
recientemente usados y dejar lugar para cachear nuevos bloques
REDO LOG BUFFER (ESTRUCTURA
DE LA SGA)
Redo log
buffer

Es un buffer circular usado secuencialmente


Contiene información de los cambios que se van realizando en la base de datos(DMLs y
DDLs)
Cada cambio registrado se denomina registro de redo
Estos registros contienen información que permiten reconstruir los cambios, sirven para
realizar recovery de la base e instancia
El proceso LGWR luego escribe los registros de redo desde el redo log buffer hacia los
redo log files(en disco)
ETAPA FETCH(SOLO EN
CONSULTAS)
Esta etapa corresponde solo a consultas

Las filas son ordenadas si es necesario y retornadas por el


proceso servidor al proceso de usuario

Dependiendo de la cantidad de filas retornadas por fetch, uno o


más fetchs pueden ser requeridos para transferir el resultado
completo de la consulta al usuario
ESTRUCTURAS
OPCIONALES DE LA SGA
Existen 3 estructuras de memoria adicionales
que se pueden configurar en la SGA:

Large Pool
Java Pool
Streams Pool
LARGE POOL (OPCIONAL
EN LA SGA)
Large
pool

Es un área opcional, si es creada los siguientes procesos la utilizan en


lugar de usar la shared pool:
 Los procesos Shared Server para utilizar memoria de las sesiones
 Los procesos de Backup y Recovery
 Ejecuciones de queries en paralelo

Permite grandes usos de memoria evitando contención de la shared pool


JAVA POOL(OPCIONAL EN
LA SGA)

Java
pool

Es un área requerida si existen aplicaciones que ejecutan


procedimientos Java almacenados en la base de datos

Las sesiones la utilizan para utilizar espacio en memoria necesario


para instanciar los objetos Java
STREAM POOL(OPCIONAL
EN LA SGA)
Stream
pool

Es un área opcional utilizada por Oracle Streams

Oracle Streams es una herramienta de replicación, extrae información de


los redos, reconstruye las sentencias que fueron ejecutadas y las ejecuta en
bases de datos remotas

Esos procesos extractores y aplicadores de cambios usan esta memoria


para poder trabajar
PROGRAM GLOBAL
AREA(PGA)
 Cada proceso servidor y proceso PGA
Proceso
background tiene asignado un área de
Servidor
memoria propia llamada PGA

 Se asigna cuando se crea el proceso Proceso


servidor o background Usuario

 Se libera cuando se termina el proceso


COMPONENTES DE LA
PGA
El contenido de la PGA varía según la instancia se configure
como: Servidor dedicado o Servidor compartido, incluye:

 Área de ordenamiento para procesar las sentencias

 Información de la sesión(estado, estadísticas de rendimiento


de la sesión)

 Estados de los cursores(información de la ejecución de las


sentencias SQL)

 Variables de la sesión
ESTRUCTURAS DE MEMORIA, EN
CONCLUSIÓN
Oracle Server está formado por dos áreas de memoria básicas:

 SGA (Área Global del Sistema): Componente fundamental


de una instancia Oracle, es compartida por todos los procesos
servidores y background.

 PGA (Área Global de Programas): Asignada al iniciar cada


proceso de servidor o background.
PRACTICA
ESTRUCTURAS DE
PROCESOS
Server Server Server Server Server
Server n
processes

SGA Shared pool


Database Library
Redo log
buffer cache
buffer SGA
cache
Data dictionary
Java Stream Large cache
pool pool pool

CKPT RECO PMON SMON DBWn LGWR ARCn Others


Oracle
background
processes
DATABASE WRITER
PROCESS (DBW)
Escribe los buffers modificados(dirty) del database buffer cache en los
datafiles(disco)
Pueden configurarse varios DBWriters para acelerar el rendimiento de
escritura

Escribe:
 Cuando no hay buffers libres
 Cuando hay muchos buffers dirty
 Cada 3 segundos
 Cuando ocurre un Checkpoint

DBWn files

Database buffer Database writer


Data files
cache process
LOGWRITER PROCESS
(LGWR)
 Escribe las entradas de redo desde el redo log buffer a los redo logs files
en disco

 Escribe:
 Cuando un proceso de usuario hace commit de una transacción
 Cuando el redo log buffer está un tercio lleno
 Antes que los procesos DBWn escriban los buffers modificados en
el cache a disco

Redo log
buffer LGWR files

LogWriter process
Redo log files
CHECKPOINT PROCESS
(CKPT)
 Checkpoint es un mecanismo que obliga a los procesos DBWn a
escribir los bloques sucios en memoria en los datafiles

 Garantiza que todos los bloques modificados antes del checkpoint


han sido escritos en los datafiles

 En caso de falla de instancia solo se deberán procesar las entradas


del redo log files posteriores al último checkpoint

 El proceso checkpoint(CKPT) registra información de los


checkpoints en:

 Control files
 El header de cada data file
SYSTEM MONITOR
PROCESS(SMON)
Recuperación de la instancia al levantarse: si falla la

instancia se perderá toda la información de la SGA

que no se haya escrito en disco, pasos:

 Aplica las transacciones registradas en los redo log files


que no llegaron a aplicarse en los datafiles
 Abre la base de datos para que accedan los usuarios
 Deshace las transacciones que no llegaron a commit

 Libera los segmentos temporales


PROCESS MONITOR
PROCESS(PMON)
 Hace una limpieza cuando una sesión termina
anormalmente:

 Hace un rollback de las transacciones


 Libera las filas que mantenía bloqueadas
 Libera otros recursos(PGA, limpia el database
buffer cache, etc)

 Monitorea las sesiones que llegan a timeout por


inactividad
ARCHIVER PROCESSES
(ARC)
 Es un proceso opcional, pueden configurarse uno o más procesos
archivadores

 Archiva automáticamente los redo log files en un destino


designado(base en modo ARCHIVELOG)

 Se tiene un registro histórico de todas las transacciones sobre la base


de datos

 Los archive log files se utilizan para recuperar la base hasta un


punto de fallo (ej: daño de discos)

Redo Log
ARCn files Redo Log
files
Destino de los
Archiver process Archive log fies
Copias de redo log
files
RECOVERER
PROCESS(RECO)
 Una transacción distribuida es una transacción que
envuelve la actualización de datos de 2 o más bases en
simultáneo

 Las transacciones distribuidas requieren un tratamiento


coordinado del commit, para que sea válido debe ser
exitoso en cada base participante

 RECO resuelve automáticamente fallas en las


transacciones distribuidas, cancela el commit y hace
rollback de la transacción en todas las bases de datos
OTROS PROCESOS
 MMON: Captura regularmente(cada una hora) estadísticas de
performance desde la SGA y las guarda en el diccionario de datos

 MMNL: Asiste al MMON a capturar las estadísticas

 MMAN: Monitorea la demanda de las estructuras de memoria de la SGA


y hace resize si es necesario

 CJQ0: Ejecutan jobs creados en la base

 QMNC: Monitorea colas de mensajes de Oracle Streams


PRACTICA
ESTRUCTURA FÍSICA DE LA BASE
DE DATOS

Control files Data files Redo log files

Parameter file Backup files Archive log


files

Password file Alert and trace


log files
ESTRUCTURA LÓGICA Y
FÍSICA DE LA BASE DE
DATOS Lógica Física

Database

Schema Tablespace Data file

Segment

Extent

Oracle data
OS block
block
TABLESPACES Y DATA
FILES
Tablespaces consisten en uno o más data files
 Un Data file pertenece a un único tablespace

files files

Data file 1 Data file 2

Tablespace USERS
TABLESPACES SYSTEM Y
SYSAUX
 Los tablespaces SYSTEM y SYSAUX son creados en
el momento de la creación de la base

 El tablespace SYSTEM contiene por ejemplo las tablas del


diccionario de datos

 El tablespace SYSAUX contiene componentes adicionales, por


ejemplo el repositorio del Enterprise Manager
SEGMENTOS, EXTENTS Y
BLOCKS
 Cada segmento pertenece a un único tablespace
 Los segments son colecciones de extents
 Extents son colecciones de data blocks
 Data blocks corresponden a uno o más blocks de disco

Segment Extents Data Disk


blocks blocks
PRACTICA

También podría gustarte