Está en la página 1de 50

Administracion I – Modulo 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

Es un sistema de gestión de base de datos que


permite compartir grandes volúmenes de
información entre múltiples usuarios
simultáneos de forma segura y performante

Está formado por una instancia y una base de
datos
Arquitectura del Oracle Server
M
Instancia
EM
System Global Area
(SGA) O R I
Background
processes A
D
Archivos Físicos
Base de datos I
SCO
Estructuras de Memoria
Procesos
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
Redo log buffer
Java pool
DBWn CKPT

LGWR ARCn RECO Control files


Shared pool Database buffer cache
Library cache
Data dictionary Stream
cache pool
Large pool
Password file
SMON PMON Others

Base de Datos
Parameter
Data file
files Redo files
Log
Archived Log files
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 Dict.Datos, índices, rollbacks,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 un registro de los cambios
efectuados en la base de
Control files datos para recuperación de datos en caso de
fallos
Base Base de de Datos Datos
Data Data files files Control
files
Redo Redo files files
Log Log
Otros Archivos del Oracle Server
(fuera de la base de datos)
El Oracle Server utiliza también otros archivos que no
pertenecen a la base de datos:
• Parameter file: contiene el seteo 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 file
file
Archived Log files
Ejercicios
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 buffer cache
Redo log buffer
Library cache
Data dictionary Java
Stream
cache pool
pool
DBWn CKPT
LGWR SMON PMON ARCn RECO Others
Large pool
Conexión al Oracle Server
Sesión creada
Proceso Servidor
Proceso Usuario
Oracle Server
Usuario

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


usuario a Oracle Server
Instancia Instancia Instancia SGA SGA SGA
Shared Shared Shared pool pool pool Database Database Database buffer buffer buffer cache cache cache
Redo Redo Redo log log log buffer buffer buffer
Library Library Library cache cache cache
Data Data Data dictionary dictionary dictionary Java Java Java
Stream Stream Stream
Large Large Large
cache cache cache pool pool pool
pool pool pool
pool pool pool
DBWn DBWn DBWn CKPT CKPT CKPT
LGWR LGWR LGWR SMON SMON SMON PMON PMON PMON ARCn ARCn ARCn RECO RECO RECO Others
Others Others
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


DML para modificar datos


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:

Parseo : Compila la sentencia SQL


Ejecución: Identifica las filas seleccionadas


(SELECT) o aplica los cambios en los datos(DMLs)

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


Etapa Parseo
El proceso servidor busca si existe una sentencia SQL
idéntica cacheada en la Library Cache (Shared Pool)

Si no la encuentra cacheada:

Chequea sintáxis

Busca si están cacheadas 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

Lockea los objetos mientras realiza el parseo


Determina el plan de ejecución


Deja una copia parseada de la sentencia en la Library


Cache(Shared Pool)
Etapa Parseo(continuación)

Si la encuentra cacheada:

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 parseada para la


ejecución de la sentencia SQL
Shared Pool(estructura de la
SGA)
Shared Pool
Data dictionary cache

Library 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 queries en paralelo, entre otros
Etapa Ejecución

Una ver finalizada la etapa de parse 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 Query(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 alocar,
leer o escribir

Los datafiles están formados por bloques de un


tamaño fijo (elegido por el DBA)

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
Etapa Ejecución en una Query
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 cacheados:


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


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


Lockea 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 en una DML


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


Deslockea 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 Queries)

Esta etapa corresponde solo a queries


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


fech, uno o más feches pueden ser requiridos para
transferir el resultado completo del query 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 alocar memoria de las


sesiones

Los procesos de Backup y Recovery


Ejecuciones de queries en paralelo


Permite grandes alocaciones 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 alocar espacio en


memoria necesario para instanciar los objetos Java
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

Stream Pool(opcional en la
SGA)
Stream pool
Program Global Area(PGA)

Cada proceso servidor y proceso background tiene
asignado un área de memoria propia llamada PGA

PGA Proceso Servidor
Se asigna cuando se crea el proceso servidor o
background

Proceso Usuario
Se libera cuando se termina el proceso
Componentes de la PGA
El contenido de la PGA varíasegú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


performance de la sesión)

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


de las sentecias 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
Ejercicios
Estructuras de Procesos
Server Server
Server
Server

Server Server n processes


SGA
Database buffer cache
Shared pool
Redo log buffer
Library cache
SGA Data dictionary Java
Stream
Large
cache pool
pool
pool
CKPT
RECO PMON SMON DBWn LGWR ARCn Others Oracle

background processes
Database Writer Process
(DBWn)

Escribe buffer cache los buffers en los modificados(dirty)


datafiles(disco)
del database

Pueden la performace configurarse de escritura


varios DBWriters para acelerar

Escribe:

Cuando no hay buffers libres


Cuando hay muchos buffers dirty


Cada 3 segundos

Cuando ocurre un Checkpoint


Database buffer cache
DBWn files
Database writer process
Data files
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 DBWn datafiles


a escribir es un los mecanismo bloques sucios que obliga
en memoria a los procesos
en los

Garantiza checkpoint que han todos sido escritos los


bloques en los modificados datafiles
antes del

En entradas caso de del falla redo de log instancia files


posteriores solo se deberán al último procesar checkpoint
las

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 commitearse


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 (ARCn)

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:rotura de discos)
ARCn Redo Redo files files
Log Log
Archiver process
Destino de los
Copias de redo log
Archive log fies
files
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
Ejercicios
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 block
OS 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 blocks
Disk blocks
Arquitectura del Oracle Server
Resumen de Componentes

Estructura de Memoria:

System Global Area (SGA): Database buffer cache, redo


buffer y varios pools

Program Global Area (PGA)


Estructura de Procesos:

Procesos de usuario y Servidores


Procesos Background: SMON, PMON, DBWn, CKPT,


LGWR, ARCn, etc

Estructura de Almacenamientos:

Lógica: Database, esquema, tablespace, segmento, extent


y Oracle block

Física: Data files, control files y redo log files
Ejercicios

También podría gustarte