tema 2.arquitectura del sgbd

Upload: roberto-sanchez

Post on 14-Jul-2015

479 views

Category:

Documents


1 download

TRANSCRIPT

TEMA 2. ARQUITECTURA DEL SGBD ORACLE1. 2.

ARQUITECTURA CREACIN DE LA BASE DE DATOS ARQUITECTURAI.E.S. JULIAN MARIAS CURSO 2011 - 2012 1

MYSQL3.

ASGBD -2 A.S.I.R.

1. ARQUITECTURA DE ORACLEFuentesRevista solo programadores N 172, 173, 174 Documentacin oficial

La arquitectura del SGBD Oracle se basa en tres componentes bsicos:PROCESOS DE USUARIO INSTANCIA DE ORACLE LA BASE DE DATOSASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 2

Arquitectura de Oracle: LA INSTANCIALa instancia esta compuesta por:Procesos que acceden a los ficheros de la Base de Datos. Area de memoria compartida SGA (System Global Area).- Es con la que se comunica el proceso de servidor del usuario cuando este accede a la BD. La vista v$instance contiene informacin sobre la instancia.http://docs.oracle.com/cd/B19306_01/server.102/b14220/memory.htmASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 3

Arquitectura de Oracle: LA INSTANCIA (SGA)rea de memoria compartida por todos los usuarios No debe superar el 40% de la memoria del sistema. Utilidad: Almacena informacin de control y de datos entre el servidor y los clientes. Vida: Aparece cuando se arranca la instancia (oracle.exe) y se elimina cuando sta finaliza (shutdown). La vista v$sga muestra informacin sobre el SGA.ASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 4

Arquitectura de Oracle: LA INSTANCIA (SGA)La vista v$parameter muestra informacin sobre los parametros de configuracin del servidor, entre ellos las diferentes reas de las que se compone el SGA.

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

5

Arquitectura de Oracle: LA INSTANCIA (SGA)SGA

ProcesosASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 6

Arquitectura de Oracle: LA INSTANCIA (SGA)El tamao de las estructuras del SGA se puede consultar en la vista v$SGA_DYNAMIC_COMPONENTS y en v$sga. El SGA esta formado por:Buffer de cache (database buffer cache).- Almacena bloques de datos accedidos recientemente, permite reducir el n de operaciones e/s. Buffer de redo log (redo log buffer cache).- Guarda cambios en la BD (INSERT, UPDATE, CREATE, ALTER o DROP). Permite recuperar la BD ante fallos. Los cambios almacenados se llaman redo entries.ASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 7

Arquitectura de Oracle: LA INSTANCIA (SGA)Shared pool.- Almacena las sentencias SQL y PLSQL ms recientes. Tamao determinado en el parmetro SHARED_POOL_SIZE. Se puede modificar con el comando ALTER SYSTEM SET =, nunca debe ser superior que el SGA_MAX_SIZE. Adems contiene:Cach de biblioteca.- Informacin sobre las instrucciones SQL ejecutadas. Cach de dicionario de datos.- Informacin sobre los privilegios que tiene los usuarios sobre las tablas y la estructura de stas. Shared SQL.- Contiene el plan de ejecucin de las sentencias SQL recientemente ejecutadas. Shared PLSQLASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 8

Arquitectura de Oracle: LA INSTANCIA (SGA)Estructuras opcionales del SGA:Large Pool.- Cuando se utiliza el servidor compartido. Almacena datos de la sesin de usuario y operaciones backup o restauracin. Java Pool.- Para realizar parse de las clases java que se usan como mtodos PL/SQL.

Oracle utiliza el algoritmo LRU (Least Recently Used) para gestionar los contenidos del Shared Pool y del database buffer cache. El tamao de los componentes SGA se puede configurar manualmente y automticamente.ASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 9

Arquitectura de Oracle: LA INSTANCIA (Procesos)Los procesos (Thread) de una instancia (oracle.exe), realizan funciones necesarias para atender las solicitudes de los usuarios concurrentemente. Estos procesos estn en background, para consultarlos:select c.name, b.spid, a.sid from v$session a, v$process b, v$bgprocess c where c.paddr '00' and c.paddr = b.addr and b.addr = a.paddr;ASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 10

