Fundamentos de los Gestores de Bases de Datos

59
1 FUNDAMENTOS DE LOS GESTORES DE BASES DE DATOS Aplicados a Oracle Database e IBM DB2 Autor: Manuel Picazo Vico https://es.linkedin.com/in/manuelpicazo

Transcript of Fundamentos de los Gestores de Bases de Datos

Page 1: Fundamentos de los Gestores de Bases de Datos

1

FUNDAMENTOS DE LOS GESTORES

DE BASES DE DATOSAplicados a Oracle Database e IBM DB2

Autor: Manuel Picazo Vico

https://es.linkedin.com/in/manuelpicazo

Page 2: Fundamentos de los Gestores de Bases de Datos

2

INDICE GLOSARIO INTRODUCCIÓN Y CONCEPTOS GENERALES

MODELO DE DATOS BASES DE DATOS SISTEMAS GESTORES DE BASES DE DATOS (RELACIONALES)

INSTANCIA DE LA BASE DE DATOS VISIÓN GENERAL ESTRUCTURAS DE MEMORIA ESTRUCTURAS DE DATOS OBJETOS DE LA BASE DE DATOS

GESTIÓN DE REDO Y UNDO REDO (REHACER) UNDO (DESHACER)

ESTRATEGIAS BÁSICAS FRENTE A PÉRDIDA DE DATOS DUPLICIDAD REINICIO DE LA BD (RESTART) COPIA DE SEGURIDAD Y RECUPERACIÓN DE LA BD (BACKUP & RESTORE)

TEMAS AVANZADOS

Page 3: Fundamentos de los Gestores de Bases de Datos

3

GLOSARIOGLOSSARY

Base de Datos: BD Database: DB

Bases de Datos: BBDDDatabases: DB

Sistema Gestor de BBDD: SGBDDatabase Management System: DBMS

Sistema Gestor de BBDD Relacionales: SGBDRRelational Database Management System: RDBMS

Clave Primaria: PKPrimary Key: PK

Clave Foránea: FKForeign Key: FK

Page 4: Fundamentos de los Gestores de Bases de Datos

4

INDICE INTRODUCCIÓN Y CONCEPTOS GENERALES

MODELO DE DATOS BASES DE DATOS SISTEMAS GESTORES DE BASES DE DATOS (RELACIONALES)

Page 5: Fundamentos de los Gestores de Bases de Datos

5

INTRODUCCIÓN Y CONCEPTOS GENERALESMODELO DE DATOS

Es la representación teórica de una realidad que queremos modelizar.Habitualmente se debe ceñir a un negocio concreto

Se compone de

Entidades:Representaciones de objetos o ideas de esa realidad. Se componen de

Atributos: Propiedades de las cuales están compuestas las Entidades Tuplas (Filas) : Instanciación concreta (Ítem) de una Entidad y por tanto de sus atributos

Relaciones:Iteraciones, influencias o dependencias entre las entidades

Claves:Son conjuntos de atributos a los que se aplican ciertas restricciones. Primarias: Identifican de forma única cada tupla de una Entidad Únicas: Garantizan solo existe una tupla con los mismos valores de esa clave para toda la

entidad Foráneas: Identifica de forma única una tupla en otra Entidad. Se utiliza para definir

dependencias entre Entidades.

Page 6: Fundamentos de los Gestores de Bases de Datos

6

Tipos de Modelos de Datos

Relacional:Modelo utilizado en la teoría de BBDD. Tanto a las

Entidades como a las Relaciones las llama Relaciones

Entidad-Relación (E-R) o ConceptualRepresentan la realidad independientemente de cualquier implementación de BD (Relacional o no). Una entidad es un objeto o concepto del mundo real (Podría ser representado posteriormente tanto por una Entidad como por un atributo)Usado en etapa de Análisis.

LógicoRepresenta el modelo conceptual transportado a un modelo Relacional de Bases de datos, (Entidades, relaciones entre entidades y restricciones). Debe estar normalizado y es independiente del SGBD en que se va implementar. Utilizado en fase de Diseño.

FísicoModelo implementado en un SGBD concreto. Utilizado en fase de Implementación. Puede sufrir desnormalizaciones. Podríamos hablar ya de Base de Datos

E-RLógic

o

Físic

o

INTRODUCCIÓN y CONCEPTOS GENERALES. MODELO DE DATOS

Esto mas que un Tipo es un tipejo… Vamos a olvidarnos de él por ahora

Page 7: Fundamentos de los Gestores de Bases de Datos

7

Es la implementación física de un Modelo de DatosAsimismo podríamos decir que un Modelo de Datos es la representación teórica de una Base de Datos

Una BD Relacional se compone principalmente de Estructuras

Almacenan y representan los datos y sus asociaciones. Las básicas son las siguientes: Tablas: Implementan las Entidades. Almacenan datos. Compuestas de:

Columnas: Implementan los atributos. Filas: Implementan las tuplas

Índices: Primarios: Tienen la misión de asegurar el cumplimiento de una Clave Primaria De Clave Foránea: Implementa una Clave Foránea Índices «a secas»: Aceleran el acceso a los datos cuando se realiza una búsqueda

filtrada por unas determinadas columnas

OperacionesAcciones que permiten acceder y manipular los datos

Restricciones (Constraints): Implementación de alguna de las restricciones que vamos a ver mas adelante

INTRODUCCIÓN y CONCEPTOS GENERALES. BASE DE DATOS

Page 8: Fundamentos de los Gestores de Bases de Datos

8

Deben cumplir las siguientes restricciones de Integridad .

Restricciones del modelo / BD Redundancia

No existe redundancia (no hay datos duplicados en la BD)

Restricciones de la Entidad / Tabla Integridad de la entidad

