Post on 23-Jan-2017
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
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
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
4
INDICE INTRODUCCIÓN Y CONCEPTOS GENERALES
MODELO DE DATOS BASES DE DATOS SISTEMAS GESTORES DE BASES DE DATOS (RELACIONALES)
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.
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
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
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.
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.
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
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
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?
13
INDICE INSTANCIA DE LA BASE DE DATOS
VISIÓN GENERAL ESTRUCTURAS DE MEMORIA ESTRUCTURAS DE DATOS OBJETOS DE LA BASE 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
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
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
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
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
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
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
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)
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.
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
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».
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
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
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
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.
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 !
30
INDICE GESTIÓN DE REDO Y UNDO
REDO (REHACER) UNDO (DESHACER)
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.
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.
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.
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.
35
SISTEMAS GESTORES DE BASES DE DATOS
GESTIÓN DE REDO Y UNDO. Redo (Rehacer)
Redo log online
FICHERO
S
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).
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?
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)
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
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)
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)
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
43
INDICETEMAS AVANZADOS
IMPLEMENTACIONES EN CLUSTER ORACLE DATA GUARD e IBM HADR ORACLE RAC DB2 EXTENDED ENTERPRISE EDITION DB2 PURESCALE)
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
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
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
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
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
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
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
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…)
52
INDICE TEMAS AVANZADOS
ESTRATEGIAS DE PARTICIONAMIENTO
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
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.
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
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)
57
SISTEMAS GESTORES DE BASES DE DATOS
PARTICIONAMIENTO. Estrategias de Particionamiento
¿Qué será esto del particionamiento
Hash???
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.
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 ait@manuelpicazovico.com
¡GRACIAS POR SU ATENCIÓN!