Arquitectura de Oracle: LA INSTANCIA (Procesos)Relacionan las estructuras fsicas (ficheros) con las estructuras lgicas (memoria SGA). Existen varios procesos (thread) dentro de la instancia:DBWR (Database Writer).- Encargado de la escritura/lectura en/de disco de toda la informacin almacenada en el Database Buffer cache (DBC). Intermediario entre los Datafiles y el DBCI.E.S. JULIAN MARIAS CURSO 2011 - 2012

ASGBD -2 A.S.I.R.

11

Arquitectura de Oracle: LA INSTANCIA (Procesos)Grfico donde se muestra el procesamiento de una sentencia SQL, a travs del proceso DBWR.

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

12

Arquitectura de Oracle: LA INSTANCIA (Procesos)LGWR (Log Writer).- Intermediario entre los redo log files(RLF) y el redo log buffer (RLB). Proceso circular. Se encarga de controlar los cambios en la base de datos, ante posibles fallos. Vista v$logfile para consultar los RLF. LGWR realiza escrituras en los ficheros redo log cuando: Se hace commit. El RLB esta lleno en 1/3 Hay ms de 1 MB de cambios registrados en el RLB Antes que el DBWR escriba los bloques modificados en el DBC a los datafiles. Cada 3 segundos.ASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 13

Arquitectura de Oracle: LA INSTANCIA (Procesos)Grfico donde se muestra el funcionamiento del proceso LGWR

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

14

Arquitectura de Oracle: LA INSTANCIA (Procesos)CKPT (Checkpoint).- Proceso que provoca que el DBWR escriba en los datafiles todos los bloques modificados desde el ultimo chekpoint (confirmados y no confirmados). Al producirse un evento Ckpt se almacena los sgte.:N de ckpt en las cabeceras de los datafiles N de ckpt, n secuencia de log, nombre de los LogFiles y n de cambio todo dentro del Control File. I.E.S. JULIAN MARIASASGBD -2 A.S.I.R. CURSO 2011 - 2012 15

Arquitectura de Oracle: LA INSTANCIA (Procesos)Grfico donde se muestra el funcionamiento del proceso CKPT.

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

16

Arquitectura de Oracle: LA INSTANCIA (Procesos)PMON (Process Monitor).- Monitoriza los procesos y toma acciones cuando alguno se interrumpe, liberando recursos y restableciendo el proceso interrumpido. Si la conexin con el cliente falla:Hace rollback de las transacciones del usuario Libera las filas de las tablas que mantiene bloqueados a los usuarios.I.E.S. JULIAN MARIAS CURSO 2011 - 2012

ASGBD -2 A.S.I.R.

17

Arquitectura de Oracle: LA INSTANCIA (Procesos)SMON (System Monitor).- Supervisor del sistema, encargado de recuperar la instancia, para ello:Graba los cambios registrados en los log files (despues del commit). Abre la BD para que loguen los usuarios. Deshace las transacciones no confirmadas.

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

18

Arquitectura de Oracle: LA INSTANCIA (Procesos)CASO PRACTICO I

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

19

Arquitectura de Oracle: LA INSTANCIA (Procesos)CASO PRACTICO II

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

20

Arquitectura de Oracle: LA BASE DE DATOSLa Base de Datos Oracle se puede estructurar en dos capas:CAPA FISICA.- La forman todos los ficheros fsicos. CAPA LGICA.- Mecanismo de organizar la BD.

Cada instancia esta asociada a una nica BD, pero para una BD puede haber ms de una instancia.ASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 21

Arquitectura de Oracle: CAPA FISICA BDDATAFILES.- Ficheros que almacenan las tablas, ndices, clusters y procedimientos (pl/sql).Estructura fsica por debajo de los tablespace (estructura lgica) De 1 a MAXDATAFILES en una base de datos. Con extensin .DBF El proceso DBWR es el encargado de modificar estos ficheros. Tienen un tamao fijo, aunque esten vacos con el fin de tener un espacio contiguo en disco. Propiedad AUTOEXTENDASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 22