Toda entidad tiene una clave primaria que no puede contener valores nulos, e identifica de forma unívoca a cada fila

Restricciones de los Atributos / Columnas Del Dominio

Cada columna admite solo un tipo de datos definido (dominio)

CARACTERISTICAS DE LAS BBDD y MODELOS DE DATOS RELACIONALESINTRODUCCIÓN y CONCEPTOS GENERALES.

Page 9: Fundamentos de los Gestores de Bases de Datos

9

Pueden cumplir las siguientes restricciones de Integridad .

Restricciones de los Atributos / Columnas

UnicidadNo se admiten valores duplicados (En columnas que no son PK)

Requerimiento de datos :La columna admite o no admite valores nulos (vacíos)

Referencial o de Clave foráneaReferencias cruzadas desde una tabla (Hijo) hacia otra tabla (Padre). No existe un dato hijo que referencie a otro dato padre si este dato padre no existe

Check:No se admiten los valores que no satisfagan ciertos valores en base a una expresión

Consistencia de DatosCuando una BBDD cumple estas características se dice que está en un estado consistente

CARACTERISTICAS DE LAS BBDD y MODELOS DE DATOS RELACIONALESINTRODUCCIÓN y CONCEPTOS GENERALES.

Page 10: Fundamentos de los Gestores de Bases de Datos

10

SISTEMAS GESTORES DE BASES DE DATOS (RELACIONALES)

Un SGDB Es una aplicación (software) capaz de gestionar una BDUn SGDBR Es una aplicación (software) capaz de gestionar una BD relacional

Su misión es almacenar y gestionar de forma unificada y segura los datos que se deban usar en un sistema de información

CARACTERISTICAS DE LOS SGBDRImplementan todas las características que debe tener una BBDD relacional:

Son los encargados de la persistencia de los DatosProporcionan Estructuras para almacenar los datos

Aseguran que se cumplen las restricciones de integridad

Proporcionan lenguajes para el acceso a los datos Definición de los datos: Data Definition Languaje (DDL) Manejo de los datos: Data Manipulation Languale (DML) Consulta y modificación de los datos: Structured Query Languaje (SQL)

Es parte del DML

INTRODUCCIÓN y CONCEPTOS GENERALES

Page 11: Fundamentos de los Gestores de Bases de Datos

11

OTRAS CARACTERÍSTICAS DE LOS SGBD

Proporcionan interfaces para la gestión del sistemaProporcionar seguridad de acceso a los datos. A nivel de:

Usuario:Que usuario accede a los datos y a que datos accede: Actualmente también lo hacen a nivel de Perfil y Rol

Datos: Que acciones puede realizar sobre los datos. Permisos de: Lectura (Consulta) Escritura (Actualización y Borrado) Creación o Modificación de la definición de los datos (Tablas, índices)

Granularidad: Unidad de información sobre la que se otorga o deniega el permiso: Cada vez es mayor: Tabla, Fila, Columna, Dato individual…

Encriptación de los datos

Asegurar una correcta Explotación de la BD. Almacenamiento eficiente. Compartimiento de Datos. Control de concurrencia. Seguridad y Recuperación ante errores y catástrofes. Persistencia de los Datos

INTRODUCCIÓN y CONCEPTOS GENERALES

Page 12: Fundamentos de los Gestores de Bases de Datos

12

ROLES INVOLUCRADOS EN UN SGBDR

Usuarios Analista orgánico de BBDD (Diseño Modelos de Datos) Arquitecto o Ingeniero de BBDD

• Diseño de la implementación a realizar• Disponibilidad, Cluster, Replicación, etc.

Administrador de la Base de Datos Instalación y actualizaciones del Gestor BBDD Gestión de autorizaciones (usuarios, roles, permisos) Gestión del almacenamiento en disco

Espacios de tablas e índices Discos de «Rehacer» (Redo-logs)

Gestión de las políticas de seguridad y recuperación Copias de Seguridad Replicaciones de la BD

Optimización de rendimiento Personal de soporte a la explotación del sistema

Supervisión, mantenimiento de disco, copias de seguridad… Técnico de Soporte Operadores de la BD

¿Aceptamos Excel como BD

de compañía?

Page 13: Fundamentos de los Gestores de Bases de Datos

13

INDICE INSTANCIA DE LA BASE DE DATOS

VISIÓN GENERAL ESTRUCTURAS DE MEMORIA ESTRUCTURAS DE DATOS OBJETOS DE LA BASE DE DATOS

Page 14: Fundamentos de los Gestores de Bases de Datos

14

SISTEMAS GESTORES DE BASES DE DATOS

INSTANCIA DE BBDD

Visión General

¡Como mola colega!

MEMORIA

FICHEROSDATOS

DATA

BUFFER

APP

MEM

REDO

BUFER

ARCHIVOS

APP

MEM

FICHEROSREDO Y UNDO

BASE DE DATOS

GESTOR DE BBDD

Page 15: Fundamentos de los Gestores de Bases de Datos

15

15

SISTEMAS GESTORES DE BASES DE DATOS

INSTANCIA DE BBDDVisión General

MEMORIA

FICHEROS

DATOS

DATA

BUFFER

APP

MEM

REDO

BUFER

FICHEROSCONTROL

APP

MEM

FICHEROSREDO Y UNDO

Oracle:1 Gestor =

1 Instancia =1 BD =

Varios Esquemas

DB2:1 Gestor =

1 Instancia =Varias BBDD =

Varios Esquemas por BD

MEMORIA

DATA

BUFFER

APP

MEM

REDO

BUFER

FICHEROSCONTROL

APP

MEM

FICHEROS

DATOS FICHEROSREDO Y UNDO

FICHEROS

DATOS FICHEROSREDO Y UNDO

Page 16: Fundamentos de los Gestores de Bases de Datos

16

