Introduccion a la Arquitectura de Oracle. Z052 02

44
Oracle Database 11g > Administration I IZ0-052 Ernesto Alexander Calderón Peraza http:// BasesDeDatosUES.Blogspot.com Exploring the Database Architecture Explorando la arquitectura de la base de Datos 2

description

Conozca la estructura del gestor mas potente del mercado. Arquitectura de Oracle Database 11g, descripcion conceptual, utilizacion de la memoria, procesos especificos.

Transcript of Introduccion a la Arquitectura de Oracle. Z052 02

Page 1: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 2: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 3: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 4: Introduccion a la Arquitectura de Oracle. Z052 02

4

SGA PGABackground Process

Foreground Process

Page 5: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 6: Introduccion a la Arquitectura de Oracle. Z052 02

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.

Page 7: Introduccion a la Arquitectura de Oracle. Z052 02

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.

Page 8: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 9: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 10: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 11: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 12: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 13: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 14: Introduccion a la Arquitectura de Oracle. Z052 02

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.

Page 15: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 16: Introduccion a la Arquitectura de Oracle. Z052 02

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;

Page 17: Introduccion a la Arquitectura de Oracle. Z052 02

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.

Page 18: Introduccion a la Arquitectura de Oracle. Z052 02

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.

Page 19: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 20: Introduccion a la Arquitectura de Oracle. Z052 02

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.

Page 21: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 22: Introduccion a la Arquitectura de Oracle. Z052 02

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??

Page 23: Introduccion a la Arquitectura de Oracle. Z052 02

23

Cache de Diccionario de Datos

> Almacena definiciones de objetos recientemente utilizados

> Almacena definiciones de objetos cuando las instrucciones han sido ejecutadas (parsed)

Page 24: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 25: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 26: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 27: Introduccion a la Arquitectura de Oracle. Z052 02

27

Java Pool

> Se utiliza únicamente si deseamos colocar código de JAVA dentro de nuestro servidor

> Es posible colocar Enterprise JavaBeans

Page 28: Introduccion a la Arquitectura de Oracle. Z052 02

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.

Page 29: Introduccion a la Arquitectura de Oracle. Z052 02

29

Verificar el uso de memoria

> Conectese como SYSTEM

> Select COMPONENT, CURRENT_SIZE, MIN_SIZE, MAX_SIZE from v$sga_dynamic_components;

Page 30: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 31: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 32: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 33: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 34: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 35: Introduccion a la Arquitectura de Oracle. Z052 02

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.

Page 36: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 37: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 38: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 39: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 40: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 41: Introduccion a la Arquitectura de Oracle. Z052 02

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

Page 42: Introduccion a la Arquitectura de Oracle. Z052 02

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.

Page 43: Introduccion a la Arquitectura de Oracle. Z052 02

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.

Page 44: Introduccion a la Arquitectura de Oracle. Z052 02

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’ ;