Arquitectura de Oracle: CAPA FISICA BDCONTROL FILES.- Contiene la descripcin fsica y la localizacin de los datafiles y los redologfiles.Se crean al crearse la BD. Se almacenan en las ubicaciones que se indican en el parametro control_files. Archivos crticos: Se suelen duplicar en ubicaciones distintas El proceso CKPT encargado de actualizar este fichero. La vista v$controlfile nos muestra informacin Extensin CTLI.E.S. JULIAN MARIAS CURSO 2011 - 2012

ASGBD -2 A.S.I.R.

23

Arquitectura de Oracle: CAPA FISICA BDREDO LOG FILES.- Ficheros que almacenan todas las transacciones o modificaciones (INSERT, UPDATE y DELETE).Permiten recuperar la BD en caso de fallo Cada fichero recibe el nombre de grupo. Cada grupo puede estar compuesto por mas de 1 miembro (copia), motivos de seguridad. Solo un grupo esta activo en un momento, cuando se llena (LGWR) se pasa al siguiente grupo. PROCESO CICLICO. Se puede forzar: alter system switch logfile Extensin .LOG Vistas v$logfile y v$logASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 24

Arquitectura de Oracle: CAPA FISICA BDBase de datos con 3 grupos de redo log files. Cada grupo compuesto por dos miembros en ubicaciones distintas.

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

25

Arquitectura de Oracle: CAPA LOGICA BDMecanismo para manejar, almacenar y recuperar los datos eficientemente. La capa lgica consta de:Tablespaces Segmentos, Extensiones y Bloques Esquema de la Base de datos, contiene tablas, clusters, indices, vistas, procedimientos, triggers, secuencias, etcI.E.S. JULIAN MARIAS CURSO 2011 - 2012

ASGBD -2 A.S.I.R.

26

Arquitectura de Oracle: CAPA LOGICA BD

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

27

Arquitectura de Oracle: CAPA LOGICA BD

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

28

Arquitectura de Oracle: CAPA LOGICA BDTABLESPACESSeparan la informacin en grupos para facilitar la administracin de los datos. Como mnimo debe existir el SYSTEM, lo habitual:SYSTEM.- Guarda todas las tablas del diccionario de datos, el cdigo PL/SQL, rollback segment SYSAUX.- Guarda segmentos para las funcionalidades opcionales del SGBD. TEMP.UNDO.- Tablespace que remplaza los rollback segment de anteriores versiones. Puede haber muchos pero solo uno activo.I.E.S. JULIAN MARIAS CURSO 2011 - 2012

ASGBD -2 A.S.I.R.

29

Arquitectura de Oracle: CAPA LOGICA BDTABLESPACESCuando se crea una tabla hay que indicar el tablespace donde se almacenar (por defecto SYSTEM o el indicado en la creacin del usuario). Vistas v$tablespace, dba_tablespaces para consultarlos Cada tablespace debe ocupar al menos un datafile, vista DBA_DATA_FILES muestra esta informacin. Los datafiles seI.E.S. JULIAN MARIAS pueden consultar en v$datafileASGBD -2 A.S.I.R. CURSO 2011 - 2012 30

Arquitectura de Oracle: CAPA LOGICA BDSegmentos, Extensiones y Bloques.- Estructuras que controlan el almacenamiento de los datos dentro de los tablespaces. Los segmentos almacenan un tipo particular de datos, existen 5Segmentos de datos.- Tablas Segmentos de indices.Segmentos de rollback.- Datos antiguos Segmentos temporales.- Operaciones que no caben en memoria (ordenaciones, etc..) Segmentos de bootstrap.- Almacenan las definiciones de las tablas.ASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 31

Arquitectura de Oracle: CAPA LOGICA BDExtensiones.- Divisiones contiguas de un segmento, tienen un tamao fijo, pero se puede redimensionar. Cada extensin reside en un datafile. Bloques.- Divisiones de los segmentos.Constituyen la unidad de almacenamiento ms pequea. Contiene una pequea porcin de informacin referente al bloque en s y el resto son los datos que almacena. Normalmente cada bloque ocupa 8Kb

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