Existen varias estructuras de memoria. Algunas son compartidas por los distintos procesos que dan servicio a las consultas y otras son privadas.Se debe dar suficiente memoria al gestor para obtener un buen rendimiento, pero teniendo en cuenta que no saturemos el servidor para otras aplicaciones, y no consumamos memoria virtual, ya que esto provocaría paginación.Cada día los SGBD nos permite tener una gestión de memoria más automática

MEMORIA GLOBAL(Oracle: SGA, DB2: Instance Shared Memory, Database Shared Memory)

Se utiliza para almacenar la información que comparten los procesos de la BD.Contiene información de datos y de control para el servidor . Se debe asignar en la memoria física del equipo donde reside el gestor.

SISTEMAS GESTORES DE BASES DE DATOS

INSTANCIA DE BBDD. Estructuras de Memoria

Page 17: Fundamentos de los Gestores de Bases de Datos

17

MEMORIA GLOBAL (continuación)

Está formada a su vez por diversas estructuras de memoria:

Buffer/es de Datos(Oracle: Buffer Cache DB2: Buffer Pool)

Almacenan los datos que van necesitando los clientes (al lanzar sentencias SQL). Si un dato es necesitado y no está en este área se leerá del disco y se copiará a esta memoria. Por tanto en ella se almacenan los últimos datos que se hayan utilizado desde la base de datos y datos a los que se accede mas frecuencia (dependiendo del algoritmo de limpieza de datos).

Hay que hacerla tan grande como sea necesario, para que al menos haya un 90% de ratio de acierto (Es decir que un 90% de los datos necesitados estén cargados en esta memoria)

Memoria para Redo y Undo(Oracle: Redo Buffer, DB2: Log Buffer)

Es un área de memoria “circular”. Almacena todos los cambios que se producen en los datos con objeto de poder deshacerlos o almacenarlos en disco mas tarde de forma asíncrona¿Qué operaciones modifican datos?

SISTEMAS GESTORES DE BASES DE DATOS

INSTANCIA DE BBDD. Estructuras de Memoria

Page 18: Fundamentos de los Gestores de Bases de Datos

18

18

MEMORIA GLOBAL (Continuación)

Memoria/s compartida/s para Ejecución de consultas(Oracle: Shared Pool Cache DB2: Packcage Cache)

Se compone de varias áreas de memoria y contiene lo siguiente: - Todas las consultas SQL realizadas contra la base datos, se analizan y se almacenan

en esta área para que futuras sentencias iguales se ejecuten directamente sin necesidad de volver a analizarlas

- Diccionario de datos (Nombres de columna, tipos de datos, índices…)- Otros.

SISTEMAS GESTORES DE BASES DE DATOS

INSTANCIA DE BBDD. Estructuras de Memoria

MEMORIA DE APLICACIONES(Oracle: PGA, DB2: Agent Private Memory ,agrupadas en la App Group Shared Memory)

Contiene información y datos de los procesos que dan servicio a los clientes, es decir a las consultas SQL

Page 19: Fundamentos de los Gestores de Bases de Datos

19

FICHEROS DE INICIO (o arranque)(Oracle: Control Files , DB2: Instance and Database Configuration File)

Contienen información para el funcionamiento del gestor. Entre otra los parámetros inicio. Algunos tienen una influencia importante en el rendimiento de la base de datos y es preciso modificarlos en los sistemas de producción.Permiten:

Definir los valores por defecto de la base de datos y de la instancia. Especificar el tamaño de los distintos componentes del Memoria para optimizar el

rendimiento. Definir los distintos atributos físicos de la base de datos, tales como el tamaño de bloque

de datos Definir los limites de los recursos de la base de datos. Definir los límites del usuario o de los procesos. Especificar donde se ubican los ficheros de control de la base de datos. Especificar los archivos de control, Redo, Undo, Archivos de alertas y trazas

SISTEMAS GESTORES DE BASES DE DATOS

INSTANCIA DE BBDD. Archivos

Page 20: Fundamentos de los Gestores de Bases de Datos

20

FICHEROS DE DATOSContienen los datos e índices

FICHEROS DE REDO(Oracle: Redolog Files , DB2: Log Files)

Graban todos los cambios hechos en los datos. Si por algún tipo de fallo no se almacenan dichos cambios en los archivos de datos, pueden ser recuperados de estos archivos.

FICHEROS DE CONTROLControl de los puntos de consistencia (operaciones confirmadas o no), de los archivos de Redo, etc

FICHEROS DE LOG Y TRAZAContienen información de trazas del gestor de bases de datos, avisos o condiciones de errores excepcionales. (Para el caso de Oracle, no confundir con los RedoLog files)

SISTEMAS GESTORES DE BASES DE DATOS

INSTANCIA DE BBDD. Archivos

Page 21: Fundamentos de los Gestores de Bases de Datos

21

SISTEMAS GESTORES DE BASES DE DATOS

INSTANCIA DE BBDD. Archivos

FICHEROS DE UNDO(Oracle: Sgmentos de Rollback, Undo Tablespace , DB2: Log Files)

Permiten efectuar la restauración de las transacciones no validadas (comando Rollback) bajo ciertas circunstancias (a petición de usuario o por un fallo de la transacción…). También se utilizan para mantener y asegurar la consistencia en lectura: Cuando una aplicación realiza un cambio sin confirmar, el resto de aplicaciones sigue “viendo” la información antigua.Se utilizan durante la recuperación después de fallos del proceso, CPU o disco, junto a los redo-log.

Mientras que en BD2 gestiona el Undo y Redo con el mismo mecanismo (Log files) Oracle lo gestiona con mecanismos distintos. Para el Undo se puede hacer de forma manual (Rollback Segments) o automática (Undo Tablespace)

Page 22: Fundamentos de los Gestores de Bases de Datos

