View
7.015
Download
1
Category
Preview:
DESCRIPTION
Conozca la estructura del gestor mas potente del mercado. Arquitectura de Oracle Database 11g, descripcion conceptual, utilizacion de la memoria, procesos especificos.
Citation preview
Oracle Database 11g> Administration I
IZ0-052Ernesto Alexander Calderón Peraza
http://BasesDeDatosUES.Blogspot.com
Exploring the Database ArchitectureExplorando la arquitectura de la base de Datos
2
2
Oracle Database Server
> Consiste en dos elementos
> LA INSTANCIA• Son estructuras de memoria y
procesos
> LA BASE DE DATOS• Son archivos en el disco
> La instancia puede ser iniciada y detenida, la base de datos persiste indefinidamente
Los procesos de la instancia se conocen como background process
3
Arquitectura de Simple Instancia> La memoria es implementada por
segmentos compartidos del sistema operativo, a ella se le conoce como SGA System Global Area.
• Se reserva cuando la instancia inicia, y se libera cuando se apaga.
> Asociados con cada proceso de servidor esta un area no compartida de memoria llamada PGA program global area
• Los procesos de servidor se denominan Foreground process, los procesos de instancia se denominan background process
4
SGA PGABackground Process
Foreground Process
5
> La estructura física que conforma una Base de Datos son los archivos de datos, el online redo log y el controlfile
• Redo Log es un registro secuencial de todos los cambios aplicados a los datos
• ControlFile almacena el detalle de la estructura fisica de la base de datos y el punto de inicio para enlazar la estructura fisica
> La relacion entre estructura fisica y logica es mantenida y documentada por el diccionario de datos, que contiene los metadatos que describen la base de datos
6
Arquitectura de instancia Simple
Usuario interactura con procesos de usuario
El proceso de usuario interactúa con un proceso de servidor
Un proceso de servidor interactúa con la instancia
La instancia interactúa con la base de datos
Es absolutamente imposible para procesos del lado del CLIENTE tener cualquier contacto con la Base de datos de forma
directa, ellos utilizan procesos del lado de SERVIDOR para realizarlo.
7
Arquitectura de sistemas Distribuidos> Real Application Clusters RAC.
• Multiples instancias abren una base de datos
> Streams• Multiples Oracle Server propagan
transacciones entre ellos
> Data Guard• Una base primaria actualiza una base
estatica.
8
Real Application Clusters RAC
> Provee capacidad para rendimiento, tolerancia de fallos y escalabilidad.
> Implementa el concepto de GRID
> Transparencia de escalabilidad viene de la habilidad de agregar instancias, corriendo sobre diferentes maquinas
9
Streams
> Razones para transferir datos de una base de datos a otra
• Tolerancia de fallos• Tuning, la sincronización se vuelve
automática.• DataWareHouse
> Stream permite capturar cambios realizados a tablas y aplicarlos a una copia remota de las tablas.
> Streams es bidireccional• Streams propaga cambios entre las
dos bases de datos sincronizándolas
10
Data Guard
> Define una base de datos primaria y una o varias bases estaticas.
> La Standby es creada a partir de un backup de la primaria.
> Tipos de Standbys• Fisicos• Logicos
11
Standby Fisico
> Es identico al primaria byte por byte
> Si se destruye el Primario, todos los datos se encuentran en el Standby
> El vector de cambios aplicado al PRIMARY se propaga al STANDBY en forma de REDO record y aplicados como una restauración de backup
12
Standby Logico
> Contiene los mismos datos que el servidor PRIMARIO, pero en una estructura de datos distinta.
> Los vectores de cambio son propagados en forma de sentencias SQL usando el mecanismo de Streams
13
Ejercicio
> Determinando si nuestra base de datos es una instancia simple o forma parte de un sistema distribuido.
• Conectese a la base como SYSTEM• SELECT parallel from v$instance;
> Devuelve NO si es una single Instancia• Select protection_level from v$database;
> Devuelve UNPROTECTED si la base de datos no esta portegida
• SELECT * from dba_streams_administrator;> Si no devuelve tuplas STREAMS no ha sido
configurado
14
Estructura de la memoria> SGA contiene
• Database Buffer cache• Log Buffer• Shared Pool• Large Pool (opcional)• Java Pool (opcional)• Stream Pool (opcional
> PGA• Utilizada para las sesiones de
usuario, las cuales necesitan memoria del lado del servidor.
15
Database Buffer Cache
> Es el área de trabajo de Oracle para la ejecución de SQL
> Las actualizaciones hechas por los usuarios NO son aplicadas directamente al disco. Se aplican primero al database buffer cache.
> BLOQUE: los archivos de datos son formateados en bloques, las tuplas y otros objetos son almacenados en estos bloques.
> Todos los bloques contienen datos que son frecuentemente accedidos y se encuentran en el database buffer cache, ello minimiza el uso de disco para I/O
16
QUE OCURRE??
> Select last_name, salary, job_id from employees where employee_id=100;
> Update employees set salary= salary*1.1 where employee_id=100;
> Commit;
17
Que ocurre
> El proceso de servidor para la sesion lee el bloque que contiene las tuplas desde el archivo fisico hacia el buffer.
> Cuando se ejecuta el commit se envia al server process la orden de ejecucion.
> El bloque con la tupla esta disponible en el buffer para ejecutar el update.
> Posteriormente la informacion del buffer se enviara al disco.
18
Database buffer cache
> El encargado de escribir los bloques del buffer hacia el disco es un background process
> El tamano del database buffer cache es critico para el rendimiento
> El tamano del database buffer cache puede ser ajustado dinamicamente y puede ser administrado de forma automatica.
19
Log Buffer
> Es un especio pequeño que almacena los vectores de actualización temporalmente antes de ser escritos en el online REDO LOG en disco.
> Redo Log es el mecanismo con el cual se garantiza que nunca se perderan datos.
> LGWR es el encargado de escribir los log y es un background process
20
Como se garantiza una transacción> Los bloques de datos ubicados en el
cache ya reflejan los cambios.
> El vector de cambios ha sido escrito al online Redo Log en el disco.
21
Shared Pool
> Cache de Biblioteca
> Cache de Diccionario de Datos
> PL/SQL Area
> Cache de resultados de consultas SQL y PL/SQL
• Su tamaño es dinámico y puede ser automáticamente administrado
22
Cache de Biblioteca
> Library Cache
> Es una memoria para almacenar código recientemente ejecutado, el cual esta en forma convertida (parsed), lo que facilita su ejecucion cuando es nuevamente invocada
> Select * from employees where last_name=‘King’;
• Que es employees, una vista, tabla??• Que campos son??• De tipo son los campos??
23
Cache de Diccionario de Datos
> Almacena definiciones de objetos recientemente utilizados
> Almacena definiciones de objetos cuando las instrucciones han sido ejecutadas (parsed)
24
Area de PL/SQL
> Almacena objetos PL/SQL como funciones, trigger, etc.
> La primera vez que un objeto PL/SQL es usado debe ser leido desde el diccionario de datos.
> Luego de la ejecucion su invocacion sera mas rapida pues estara disponible dentro del Shared Pool
25
Dimensionando el Shared Pool
> Es vital para el rendimiento, ni muy grande ni muy pequeno impacta de forma negativa el rendimiento
> La memoria del Shared Pool es asignada por el LRU Least Recently Used Algorithm
26
Large Pool
> Es opcional
> Puede ser usado de forma automatica por varios procesos que toman memoria del shared pool
> Se usa normalmente para compartir procesos de servidor, para ejecucion en paralelo
27
Java Pool
> Se utiliza únicamente si deseamos colocar código de JAVA dentro de nuestro servidor
> Es posible colocar Enterprise JavaBeans
28
Streams Pool
> Mecanismo utilizado por Streams para extraer vectores de cambio desde el online REDO LOG formar la reconstruccion de las consultas que seran ejecutadas.
29
Verificar el uso de memoria
> Conectese como SYSTEM
> Select COMPONENT, CURRENT_SIZE, MIN_SIZE, MAX_SIZE from v$sga_dynamic_components;
30
Procesos
> En Unix los procesos son separados por el sistema operativo, en Windows todos aparecen como un proceso denominado ORACLE.EXE
> SMON System Monitor• Tiene la tarea de montar y abrir la
base de datos.• Luego se encarga de tareas
domesticas como la paginacion de espacio libre en datafiles
31
Procesos
> PMON Process Monitor• una sesion de usuario es un procesos
que se conecta a un proceso de servidor
• Si una sesion termina anormalmente PMON destruye el proceso de servidor, devuelve la memoria usada y hace ROLLBACK a las transacciones pendientes
32
Procesos> DBWn Database Writer
• Encargado de escribir de los buffer de Database a los archivos en disco.
• Cada proceso es llamado DBW0, DBW1… uno por cada CPU
• La lectura I/O es mala para el rendimiento.
• DBW selecciona los DIRTY BUFFERS y los escribe en el disco, elije aquellos que no han sido recientemente utilizados.
> Dirty Buffers: • contienen información que ha sido
modificada pero que todavía no se escribe en disco
33
Que ocaciona que DBWn escriba?> Que no exista buffer disponible
> Que hayan muchos Dirty Buffer
> Una espera de 3 segundos
> Un CheckPoint• Este obliga a que todos los dirty
buffer sean escritos• Ocurren siempre que se apaga la
base de datos
34
Procesos
> LGWR Log Writer• Escribe el contenido del LOG buffer
para los archivos de log en el disco
• Antes de aplicar cambios encontrados en el database buffer, el vector de cambios se aplica al log buffer
> Cuando el LGWR escribe el log buffer en disco
• cuando una sesion hace un commit• Si el log buffer llega a un tercio de su
capacidad• Cuando se escriben Dirty Buffers
35
CKPT checkpoint process
> Checkpoint son necesarios para evitar que la instancia falle, y si lo hace recuperar la base de datos rapidamente.
MMON Manageability Monitor> Brinda capacidad para monitoreo y
ajuste de la Base de datos> Captura estadisticas desde el SGA y
las escribe en el diccionario> Monitorea la base de datos y la
instancia chequeandolas por cualquier alerta.
36
MMAN memory manager
> Encargado de la administración automática de la memoria
> Monitoriea la demanda de la memoria SGA y pude redimensionarla si es necesario
ARC el Archivador> Opcional. Para preservar el historial
de todos los cambios aplicados a los datos.
> Se encarga de garantizar la disponibilidad y exactitud de los archivos Online Redo log files
37
RECO Recoverer process> Una transacción distribuida involucra
actualización de dos o mas bases de datos.• Update employees set salary= salary*1.1 where
employee_id=1000;• Update employees@dev set salary=salary*1.1
where employee_id=1000;• Commit;
> En la aplicación cada LGWR flush el log buffer hacia el disco y confirman la transaccion, si ocurre un problema RECO cancela la transaccion y hace Rollback en las dos bases de datos
38
Estructura Fisica
> CONTROLFILE> ONLINE REDO LOG> DATAFILES
> Archivos externos• Archivo de parametros de
inicializacion• Archivo de password• Archivo Redo log• Alert Log y Trace Files
39
Controlfile
> Es un puntero para la base de datos, la ubicación del online redo log y de los archivos de datos.
> Almacena informacion requerida para mantener la integridad de la base de datos (secuencias criticas y timestamps)
> Mide algunos megas de tamano pero es indispensable
40
Online Redo Log File
> Almacena una bitácora de cada vector de cambio aplicado a la base de datos.
> Consiste de grupos de online redo log files, cada archivo se conoce como un miembro.
> Los cambios son escritos al actual online redo log file por LGWR
> El tamano para un grupo es de 50mb
41
Data Files
> Uno para el tablespace SYSTEM y otro para SYSAUX
> Son el repositorio fisico para los datos> Un segmento es una estructura de
almacenamiento de datos.> Desde el sistema operativo, es un
grupo de sistemas de bloque, cada uno numerado consecutivamente.
> El tamano varia desde 2kb hasta 4kb
42
La Estructura Lógica
> Oracle utiliza el temino de segmento para describir cualquier estructura que contiene datos (tablas, tuplas, indices, etc)
> Un TableSpace es una colección logica de uno o mas segmentos, y fisicamente una colección de uno o mas datafiles.
> Una tabla puede contenerse en varios datafiles, y un datafile puede contener bits de muchas tablas.
43
Diccionario de Datos
> Son los metadatos. Describe la base de datos tanto física como lógicamente.
> Se almacena con conjuntos de segmentos dentro de los tablespace SYSTEM y SYSAUX
> Para consultar el diccionario existen vistas, con el prefijo: DBA_, ALL_, USER_, etc.
44
ejercicio
> Create table tab24(c1 varchar2(10));
> Select tablespace_name, extent_id, bytes, file_id, block_id from dba_extents where owner=‘SYSTEM’ and segment_name=‘TAB24’ ;
Recommended