32

Arquitectura de Oracle: CAPA LOGICA BD

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

33

Arquitectura de Oracle: LA INSTANCIA (Procesos)Ejercicio 1: Entrar al sistema con dos usuarios distintos, hacer operaciones con ellos (insert, update, etc..) sobre diferentes tablas, finalizar el proceso de una sesin y ver que sucede. Para crear un usuario usar la siguiente sentencia sql: CREATE USER usuario identified by pass; GRANT ALL PRIVILEGESASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 34

Arquitectura de Oracle: LA INSTANCIA (Procesos)Enlaces tareas de administracin:http://www.fjandrade.com/oracle/instalar-oracle-10gr2-enoul4-red-hat-as4-sobre-vmware-server-windowsxp/ Configurar el em (enterprise manager via web) http://cotosilva.blogspot.com/2010/08/como-configurardatabase-console-para.html RAC http://elotrodba.blogspot.com/2008/07/instalacion-delpatchset-10204.html RAC y OEM http://alexechavarriaperez.blogspot.com/2010/10/recrear-laconsola-de-administracion-de.htmlI.E.S. JULIAN MARIAS CURSO 2011 - 2012

ASGBD -2 A.S.I.R.

35

2. CREACION DE LA BASE DE DATOS ORACLEConsiste en la creacin de un conjunto de archivos que contienen toda la informacin relativa a estructura, contenido y vida de la BD. Tambin implica la creacin de una instancia asociada a dicha BD (procesos y SGA) Dos mecanismos para crear la BD:Manual (instrucciones SQL) Asistente (DBCA o DBConfiguration Assistant)ASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 36

Creacin de la BD: TIPOS DE BDOnline Transaction Processing (OLTP).BD en las que se realizan muchas operaciones pero de corto espacio de tiempo, ej: Banca, comercio electronico, procesamiento de pedidos, etc..

Dession Support (DSS).Destinadas a la toma de decisiones de empresa Objetivo: Extraccion de informacin y analisis sea sencilla. Evolucionando a Data WhareHouseASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 37

Creacin de la BD: TIPOS DE BDData WharehouseBd diseada a la creacin de informes y anlisis de estos Los datos debe estar bien definidos, ser consistentes, no voltiles y en muchos casos de solo lectura Pocas operaciones, pero de mucha importancia.

Creacin de la BD

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

38

Creacin de la BD: TablespacesEstructuras lgicas donde se organizan los datos de la BD. Puente entre las estructuras fsicas (datafiles) y las estructuras lgicas (tablas,..) En oracle siempre se crean una serie de tablespaces por defecto: SYSTEM, USERS, TEMP, UNDO Gestin de Tablespaces Referencia SQL COMPLETAASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 39

Creacin de la BD: TablespacesVistas para obtener informacin sobre los tablespaces:DBA_DATA_FILES.- Muestra los datafiles asociados a los tablespaces. USER_FREE_SPACE.- Extensiones libres en tablespaces a las que puede acceder el usuario. DBA_FREE_SPACE.- Extensiones libres en todos los tablespaces DBA_TABLESPACE.- Descripcin de todos los tablespaces. DBA_TS_QUOTAS.- Bytes usados por los usuarios en cada tablespace.

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

40

Creacin de la BD: TablespacesCambiar el tamao de un datafile:alter datafile resize M;

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

41

Creacin de la BD: Segmentos de Rollbackreas lgicas que contienen informacin de las transacciones en curso, aquellas que no han sido confirmadas (commit). En los segmentos de rollback se van almacenando las sentencias sql que forman la transaccin. Cuando se realiza el commit el espacio utilizado para almacenar las sentencias SQL de la transaccin se marca como libreASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 42

Creacin de la BD: Segmentos de RollbackEl segmento de rollback es un buffer circular.

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

43

Creacin de la BD: Segmentos de Rollback