22

SISTEMAS GESTORES DE BASES DE DATOS

ESTRUCTURAS DE DATOS. Espacios de Tablas

Espacios de tablas (tablespace):Son unidades lógicas de almacenamiento que en su conjunto almacenan todos los datos de la base de datos.

Archivos de datos (datafiles):Cada tablespace consiste en una o más archivos llamados archivos de datos (datafiles) que son estructuras físicasdonde se almacenan los datos, y son manejadas por el sistema operativo donde reside el gestor, o por un software de gestión de disco específico.

Page 23: Fundamentos de los Gestores de Bases de Datos

23

Cada base de datos está dividida a nivel lógico de uno o más tablespaces.

A cada tablespace se pueden asignar uno o más ficheros de datos, que pueden pertenecer a unidades de disco distintas.

Un fichero de datos solo puede pertenecer un tablespace.

Un objeto (tabla, índice…) siempre está definido dentro de un solo espacio de datos, pero internamente puede estar expandido en varios archivos de datos..

SISTEMAS GESTORES DE BASES DE DATOS

ESTRUCTURAS DE DATOS. Espacios de Tablas

Page 24: Fundamentos de los Gestores de Bases de Datos

24

SISTEMAS GESTORES DE BASES DE DATOS

ESTRUCTURAS DE DATOS. Espacios de Tablas

TIPOS DE ESPACIO DE TABLASSegún la utilidad que tengan encontramos de varios tipos de espacios de tablas:

1. Espacios de tablas del SistemaEn él se almacena la información propia de la base de datos y de los objetos que contiene, es decir el Diccionario de datos. Todos los objetos que se crean en este espacio de tablas pertenecen al usuario administrador por defecto de la base de datos. Se podrían crear objetos de otros usuarios en este espacio de tablas pero está totalmente desaconsejado.

2. Espacios de tablas de datos:Almacenan datos o índices. SI dedicamos un espacio de tablas exclusivamente al almacenamiento de índices, éste se denomina «Espacio de tablas de índices (Index Tablespace)», pero no tiene ninguna diferencia funcional con un «espacio de tablas de datos (Data Tablespace».

Page 25: Fundamentos de los Gestores de Bases de Datos

25

SISTEMAS GESTORES DE BASES DE DATOS

ESTRUCTURAS DE DATOS. Espacios de Tablas

TIPOS DE ESPACIO DE TABLAS (Continuación)

3. Espacios de tablas de Undo (Sólo Oracle):Almacenar información de las transacciones. Concretamente almacenan la información de “deshacer” (undo) que es la necesaria para deshacer las transacciones en caso de rollback.

4. Espacios de tablas temporales:Para ubicar objetos temporales en la base de datos, por ejemplo al realizar ordenaciones de registros para las consultas .Solo se permiten crear objetos temporales en este tipo de espacios de objetos y solo existen mientras esté levantada la base de datos

Page 26: Fundamentos de los Gestores de Bases de Datos

26

SISTEMAS GESTORES DE BASES DE DATOS

ESTRUCTURAS DE DATOS. Espacios de Tablas

ESTRUCTURAS FÍSICASLos espacios de tablas se subdividen en:

Bloque (Block):Es la menor división de almacenamiento que puede gestionar el SGBD. Un bloque define un número específico de bytes contiguos almacenados en un disco. Los bloques a veces también reciben el nombre de páginas.

Extensión (Extent) :Corresponde a un número específico de bloques continuos, Oracle gestionará y las asignará a cada objeto. El SGDB gestiona Extensiones, no Bloques

Segmento (Segment):Corresponde a un conjunto de extensiones reservados para almacenar una cierta estructura lógica (o sea un cierto objeto). Podemos decir que es la correspondencia física al concepto lógico de objeto.

Container (DB2) / Datafile (Oracle):Archivos reales (visible por el sistema operativo) que conforman los espacios de tablas

La gestión del espacio en los espacios de tablas (ampliación) puede hacerse de forma manual o automática

Solo para frikies

Page 27: Fundamentos de los Gestores de Bases de Datos

27

Tipo Datos DescripciónCHAR (tamaño) Cadena de caracteres de longitud fija.VARCHAR (tamaño)

Cadena de caracteres de longitud variable.

INTEGER EnteroNUMBER / REAL (n,d)

Numero real de tamaño ‘n’ conteniendo ‘d’ decimales.

TIME Hora

DATE FechaTIMESTAMP Fecha-horaCLOB Objeto grande tipo carácter conteniendo caracteres de byte simple (para

almacenar grandes textos).BLOB Objeto grande binario, contiene información en binario (Para almacenar

multimedia).XML Da soporte a datos en formato XML (permite búsquedas por tags, etc.)

Se puede almacenar como binarioOBJECT / STRUCTURE

Da soporte a un objeto (Registro, estructura) a partir de tipos básicos

SISTEMAS GESTORES DE BASES DE DATOS

OBJETOS DE LA BD. Tablas

TIPOS DE DATOS BÁSICOS

Es el objeto que almacena los datos de negocio

Page 28: Fundamentos de los Gestores de Bases de Datos

28

SISTEMAS GESTORES DE BASES DE DATOS

OBJETOS DE LA BD. Índices

Un índice es una estructura opcional asociada con tablas. Se crea explícitamente mediante una sentencia SQL sobre la tabla.

Su finalidad es una de las siguientes- Mejorar el acceso a los datos. Mejoran el rendimiento en consultas (SELECT) y pueden ralentizar en actualizaciones (UPDATE y DELETE), pues hay que mantener el índice actualizado al mismo tiempo (El mantenimiento de los índices lo realiza automáticamente el gestor)- Dar soporte a las restricciones de integridad referencial de Clave única y Clave Primaria , que generan de forma implícita la creación de un índice.

Es conveniente que los índices residan en espacios de tablas distintos a los de datos, ya que ayuda a mejorar el rendimiento de acceso al disminuir el riesgo de contención en disco.

Los índices pueden ser sencillos o compuestos (concatenados) de hasta 32 columnas

Los índices más básicos se implementan mediante árbol-B (B-Tree) balanceados.

Page 29: Fundamentos de los Gestores de Bases de Datos

29

SISTEMAS GESTORES DE BASES DE DATOS

OBJETOS DE LA BD. ÍndicesEjemplo de índice B-Tree balanceado

13

13

13

23

23

23

¡Yo se utilizarmuy bien el dedo

índice !

Page 30: Fundamentos de los Gestores de Bases de Datos

30

INDICE GESTIÓN DE REDO Y UNDO

REDO (REHACER) UNDO (DESHACER)

Page 31: Fundamentos de los Gestores de Bases de Datos

31

SISTEMAS GESTORES DE BASES DE DATOS

GESTIÓN DE REDO Y UNDO.

Cada vez que se realiza una modificación en los datos o en la estructura de una base de datos, es decir, se hace una operación de INSERT, UPDATE, DELETE, CREATE, ALTER o DROP el SGBDR guarda dos tipos de información:

Redo:Es la información que se guarda para poder rehacer (“repetir”) una transacción en el caso de que ocurra un fallo. Dicha información se guarda en los “Archivos de redo log”.

Undo o Rollback:Es la información que se guarda para para poder deshacer (hacer rollback) a una transacción antes de que se produzca su confirmación (commit). Tanto en el caso de que la aplicación necesite deshacer los cambios como de que la sentencia SQL o la sesión fallen por alguna razón se tiene la información original guardada para porerla restaurar.

Page 32: Fundamentos de los Gestores de Bases de Datos

32

SISTEMAS GESTORES DE BASES DE DATOS

GESTIÓN DE REDO Y UNDO. Redo (Rehacer)

Los Redo Log files (Oracle) o Log files (DB2) son la estructura crucial para la recuperación de la base de datos.

En el caso típico de una caída de alimentación no se pueden almacenar los cambios realizados en memoria hacia los archivos de datos, y la BD queda inconsistente. Al iniciarse la base de datos el gestor primero lee los archivos de datos y luego completa la información con los registros hechos en los ficheros redo log. Este proceso se llama rolling forward.

Estos archivos consisten en dos o más ficheros que almacenan toda la secuencia de cambios en la base de datos conforme fueron ocurriendo.

También permiten lo siguiente: Tras restaurar la base de datos desde una copia de seguridad, llevarla hasta el estado (punto de recuperación) que queramos.

Page 33: Fundamentos de los Gestores de Bases de Datos

33

SISTEMAS GESTORES DE BASES DE DATOS

GESTIÓN DE REDO Y UNDO. Redo (Rehacer)

Los Redo Log files (Oracle) o Log files (DB2) son la estructura crucial para la recuperación de la base de datos.

En el caso típico de una caída de alimentación no se pueden almacenar los cambios realizados en memoria hacia los archivos de datos, y la BD queda inconsistente. Al iniciarse la base de datos el gestor primero lee los archivos de datos y luego completa la información con los registros hechos en los ficheros redo log. Este proceso se llama rolling forward.

Estos archivos consisten en dos o más ficheros que almacenan toda la secuencia de cambios en la base de datos conforme fueron ocurriendo.

También permiten lo siguiente: Tras restaurar la base de datos desde una copia de seguridad, llevarla hasta el estado (punto de recuperación) que queramos.

Modo de archivado (archivelog): Redo log online y offline. En una base de datos encontramos dos tipos de Redo log: online y opcionalmente offline. Más que dos tipos distintos de fichero son dos estados por los que los ficheros pasan.

Page 34: Fundamentos de los Gestores de Bases de Datos

34

SISTEMAS GESTORES DE BASES DE DATOS

GESTIÓN DE REDO Y UNDO. Redo (Rehacer)

Modo no archivelog: Redo log online Guardan los cambios realizados en la base de datos, tanto los confirmados (commited) como sin confirmar (uncommited).

Estos cambios no se graban en los ficheros redo directamente, sino en los buffers de la memoria. Luego un proceso asíncrono graba la información en los archivos redo log de forma secuencial. Con este proceso se consigue una mayor rapidez. cuando se realiza una confirmación (commit) de alguna transacción si se graba la información de forma síncrona.Los archivos redo se utilizan de manera cíclica: se van rellenado todos, y cuando el

últimos esta lleno se comienza de nuevo con el primero. En ese momento se le asigna un número de secuencia, para identificar los datos contenidos en él.

Una base de datos en modo archivelog nos proporciona protección frente a fallos de instancia: Se por algún motivo se cae la instancia, el gestor es capaz de volver a llevarla a un estado consistente.

Page 35: Fundamentos de los Gestores de Bases de Datos

35

SISTEMAS GESTORES DE BASES DE DATOS

GESTIÓN DE REDO Y UNDO. Redo (Rehacer)

Redo log online

FICHERO

S

DATOS

Page 36: Fundamentos de los Gestores de Bases de Datos

36

SISTEMAS GESTORES DE BASES DE DATOS

GESTIÓN DE REDO Y UNDO. Redo (Rehacer)

Modo archivelog: Redo log offline

En modo archivelog proporciona mejor protección frente a fallos de disco (siempre que exista un backupprevio de la base de datos).

Los ficheros redo log que se han llenado de información pueden ser guardados opcionalmente, antes de ser rehusados. En ese momento se crea un redo log archivado (archived).

Page 37: Fundamentos de los Gestores de Bases de Datos

37

SISTEMAS GESTORES DE BASES DE DATOS

GESTIÓN DE REDO Y UNDO. Redo (Rehacer)

Modo archivelog vs. No archivelog

Gestión:La gestión en modo archivelog es mas compleja (Espacio de disco, etc)

Recuperación:Noarchivelog permite recuperar la BD hasta el estado en que se quedó tras el último backup. Archivelog permite recuperar hasta el punto en el tiempo que deseemos (Siempre que tengamos alamacenados los logs archivados)

Protección:El modo Archive log ofrece mejor protección frente a fallos de disco:- Noarchivelog permite recuperar solo hasta el último backup.- Archivelog permite recuperar hasta el último archivo log de que dispongamos.

Backup online / offline:Para realizar backups online (mientras la BD está activa) es necesario tener activado el modo archivelog.

¿Cuándo utilizar cada modo?

Page 38: Fundamentos de los Gestores de Bases de Datos

38

INDICE ESTRATEGIAS BÁSICAS FRENTE A PÉRDIDA DE DATOS

DUPLICIDAD REINICIO DE LA BD (RESTART) COPIA DE SEGURIDAD Y RECUPERACIÓN DE LA BD (BACKUP & RESTORE)

Page 39: Fundamentos de los Gestores de Bases de Datos

39

SISTEMAS GESTORES DE BASES DE DATOS

ESTRATEGIAS FRENTE A PERDIDA DE DATOS.

Cada BD debe contar con una estrategia de recuperación: Opciones de copia y recuperación que se han escogido Planificación de las copias de seguridad (Frecuencia y horario) Monitorización de control: Verificación de los procesos de copia, etc

Estará basada en: Hasta que punto en el tiempo queremos recuperar:

Podrá ser hasta el último backup o hasta el momento del error Tiempo de recuperación de la BD deseado

Situaciones que pueden producir pérdida de datos: Borrado o Modificación errónea de los datos

Fallos de usuario Caída de la instancia:

Por caída del sistema, muerte del proceso de SGDB ,etc Corrupción de datos Error de disco

Page 40: Fundamentos de los Gestores de Bases de Datos

40

SISTEMAS GESTORES DE BASES DE DATOS

ESTRATEGIAS FRENTE A PERDIDA DE DATOS.

Redundancia

FICHEROS

DATOSFICHEROS

REDO Y UNDO

MEMORIA

DATA

BUFFER

APP

MEM

REDO

BUFER

FICHEROSCONTROL

APP

MEM

MEMORIA

DATA

BUFFER

APP

MEM

REDO

BUFER

FICHEROSCONTROL

APP

MEM

MEMORIA

DATA

BUFFER

APP

MEM

REDO

BUFER

FICHEROSCONTROL

APP

MEM

Redundancia de discos de datos y redolog

(múltiples copias, Sistemas Raid, discos espejo)

Redundancia de Procesos y/o servidores (Cluster)

Page 41: Fundamentos de los Gestores de Bases de Datos

41

SISTEMAS GESTORES DE BASES DE DATOS

ESTRATEGIAS FRENTE A PERDIDA DE DATOS. Reinicio

TIEMPO

REDOLOGONLINE

TIEMPO

BACKUP

Reinicio de la BD (Restart o crash-recovery):La BD se reinicia y utiliza los redolog online para alcanzan un estado consistente.

Restauración de la copia de seguridad (Restore):Restauramos lacopia de seguridad y en caso de tener la BD en modo archive log recuperamos la BD hasta el punto en el tiempo deseado.

Copia de seguridad (Backup) y Recuperación (Restore)

Page 42: Fundamentos de los Gestores de Bases de Datos

42

SISTEMAS GESTORES DE BASES DE DATOS

ESTRATEGIAS FRENTE A PERDIDA DE DATOS.

Copia de seguridad (Backup) y Recuperación (Restore)

«Disaster Recovery»: Restauración de la copia de seguridad (Restore) y recuperación de la BD hasta un punto en el tiempo.Restauramos la copia de seguridad y en caso de tener la BD en modo archive log recuperamos la BD aplicando los redologs hasta el punto en el tiempo deseado.

TIEMPO

BACKUPREDOLOGOFFLINE

REDOLOGONLINE

Page 43: Fundamentos de los Gestores de Bases de Datos

43

INDICETEMAS AVANZADOS

IMPLEMENTACIONES EN CLUSTER ORACLE DATA GUARD e IBM HADR ORACLE RAC DB2 EXTENDED ENTERPRISE EDITION DB2 PURESCALE)