Un segmento de rollback puede estar los siguientes estados: OFFLINE ONLINE NEEDS RECOVERY.- Contiene datos de transacciones que no pueden hacer rollback porque los datafiles asociados son innacesibles o corruptos. PARTLY AVAILABLE.- Contiene informacin de una transaccin dudosa. INVALID.- El segmento ha sido borrado. Vista dba_rollback_segs para conocer los segmentos de rollback. Para deshabilitar un tablespace, es obligatorio que esten deshabilitados todos los segmentos de rollback que tiene.I.E.S. JULIAN MARIAS CURSO 2011 - 2012

ASGBD -2 A.S.I.R.

44

Creacin de la BD: Segmentos de RollbackCambiar el estado del rollback ALTER ROLLBACK SEGMENT [online|offline]; Creacin de un segmento de rollback CREATE [PUBLIC o PRIVATE] ROLLBACK SEGMENT TABLESPACE STORAGE ( INITIAL Tamao de la extensin inicial NEXT Tamao de las sgtes. Extensiones OPTIMAL Tam. Optimo de crecimiento MINEXTENTS num Numero minimo de extensiones MAXEXTENTS num Numero maximo de extensiones);ASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 45

Creacin de la BD: TABLESPACE UNDOA partir de la versin 9i, aparecen los tablespace UNDO, con el objetivo de sustituir los segmentos de rollback en cada tablespace. Tambien denominados tablespace de rollback Desde la versin 11g, la informacin de deshacer solamente se puede gestionar con estos tablespaces. Solo pueden contener segmentos de rollback. Son manejados de forma local (automticamente). Se pueden crear muchos, pero slo uno puede estar activo. I.E.S. JULIAN MARIASASGBD -2 A.S.I.R. CURSO 2011 - 2012 46

Creacin de la BD: TABLESPACE UNDOSintaxis:CREATE UNDO TABLESPACE nombretablespace DATAFILE ficherodatafile

Para activar un tablespace de rollback hay que activar la gestin automatica (undo_management=auto/manual en el pfile) e indicar el tablespace a activar (undo_tablespace=nombre_tablespace).ALTER SYSTEM SET undo_tablespace=ASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 47

Creacin de la BD: INDICESMecanismo que permite acelerar el tiempo de respuesta en las consultas. Se asocia a una o varias columnas de una tabla Se puede alojar en un tablespace diferente al que aloja la tabla que indexa. Consejos sobre la indexacin:Cuando una tabla tenga muchos datos y se identifiquen por ms de una columna. No se debe indexar columnas modificadas (UPDATE) a menudo y que tenga pocos valores distintos. No es til cuando se realizar muchas sentencias INSERT, DELETE o UPDATE sobre la tabla.ASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 48

Creacin de la BD: INDICESSINTAXISCREATE INDEX ON (colum [ASC|DESC] [,colum[ASC|DESC] ) [STORAGE clausulas_almacenamiento] [TABLESPACE ] [otras_clausulas];

Las vistas USER_INDEXES y DBA_INDEXES informan sobre los indices Todos los campos PRIMARYKEY e UNIQUE estan indexados. Para eliminar un indiceDROP INDEX ASGBD -2 A.S.I.R. I.E.S. JULIAN MARIAS CURSO 2011 - 2012 49

EjemplosCreacin de Tablespace

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

50

EjerciciosEjercicio 1.- Ejercicio 4 pag.207 documento Ejercicio 2.- Ejercicio 5 pag. 208 documento Ejercicio 3.- Crea un tablespace 'curso' de 20 MB con 2 datafiles de 10 MB cada uno. Ejercicio 4.- Crea un tablespace 'test' de 10 MB. Borralo. Crealo de nuevo pero que sea offline. Ejercicio 5.- Aumenta el tamao del tablespace 'curso' de 10 MB. Ejercicio 6.- DocumentoI.E.S. JULIAN MARIAS CURSO 2011 - 2012

ASGBD -2 A.S.I.R.

51

3. ARQUITECTURA DE MYSQLLa arquitectura de MySQL es menos compleja que la de Oracle. Procesos Diccionario de datos

ASGBD -2 A.S.I.R.

I.E.S. JULIAN MARIAS CURSO 2011 - 2012

52