Page 44: Fundamentos de los Gestores de Bases de Datos

44

SISTEMAS GESTORES DE BASES DE DATOS

IMPLEMENTACIONES EN CLUSTER: Escalabilidad y

DisponibilidadLas necesidades de Alta Disponibilidad, escalabilidad, tiempos de recuperación del sistema y disponibilidad de datos han hecho que se requiera de mecanismos mas eficientes que los «tradicionales» de Copia de Seguridad + Restauración o de Replicación.

Llamamos standalone o single-instance a una implementación del gestor con un solo servidor físico.

La implementación en cluster consiste en varios servidores físicos (nodos) que dan servicio a una sola Base de datos.

Los sistemas en cluster pueden disponerse en diferentes modos según estén parte de los nodos Activos u «Online» o «en producción»:

Recibiendo peticiones de clientes y dando servicio o

Pasivos o «standby» Sin recibir peticiones o recibiendo peticiones pero sin realizar modificaciones en los datos

Page 45: Fundamentos de los Gestores de Bases de Datos

45

SISTEMAS GESTORES DE BASES DE DATOS

IMPLEMENTACIONES EN CLUSTER: Escalabilidad y

DisponibilidadConfiguraciones básicas de cluster

Activo / PasivoEs una solución orientada a la disponibilidadUnos servidores permanecen activos mientras que otros permanece inactivos.La BD se modifica en el servidor activo y se va replicando en modo asíncrono en el servidor pasivoEn caso de caída del el servidor pasivo se inicia para dar servicio. Esto conlleva una pérdida de servicio durante un determinado periodo de tiempo.La BD o instancia en estado pasivo es llamada «en espera» o «standby»

Activo / ActivoEs una solución orientada tanto a la escalabilidad como a la disponibilidadTodos los servidores permanecen dando servicio simultáneamente. Si algún servidor se cae o necesita labores de mantenimiento, el resto de servidores sigue dando servicio

Page 46: Fundamentos de los Gestores de Bases de Datos

46

SISTEMAS GESTORES DE BASES DE DATOS

IMPLEMENTACIONES ACTIVO/PASIVO: Data Guard y HADR

La solución que presenta Oracle para una implementación Activo / Pasivo se llama Oracle Data Guard y la de IBM es DB2 HADR

Esta configuración asegura la alta disponibilidad y recuperación de desastres

• Consiste en una BD activa y una o mas BBDD en estado pasivo.• Las BBDD standby se mantienen estas como copias transaccionalmente

consistentes de la base de datos de producción.• Si la base de datos de producción no está disponible debido una

interrupción planificada o no , se puede cambiar a cualquier base de datos en espera para el papel de producción

• Esta implementación conlleva un determinado tiempo de recuperación de la BD, si bien es verdad que es minimizando el tiempo de inactividad en comparación a una instalación standalone pura.

• La replicación se consigue mediante la aplicación de los redologs desde la BD activa a la pasiva. De esta forma no se interfiere en el normal funcionamiento de la BD activa (No se hacen conexiones a la BD ni se accede a su almacenamiento de datos)

• Existe una función reducida de Data Guard llamada «Oracle Streams»; que viene de fábrica con Oracle Database.

REDOLOG

Page 47: Fundamentos de los Gestores de Bases de Datos

47

Existen dos configuraciones posibles en Data Guard:

Base de datos standby física Proporciona una copia físicamente idéntica de la base de datos primaria Se mantiene sincronizada con la base de datos principal, mediante Redo Apply: Rercupera la

información de de los Redologs de la BD primaria y los aplica en la en la/s BBDD stadndby. Ventaja: Se puede acceder para lectura o modificación (limitada en el tiempo) de datos a la BD de

standby

Base de datos standby lógica Contiene la misma información lógica que la base de datos de producción (activa) aunque la

organización física y la estructura de los datos puede ser diferente. Se mantiene sincronizada con la base de datos principal mediante SQL Apply: Transforma los datos de la redo recibidos de la base de datos principal en sentencias SQL y luego las ejecuta en la base de datos standby.

La ventaja es que se puede acceder en modo consulta a la BD standby lógica, por ejemplo para sentencias OLAP, mientras que en la principal se accede para sentencias OLTP

OLAP (On-Line Analytical Processing): BD de consultas analíticas (Consultas complejas y datos con poca actualización) OLTP: (On-Line Transaction Processing): DB de consultas transaccionales (Gran número de consultas simples concurrentes con alta modificación de datos)

SISTEMAS GESTORES DE BASES DE DATOS

IMPLEMENTACIONES ACTIVO/PASIVO: Oracle Data Guard

Page 48: Fundamentos de los Gestores de Bases de Datos

48

48

SISTEMAS GESTORES DE BASES DE DATOS

IMPLEMENTACIONES ACTIVO/ACTIVO: Oracle RAC

Oracle RAC (Real Application Clusters) es la solución que presenta Oracle Database para la escalabilidad y alta disponibilidad, mediante una implementaciónde cluster Activo / Activo «Shared Everything» La estructura básica de RAC consiste en

dos o mas nodos dando servicio a una sola BD:

• Los nodos comparten memoria y almacenamiento («SharedEverything»)

• Varios clientes se conectan a la misma BD.

• La carga se balancea entre los servidores.

• Cada servidor tiene los procesos propios de una instancia

• Entre los servidores existe una red privada de baja latencia (Recomendado Gigabit)

• El cluster es manejado por una capa de Oracle llamada CRS

• El almacenamiento es gestionado por una capa de Oracle llamada ASM

-

Clientes

Balanceode carga

Nodos (Instancias)en cluster (CRS)

Almacenamiento(ASM)

Bas

e d

e D

ato

s

Red Pública

Red Privada

Page 49: Fundamentos de los Gestores de Bases de Datos

SISTEMAS GESTORES DE BASES DE DATOS

IMPLEMENTACIONES ACTIVO/ACTIVO: Oracle RAC

Del RAC se evolucionó al concepto GRID, donde una granja de servidores puede dar servicio a varias BBDD, pudiendo balancear la carga entre unas y otras a demanda

Var

ias

Bas

es d

e D

ato

s

-

Red Privada

Balanceo de Carga

Nodos (Instancias)

Almacenamiento(ASM)

Conexiones

Page 50: Fundamentos de los Gestores de Bases de Datos

50

SISTEMAS GESTORES DE BASES DE DATOS

IMPLEMENTACIONES ACTIVO/ACTIVO: DB2 PureScale

DB2 Purescale es la solución que presenta IBM DB2 para la escalabilidad y alta disponibilidad, mediante una implementación de cluster Activo / Activo «Shared Everything»

Es muy similar al RAC de ORACLE, solo que un nodo extra (duplicado por seguridad) controla el cluster.

Su aparición en el mercado fue muy posterior a Oracle RAC

-

Clientes

Balanceode carga

Nodos (Instancias)en cluster

Almacenamiento

Bas

e d

e D

ato

s

Red Pública

Red Privada

Nodo deControl

Page 51: Fundamentos de los Gestores de Bases de Datos

51

DATABASE

SISTEMAS GESTORES DE BASES DE DATOS

IMPLEMENTACIONES ACTIVO/ACTIVO: DB2 EEE

DB2 Extended Enterprise Edition es la solución de escalabilidadque presenta IBM DB2, mediante una implementación de cluster Activo / Activo «Shared Nothing» La estructura de DB2 EEE consiste en

dos o mas nodos dando servicio a una sola BD:• Cada nodo gestiona y almacena una

parte de la BD, de forma que la BD se distribuye entre todos los discos

• El escalado puede extenderse a dimensiones muy grandes.

Clientes

Balanceode carga

Nodos (Instancias)en cluster

Almacenamiento

Bas

e d

e D

ato

s

Red Pública

Red Privada

• Si se pierden datos de un nodo se pierde parte de la BD; por lo que hay que complementarlo con soluciones de disponibilidad (Servidor activo/pasivo en cada nodo, espejado de disco…)

Page 52: Fundamentos de los Gestores de Bases de Datos

52

INDICE TEMAS AVANZADOS

ESTRATEGIAS DE PARTICIONAMIENTO

Page 53: Fundamentos de los Gestores de Bases de Datos

53

SISTEMAS GESTORES DE BASES DE DATOS

PARTICIONAMIENTO.

El Particionamiento cosiste en en descompone tablas que almacenan grandes volúmenes de datos y sus índices en piezas más pequeñas llamadas particiones.

Características de las tablas particionadas:Una tabla particionada posee particiones , cada una de las cuales almacena las filas que cumplan ciertas propiedades . Se puede crear una tabla particionada que inicialmente tenga una sola partición.

Normalmente se particiona partiendo de que los valores de una o varias columnas cumplan ciertos requisitos. Las columna o columnas a partir de la cual se divide la tabla en particiones se llama clave de la partición

Cada partición es un objeto independiente con sus propias características de almacenamiento.Para particionar correctamente Cada partición se coloca en un ubica en un tablespace diferente que estará en una unidad de disco diferente. se pueden establecer o configurar atributos físicos distintos para cada partición

Dentro de cada partición se pueden hacer nuevas particiones, llamadas subparticiones

Page 54: Fundamentos de los Gestores de Bases de Datos

54

SISTEMAS GESTORES DE BASES DE DATOS

PARTICIONAMIENTO. Ventajas

Ventajas en el Rendimiento:

Mejora el rendimiento de la base de datos al poder el gestor acceder directamente a la partición donde reside el dato que necesita cada consultar.

Proporcionan mejor concurrencia: Al facilitar la correspondencia entre particiones y dispositivos físicos se puede equilibrar mejor la carga de E/S

Ventajas en la administración:

Permiten historificar los datos: Mover a un almacenamiento masivo y fuera del «online» los datos que no son utilizados en operaciones habituales. (Esto también mejora el rendimiento al reducir el tamaño de la tabla)

Permite copia de seguridad y recuperación de cada partición independientemente, por lo que se mejora la disponibilidad de la base de datos y facilita la gestión.

En el caso que quede dañado un tablespace. Se reduce la posibilidad de corrupciónde datos en más de una partición.

Page 55: Fundamentos de los Gestores de Bases de Datos

55

SISTEMAS GESTORES DE BASES DE DATOS

OBJETOS DE LA BD. Estrategias de ParticionamientoDistribución de los datos por defecto (Sin particionar)

DB2 (Provee stripping por defecto) ORACLE

Table1

Table2

DataFile

DataFile

DataFile

Table

1

Extent

1Table

1

Extent

2Table

1

Extent

3Table

1

Extent

4

Table

1

Extent

5Table

1

Extent

6

Table

2

Extent

1Table

2

Extent

2Table

2

Extent

3

Tablespace

Page 56: Fundamentos de los Gestores de Bases de Datos

56

SISTEMAS GESTORES DE BASES DE DATOS

PARTICIONAMIENTO. Estrategias de Particionamiento

Por Rango:Basada en rangos de valores de la clave de partición. Es el más habitual y frecuentemente usado particionar por fecha.Ejemplo: PARTICION_1: 1-Enero-2.014 →31-Enero-2.014

PARTICION_2: 1-Febrero-2.014 →29-Febrero-2.014

Por Lista:Se usan valores discretos de la clave para cada particiónEjemplo: PARTICION_1: (‘Madrid’)

PARTICION_2: (‘Barcelona’, ‘Tarragona’, ‘Lérida, ‘Gerona’)

Por Hash (Distribución uniforme)El gestor utiliza un algoritmo sobre los valores de clave de partición para distribuir de forma uniforme las filas entre todas las particionesTABLE TABLA_1 PARTICIONED BY hash (DNI)

Page 57: Fundamentos de los Gestores de Bases de Datos

57

SISTEMAS GESTORES DE BASES DE DATOS

PARTICIONAMIENTO. Estrategias de Particionamiento

¿Qué será esto del particionamiento

Hash???

Page 58: Fundamentos de los Gestores de Bases de Datos

58

SISTEMAS GESTORES DE BASES DE DATOS

PARTICIONAMIENTO. Estrategias de Particionamiento

Subparticionamiento (o particionamento compuesto):

Todas y cada una de las particiones se particiona a su vez en sub-particiones.Como norma general las particiones principales o generales se realizan con el método RANGO y Cada partición de sub-particiona en particiones con los métodos de LISTA o HASH.

Page 59: Fundamentos de los Gestores de Bases de Datos

59

INDICEPROPUESTAS DE TEMAS AVANZADOS:

USUARIOS Y ROLES OPTIMIZACIÓN DE BASES DE DATOS ENCRIPTACIÓN

Si aún no se han aburrido pueden solicitar presentaciones de temas avanzados [email protected]

¡GRACIAS POR SU ATENCIÓN!