Bases de Datos III. Curso 2013/2014

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Bases de Datos III. Curso 2013/2014"

Transcripción

1 Bases de Datos III Diseño Físico - MySQL Curso 2013/2014 Miguel R. Luaces Laboratorio de Bases de Datos Universidade da Coruña

2 Contenidos 1 Introducción a MySQL 2 Replicación 3 Copia de seguridad y recuperación 4 Medición de rendimiento y perfilado Medición del rendimiento Perfilado de aplicaciones 5 Optimización Optimización de esquemas e índices Optimización de hw. y sw. Optimización del servidor

3 Introducción a MySQL Contenidos 1 Introducción a MySQL 2 Replicación 3 Copia de seguridad y recuperación 4 Medición de rendimiento y perfilado Medición del rendimiento Perfilado de aplicaciones 5 Optimización Optimización de esquemas e índices Optimización de hw. y sw. Optimización del servidor

4 Introducción a MySQL MySQL Community Server Versión actual: Documentación: Funciona sobre todas las plataformas: Mac OS X, Windows, GNU/Linux, Solaris, FreeBSD Punto diferenciador: arquitectura diferente a otros SGBDs Orientado a entornos de gran demanda (ej.: aplicaciones web) OLTP Aplicaciones incrustadas Data warehouse Indexado de contenido

5 Introducción a MySQL MariaDB An enhanced, drop-in replacement for MySQL Versión actual: Documentación: https://kb.askmonty.org/en/ Funciona sobre todas las plataformas: Mac OS X, Windows, GNU/Linux Mejoras sobre MySQL 5.5: Más motores de almacenamiento (ej.: No-SQL) Optimizaciones Extensiones (ej.: virtual columns) Completamente Open Source

6 Introducción a MySQL Arquitectura de MySQL Clientes Conexión / Control de subprocesos Caché de consultas Analizador sintáctico optimizador API del motor de almacenamiento ( Iniciar transacción, recuperar registro con clave x ) Motores de almacenamiento

7 Introducción a MySQL Arquitectura de MySQL Cada consulta es atendida por un thread del pool servidor La caché consultas almacena sentencias select junto con su resultado Si la consulta no está en caché, tras el análisis sintáctico, se realiza la optimización del plan de ejecución Reescritura de la consulta Determinación del orden de acceso a las tablas Selección de los índices a utilizar Inclusión de las características específicas de los motores de almacenamiento

8 Introducción a MySQL Arquitectura de MySQL Característica única: separación de tareas de servidor (conexiones, procesamiento de consultas, optimización) de tareas de almacenamiento y recuperación de datos Se puede elegir el motor de almacenamiento a nivel de tabla Se pueden cargar motores de almacenamiento en tiempo de ejecución Describiremos brevemente los siguientes aspectos de MySQL: Control de concurrencia Gestión de transacciones Motores de almacenamiento Criterios de selección

9 Introducción a MySQL Control de concurrencia Los bloqueos permiten evitar que un cliente lea un fragmento de datos mientras otro lo está cambiando Hay dos tipos de bloqueos: compartidos (lectura) y exclusivos (escritura) Los SGBD permiten distintas granularidades a los bloqueos (tabla, página o fila) Los bloqueos de fila minimizan la cantidad de datos por lo que aumenta la concurrencia Los bloqueos de tabla minimizan el consumo de memoria por lo que aumenta el rendimiento Cada motor de almacenamiento de MySQL define su propia poĺıtica y granularidad. El servidor no es consciente de los bloqueos.

10 Introducción a MySQL Control de concurrencia MyISAM, Memory y Merge realizan bloqueos a nivel de tabla Cada motor lo implementa a su modo con optimizaciones para mejorar el rendimiento Necesita muy poca memoria Ideal en el caso de que las lecturas sean mucho más frecuentes que las modificaciones Es eficiente en el caso de modificaciones simultáneas en varias filas InnoDB realiza bloqueos a nivel de fila Permite la máxima concurrencia a costa de mayor consumo de memoria Ideal en el caso de cambios frecuentes o transacciones largas Es muy eficiente en el caso de cancelación de transacciones El servidor de MySQL puede bloquear tablas independiente del motor para garantizar corrección de sentencias DDL como ALTER TABLE

11 Introducción a MySQL Gestión de transacciones MySQL incluye motores transaccionales (InnoDB) y no transaccionales (MyISAM, Memory) El estándar SQL define cuatro niveles de aislamiento: Read uncommited Read commited Repeatable read Serializable Las figuras de las siguientes diapositivas se extrajeron de aquí:

12 Introducción a MySQL Gestión de transacciones Read uncommited No hay bloqueos, por lo que una transacción lee datos sin confirmar de otra transacción Permite lecturas sucias porque la segunda transacción podría ser cancelada

13 Introducción a MySQL Gestión de transacciones Read commited Los bloqueos de escritura se mantienen hasta el fin de la transacción Los de lectura se liberan al finalizar la lectura Una transacción sólo lee datos de transacciones confirmadas Permite lecturas no-repetibles porque los datos podrían cambiar después de leidos

14 Introducción a MySQL Gestión de transacciones Repeatable read Todos los bloqueos se mantienen durante toda la transacción Cualquier fila que lea una transacción será igual en sucesivas lecturas Como no hay bloqueo de rangos, permite lecturas fantasma Es la predeterminada en InnoDB

15 Introducción a MySQL Gestión de transacciones Serializable Aislamiento completo de las transacciones usando bloqueos de rango. InnoDB permite el nivel de aislamiento serializable mediante Multiversion Concurrency Control (MVCC) Mantiene instantáneas de los datos tal y como existían en un determinado momento Diferentes transacciones ven simultáneamente datos distintos en las mismas tablas Evita la necesidad de bloquear filas en modo lectura

16 Introducción a MySQL Gestión de transacciones Interbloqueos (Deadlocks) El funcionamiento de los bloqueos es específico del motor de almacenamiento Los interbloqueos son inevitables ya que ocurren por conflictos reales en las transacciones Los interbloqueos producen consultas lentas o que sobrepasan tiempo máximo La solución consiste en reanudar alguna de las transacciones InnoDB detecta dependencias circulares y reanuda la transacción con los bloqueos de fila menos exclusivos

17 Introducción a MySQL Gestión de transacciones Registro de transacciones (Write-ahead logging) El almacenamiento inmediato de los cambios en los datos es lento Los cambios realizan en la copia en memoria de la página de disco El almacenamiento en disco se realiza mediante un registro de transacciones usando escritura secuencial (y por tanto, rápida) Los datos en disco se escriben cuando la página se elimina de memoria En caso de fallo del servidor, los cambios se pueden recuperar Uso de varios motores de almacenamiento en transacciones Cada motor de almacenamiento gestiona el funcionamiento de las transacciones No se pueden combinar de forma fiable motores de almacenamiento diferentes en una transacción Por ejemplo, los cambios en tablas MyISAM no se pueden deshacer con un rollback MySQL no informa del error de ninguna manera

18 Introducción a MySQL Motores de almacenamiento: MyISAM Motor predeterminado para las tablas hasta MySQL 5.1 No soporta transacciones ni claves foráneas, y sólo permite bloqueos a nivel de tabla El tamaño máximo de una tabla es 256 TB Cada tabla se almacena en un fichero del sistema operativo Variantes: Tablas con filas de tamaño fijo (estáticas) y tamaño variable (dinámicas) Tablas comprimidas y de sólo lectura El espacio usado en disco es mínimo Óptimo para soportes de sólo lectura y/o lentos Se construyen con la utilidad myisampack

19 Introducción a MySQL Motores de almacenamiento: InnoDB Motor predeterminado para las tablas desde MySQL 5.5 Soporta transacciones, claves foráneasy bloqueos a nivel de fila El tamaño máximo de una tabla es 64 TB Las tablas se almacenan en archivos de datos administrados por el motor y que pueden utilizar particiones raw Índices agrupados (clustered indexes) Se crea un índice para la clave principal de la tabla que se almacena en las mismas páginas que las filas Las búsquedas por clave principal son rápidas porque ahorran un acceso a disco Los índices secundarios (todos los demás) siempre incluyen los atributos de la clave principal para usar el índice agrupado en las búsquedas Inconvenientes: Tiene problemas de escalabilidad debido al soporte transaccional Cambios en la estructura de las tablas implican copiar todos los datos y recrear los índices

20 Introducción a MySQL Motores de almacenamiento: Memory Tablas que se guardan en la memoria del servidor y que no permiten la persistencia No soportan transacciones ni claves foráneas. Los bloqueos son a nivel de tabla El tamaño máximo de una tabla depende de la memoria del servidor Permite un acceso muy rápido a los datos (un orden de magnitud más rápido que el motor MyISAM) El espacio ocupado por una tabla sólo se devuelve al borrar o recrear la tabla Ejemplos de posibles usos: Tablas de búsqueda rápida (i.e. códigos postales) Guardar en caché datos agregados periódicamente Resultados intermedios de procesos MySQL lo usa para procesar consultas que necesitan tablas temporales

21 Introducción a MySQL Motores de almacenamiento: otros Motor Merge Combinación de varias tablas MyISAM en una única tabla virtual Permite la partición de información en diferentes bloques Posibles usos: gestión de archivos de log, superar la limitación de tamaño de archivo del SO Motor Blackhole No almacena datos. Todas las inserciones se descartan Mantiene un registro de operaciones realizadas Posibles usos: auditoría, algunas configuraciones de replicación Motor CSV Tablas creadas sobre archivos con valores separados por comas (comma-separated values) No admite índices Posibles usos: intercambio de datos con aplicaciones externas

22 Introducción a MySQL Motores de almacenamiento: selección Dado que podemos elegir el motor de almacenamiento para cada tabla, necesitamos conocer cómo se va a utilizar cada tabla, cómo funciona la aplicación, y su evolución potencial En función del uso de transacciones: Si la aplicación requiere transacciones, la única opción es InnoDB Si no requieren transacciones y las consultas son SELECT e INSERT, MyISAM es buena opción En función de la concurrencia en las operaciones: Depende de la carga de trabajo esperada Si sólo hay inserciones y lecturas: MyISAM Si queremos una mezcla de operaciones concurrentes sin interferencia, necesitamos un motor con bloqueo a nivel de fila (InnoDB)

23 Introducción a MySQL Motores de almacenamiento: selección En función de las copias de seguridad: Algunos motores (InnoDB) no permiten la copia de seguridad con el SGBD on-line Si se puede detener el servidor: cualquier motor. El uso de múltiples motores complica el proceso de copia de seguridad En función de la necesidad de operaciones especiales: Sólo InnoDB incluye índices agrupados y optimizaciones basadas en ellos InnoDB sólo permite búsquedas de texto completo desde la versión 5.6.4

24 Introducción a MySQL Motores de almacenamiento: cambios Métodos para el cambio de motor de almacenamiento de tablas Mediante la sentencia ALTER TABLE Realizando una copia de seguridad, y editando el fichero de volcado Creando una nueva tabla e insertando los datos mediante una sentencia INSERT INTO En todos los casos, las opciones específicas del motor de almacenamiento se pierden Todos los métodos son lentos pues implican la copia de los datos El método basado en ALTER TABLE implica un bloqueo de escritura en la tabla

25 Introducción a MySQL Motores de almacenamiento: ejemplos Registro de llamadas de central telefónica en tiempo real La velocidad es el requisito principal. MyISAM impone una sobrecarga baja y permite miles de inserciones por segundo Si son necesarios informes de resumen, la recopilación de datos ralentiza las inserciones Alternativas: Realizar la recopilación en horas de poca carga Replicar la base de datos en un segundo servidor esclavo en el que se harán las consultas Particionar el registro de llamadas por mes, semana o día, y crear una tabla de tipo Merge para las consultas Servicio de cotizaciones Si es una herramienta de consumo interno con un número limitado de usuarios, MyISAM Si es un servicio web con mucho tráfico, miles de usuarios y alimentación de cotizaciones en tiempo real, InnoDB Una consulta no debe esperar Miles de usuarios intentando leer mientras simultáneamente se actualizan filas requiere bloqueos a nivel de fila

26 Introducción a MySQL Motores de almacenamiento: ejemplos Boletines de anuncios y foros de discusión Cientos de aplicaciones PHP y Perl que dan soporte a este tipo de sitios Web No suelen tener en cuenta la eficiencia de la BD Ejecutan muchas consultas para cada solicitud que sirven Muchos usan tablas monoĺıticas con mucha actividad pesada de lectura y escritura La carga suele ser mediana o pequeña, MyISAM no es imprescindible InnoDB no es capa de ejecutar rápidamente esta consulta sin optimizaciones por parte del usuario SELECT COUNT(*) FROM TABLE Aplicaciones distribuidas en DVD / USB El motor MyISAM trabaja directamente sobre el sistema de ficheros Utilizando el formato comprimido se optimiza el acceso a disco, aunque la BD es de sólo lectura

27 Replicación Contenidos 1 Introducción a MySQL 2 Replicación 3 Copia de seguridad y recuperación 4 Medición de rendimiento y perfilado Medición del rendimiento Perfilado de aplicaciones 5 Optimización Optimización de esquemas e índices Optimización de hw. y sw. Optimización del servidor

28 Replicación Definición de replicación Consiste en configurar uno o varios servidores como esclavos - o réplicas - de otro servidor Problema a resolver: mantener los datos de los servidores sincronizados Base para construir aplicaciones extensas y de alto rendimiento Admite diferentes topologías Muchos esclavos pueden conectarse a un maestro Un esclavo puede, a su vez, actuar como maestro Se puede replicar: todo el servidor determinadas bases de datos sólo algunas tablas

29 Replicación Problemas resueltos por la replicación Distribución de datos No exige un ancho de banda intensivo y funciona con una conexión intermitente Útil para mantener una copia de los datos en una ubicación geográficamente distante Balanceo de carga Permite distribuir peticiones de datos entre varios servidores Alta disponibilidad y failover Los esclavos ayudan a reducir el tiempo de caída del servidor principal Prueba de actualizaciones de MySQL Configuramos un servidor esclavo con la nueva versión de MySQL, y la utilizamos para ver que las aplicaciones siguen funcionando Copias de seguridad La carga de la copia se realiza sobre el esclavo, no sobre el servidor original Un servidor replicado no es una copia de seguridad

30 Replicación Funcionamiento de la replicación El maestro registra todos sus cambios como eventos del registro binario (binary log) El esclavo copia los eventos del registro binario a su registro de repetición (relay log) El esclavo repite todos los eventos del registro de repetición sobre sus propios datos

31 Replicación Funcionamiento de la replicación El registro binario de mysql: Registra todas las operaciones del servidor que modifican datos (o podrían modificarlos, por ejemplo, un DELETE con filtro) con independencia de los motores de almacenamiento Está formado por una secuencia de eventos, cada de uno de ellos formado por: La fecha y hora del evento (un timestamp) Identificador del servidor de origen (evita bucles infinitos) Byte de desplazamiento del evento siguiente Id del thread que ejecutó el evento en el servidor de origen Tipo de evento (por ejemplo, Query) Detalles del evento

32 Replicación Funcionamiento de la replicación El registro binario de mysql permite tres tipos de replicación: Basada en sentencias (statement-based replication) Se registra la instrucción que cambia los datos en el maestro La utilizada por defecto. Sencilla de implementar y compacta. Estable desde MySQL 3.23 Hay instrucciones que no se pueden replicar (detalles en el manual) Basada en filas (row-based replication) Se registran las filas cambiadas y el cambio realizado Permite la replicación de cualquier instrucción El registro aumenta de tamaño No es fácil auditar los cambios realizados Mixta (mixed-format replication) MySQL decide en función de la instrucción que se ejecuta si se usa replicación basada en sentencias o en filas Se usa la replicación basada en sentencias a no ser que la instrucción no sea segura Ver la descripción en el manual

33 Replicación Funcionamiento de la replicación El proceso para configurar la replicación es el siguiente: Configurar cuentas de replicación en cada servidor El thread E/S del esclavo hace una conexión TCP/IP al maestro para leer el registro binario. Por lo tanto, necesita una cuenta de usuario en el maestro con los permisos apropiados Configurar maestro Activar el registro binario y asignarle un id al servidor Configurar esclavo Asignarle un id al servidor y activar el registro de repetición Inidicar al esclavo como conectarse al maestro y desde qué punto del registro binario hay que replicar Opcionalmente, activar el registro binario y configurar su actualización

34 Replicación Funcionamiento de la replicación Es posible replicar sólo parte de los eventos de un servidor, utilizando diferentes tipos de filtros Filtros sobre el registro binario del maestro Filtros sobre el registro de repetición

35 Replicación Topologías de replicación Las restricciones en la replicación son las siguientes: Cada esclavo sólo puede tener un maestro Un maestro puede tener muchos esclavos Un esclavo puede actuar también como maestro Estas restricciones permiten diferentes topologías con diferentes aplicaciones Un maestro, múltiples esclavos Maestro-maestro en modo activo-activo Maestro-maestro en modo activo-pasivo Anillo Maestro, maestro de distribución, esclavos Árbol o pirámide

36 Replicación Topologías de replicación Un maestro, múltiples esclavos

37 Replicación Topologías de replicación Un maestro, múltiples esclavos La topología más sencilla y más común Todas las escrituras se realizan en el maestro, las lecturas se pueden realizar en cualquier servidor El número de esclavos está limitado por la capacidad de procesamiento y el ancho de banda del maestro Variantes: Usar cada esclavo para funciones diferentes (ej.: índices diferentes, motores diferentes) Tener un esclavo en un centro remoto para recuperarse de un desastre Retrasar un esclavo en el tiempo para facilitar la recuperación Utilizar un esclavo para copia de seguridad, para pruebas o para desarrollo

38 Replicación Topologías de replicación Maestro-maestro en modo activo-activo Cada maestro es a su vez esclavo del otro Cualquier servidor se puede utilizar para cualquier operación Posible uso: oficinas separadas geográficamente, donde cada oficina necesita su copia local de los datos Problemas: cambios conflictivos Actualización simultánea de la misma fila en ambos servidores Inserciones simultáneas con columnas AUTO INCREMENT Y si la replicación se detiene por un tiempo? Cómo reenganchamos después? Sólo se recomienda si tenemos datos bien particionados y buen reparto de privilegios

39 Replicación Topologías de replicación Maestro-maestro en modo activo-pasivo Uno de los servidores es un servidor pasivo de sólo lectura Permite intercambiar los papeles de forma muy sencilla: las configuraciones son simétricas Mantenimiento, optimización de tablas, actualizaciones del sistema operativo no implican inactividad del sistema. Por ejemplo, ALTER TABLE bloquea toda la tabla, incluyendo lecturas y escrituras sobre la misma. Para no ralentizar el sistema: Detenemos los hilos esclavos en el maestro activo Hacemos el cambio en el maestro pasivo Cambiamos los papeles de activo y pasivo Reiniciamos los hilos esclavos en el antiguo maestro activo

40 Replicación Topologías de replicación Anillo

41 Replicación Topologías de replicación Anillo Tres o más maestros Cada servidor es un esclavo del servidor que está antes en el anillo, y maestro del servidor que está después Configuración simétrica, failover fácil. Es una configuración frágil: Depende enormemente de que todos los nodos funcionen correctamente Difícil que estén todos sincronizados a la vez: detener algún nodo es complicado Si eliminamos un nodo sin tener cuidado, sus eventos pueden propagarse de forma infinita por el anillo. El único nodo que filtra un evento es el que lo ha generado!

42 Replicación Topologías de replicación Maestro, maestro de distribución, esclavos

43 Replicación Topologías de replicación Maestro, maestro de distribución, esclavos Similar a la topología maestro-esclavos, pero no sobrecarga al maestro principal El maestro principal sólo tiene un esclavo que a su vez actúa como maestro de distribución El maestro de distribución usa el motor BlackHole que graba en el registro binario pero no mantiene tablas ni datos

44 Replicación Topologías de replicación Árbol o pirámide

45 Replicación Topologías de replicación Árbol o pirámide Si hay muchos esclavos, puede ser mas rentable un diseño en pirámide Esto alivia la carga del maestro y la redistribuye por los diferentes esclavos Desventaja: fallos en niveles intermedios afectan a un gran número de servidores Además, cuantos más niveles intermedios, más difícil y complicado es manejar los fallos

46 Replicación Problemas en la replicación La replicación implica varias tareas complejas: Medir el desfase de los esclavos para saber en que estado se encuentran Determinar la consistencia de los esclavos con respecto al maestro Resincronizar un esclavo con el maestro Intercambiar un esclavo por un maestro La replicación sólo escala las lecturas, no las escrituras La distribución de la carga debe ser realizada por otro software La complejidad de la replicación se ve claramente en la longitud de la sección del manual

47 Copia de seguridad y recuperación Contenidos 1 Introducción a MySQL 2 Replicación 3 Copia de seguridad y recuperación 4 Medición de rendimiento y perfilado Medición del rendimiento Perfilado de aplicaciones 5 Optimización Optimización de esquemas e índices Optimización de hw. y sw. Optimización del servidor

48 Copia de seguridad y recuperación Introducción Recuperación no es restauración Restaurar: recuperar datos desde una copia de seguridad y cargarlos en una base de datos Recuperar: todo el proceso de rescatar un sistema o parte de él. Incluye todos los pasos para lograr que un servidor vuelva a ser completamente funcional y operativo: Restaurar copia de seguridad Reiniciar servidor Cambiar configuración Calentar las cachés del servidor Utilidades de las copias de seguridad Recuperación ante desastres. Un error importante corrompe los datos o el servidor Recuperación ante cambios no deseados. La gente cambia de idea, y ocurre más a menudo que los desastres Auditorías. Necesidad de recuperar datos o esquema en algún momento del pasado (ej. temas judiciales) Pruebas. La manera más fácil de cargar un servidor de pruebas con datos es usando una copia de seguridad

49 Copia de seguridad y recuperación Introducción El mejor sistema de copias de seguridad no es suficiente. Un buen plan de recuperación es fundamental El procedimiento de recuperación es complejo. Es fácil cometer errores Las copias de seguridad son rutinarias y no se realizan bajo situaciones de presión extrema. La recuperación se hace en medio de una situación de crisis Una persona puede planear, diseñar e implementar las copias de seguridad, pero podría no estar disponible cuando se produzca el desastre. Es necesario formar a personal cualificado para que se encargue de la recuperación Alternativas que no son copias de seguridad La replicación no es una copia de seguridad Usar discos en RAID Cómo nos recuperamos en estos casos de un DROP DATABASE?

50 Copia de seguridad y recuperación Estrategia para la copia de seguridad No olvidar realizar copias de seguridad de recursos no obvios Registro binario y registro de transacciones de InnoDB Código: disparadores y procedimientos almacenados (están en la BD mysql) Configuración del servidor y de la replicación Ficheros seleccionados del SO (trabajos cron, configuraciones de usuario y de grupo, scripts administrativos, reglas sud0, etc) Qué podemos permitirnos perder? La respuesta a esa pregunta guía la estrategia de copia de seguridad Basta con la copia de la noche anterior y podemos perder el trabajo de hoy? Necesitamos retroceder a un instante de tiempo predeterminado? Cuanto más nos permitamos perder, más fácil es hacer la copia Las copias de seguridad en MySQL son mucho más complicadas de lo que parece

51 Copia de seguridad y recuperación Tipos de copia de seguridad Copias calientes, templadas o frías? Calientes: sin detener el servidor ni bloquear las tablas Templadas: sin detener el servidor pero bloqueando las tablas Frías: deteniendo el servidor Copias lógicas o sin procesar? Copia lógica: en un formato que MySQL puede interpretar (SQL, CSV) Copia sin procesar: los archivos de mysql tal y como están almacenados en disco

52 Copia de seguridad y recuperación Tipos de copia de seguridad Inconvenientes de copias calientes Búferes sucios en el grupo de buffers de InnoDB (u otras cachés) Datos modificados mientras se está haciendo la copia Inconvenientes de copias frias Desconectar servidor es costoso, aun si se minimiza el tiempo de copia de seguridad Las páginas sucias en grupo de buffers InnoDB requieren tiempo para volcarse a disco Reiniciar también requiere tiempo: abrir tablas, calentar cachés, etc. Inconvenientes de copias templadas Tiempo de espera indeterminado debido al proceso de adquirir bloqueos

53 Copia de seguridad y recuperación Tipos de copia de seguridad Ventajas de las copias lógicas Archivos que se pueden manipular e inspeccionar con editores de textos Fáciles de restaurar Se pueden restaurar en una máquina diferente Independientes del motor de almacenamiento Se pueden retocar para exportar a otros SGBD Desventajas de las copias lógicas El servidor debe hacer el trabajo de generarlas Pueden llegar a ocupar mucho más que los datos en algunos casos La reconstrucción implica volver a ejecutar todas las sentencias y regenerar todos los índices.

54 Copia de seguridad y recuperación Tipos de copia de seguridad Ventajas de las copias sin procesar No hay trabajo adicional: se copian los archivos tal cual La restauración puede ser sencilĺısima: para MyISAM, simplemente copiar los archivos en su sitio; InnoDB, en cambio, obliga a detener el servidor La restauración es más rápida: no hay que ejecutar sentencias, ni reconstruir índices Desventajas de las copias sin procesar Suelen ocupar mucho más espacio que las copias lógicas (por ejemplo, el espacio de tabla InnoDB incluye mucho espacio sin utilizar) No siempre se pueden mover a través de las plataformas, SO y versiones de SQL (mayúsculas/minúsculas, representación punto flotante)

55 Copia de seguridad y recuperación Procedimiento de copia lógica Copia Realizar un volcado SQL con mysqldump o CSV con SELECT * INTO OUTFILE Restauración Ejecutar el script SQL o importar el CSV con LOAD DATA INFILE INTO TABLE Problemas: En el volcado SQL los esquemas y datos almacenados juntos, en el volcado CSV no hay esquemas Los archivos pueden ser enormes (y los editores de texto no podrán abrirlos)

56 Copia de seguridad y recuperación Procedimiento de copia lógica Hay que asegurar que los datos son consistentes en un punto de tiempo determinado (por ejemplo, en una BD de comercio electrónico debe haber una factura por cada pago). Es complicado en copias calientes En motores transaccionales: realizar la copia en una transacción En motores no transaccionales, bloquear todas las tablas que se deben copiar juntas Esto no nos protege de una aplicación mal diseñada (por ejemplo, si el pago y la factura se registran en dos transacciones distintas)

57 Copia de seguridad y recuperación Procedimiento de copia sin procesar Copia MyISAM: bloquear las tablas y copiar los archivos de datos InnoDB: Bloquear las tablas no es suficiente porque los cambios se reflejan en el registro de transacciones y no en el espacio de tablas Alternativa: parar el servidor o usar técnicas de gestión de ficheros del SO (por ejemplo, LVM) Restauración: MyISAM: bloquear las tablas y copiar los archivos de datos InnoDB: parar el servidor y sustituir los archivos

58 Copia de seguridad y recuperación Procedimiento de copias de seguridad incrementales Activar el registro binario de mysql Copia: Realizar copias completas con los procedimientos anteriores Realizar copias incrementales del registro binario Restauración: Restaurar la copia completa y ejecutar todos los registro binarios Restauración a un punto concreto del tiempo Localizar el punto de tiempo en los registros binarios y ejecutar hasta esa posición Eliminar el resultado de una instrucción Localizar la instrucción y ejecutar el registro binario hasta esa posición y desde después de esa posición

59 Medición de rendimiento y perfilado Contenidos 1 Introducción a MySQL 2 Replicación 3 Copia de seguridad y recuperación 4 Medición de rendimiento y perfilado Medición del rendimiento Perfilado de aplicaciones 5 Optimización Optimización de esquemas e índices Optimización de hw. y sw. Optimización del servidor

60 Medición de rendimiento y perfilado Medición del rendimiento y perfilado El objetivo de la optimización es aumentar el rendimiento de MySQL Los elementos a optimizar son muchos. Ej: esquemas, índices, consultas, configuración del servidor, hardware, software, aplicaciones Necesitamos dos prácticas básicas: Medición del rendimiento. Responde a Cómo se ejecuta? Permiten evaluar el desempeño del SGBD Permiten determinar la capacidad máxima del sistema Permiten discriminar los cambios que importan de los que no Muestran cómo se ejecuta la aplicación con datos diferentes Perfilado. Responde a Por qué se ejecuta así? Indica cuanto contribuye cada elemento de un sistema al coste de producir el resultado Lugares donde se pierde más tiempo Lugares donde se consumen más recursos

61 Medición de rendimiento y perfilado Medición del rendimiento Contenidos 1 Introducción a MySQL 2 Replicación 3 Copia de seguridad y recuperación 4 Medición de rendimiento y perfilado Medición del rendimiento Perfilado de aplicaciones 5 Optimización Optimización de esquemas e índices Optimización de hw. y sw. Optimización del servidor

62 Medición de rendimiento y perfilado Medición del rendimiento Objetivos de las medidas Las medidas de rendimiento permiten realizar las siguientes tareas: Medir rendimiento actual de nuestra aplicación Necesario para poder comparar efecto de cambios Diagnosticar problemas no previstos Validar la escalabilidad del sistema Pruebas comparativas con cargas masivas Planificar el crecimiento Estimar hw., capacidad de red y otros recursos para la carga futura prevista Probar la capacidad de adaptación a entornos cambiantes Picos esporádicos, configuraciones diferentes de servidores Probar configuraciones diferentes de hw., sw. y so. RAID5 o RAID10? núcleo 2.4 o 2.6 de Linux? escala bien con doble de memoria?

63 Medición de rendimiento y perfilado Medición del rendimiento Estrategias para medir Existen dos estrategias en la medida de rendimiento: Aplicación como un todo La preocupación última es el rendimiento de toda la aplicación MySQL no es siempre el cuello de botella. Una prueba de pila completa pude revelarlo Los puntos de referencia para medir rendimiento son buenos si reflejan el comportamiento real de toda la aplicación. Es más difícil si sólo probamos una parte de ella Aislar mysql (SGBD, en general) Es difícil aislar puntos de referencia y de configuración de la aplicación Acercamiento paulatino: empezar por mysql Interesan medidas de rendimiento cortas, con tiempo de ciclo más corto Fácil aislar consultas típicas y repetirlas muchas veces

64 Medición de rendimiento y perfilado Medición del rendimiento Ejemplos de medidas de rendimiento Transacciones por unidad de tiempo (clásica) Se ajusta bien a aplicaciones interactivas de múltiples usuarios, OLTP Unidad típica: transacciones por segundo Tiempo de respuesta (latencia) Mide tiempo total requerido por una tarea (ej: milésimas, minutos) La ejecución repetida permite derivar tiempos de respuesta mínimo, máximo o medio Los tiempos mínimos y máximos no son muy útiles porque no son repetibles, cuanto más tiempo se ejecute la medida, más extremos serán, y varían mucho entre diferentes ejecuciones En general es mejor agregar utilizando percentiles (ej: el 95 % de las respuestas se responden en menos de 5 ms)

65 Medición de rendimiento y perfilado Medición del rendimiento Ejemplos de medidas de rendimiento Concurrencia Medimos el rendimiento de la aplicación bajo diferentes niveles de concurrencia Un ejemplo de medida: número solicitudes atendidas respecto a las solicitadas en un segundo Es importante mediar las consultas que se realizan, no las conexiones establecidas, ya que los servidores y los clientes actuales incluyen un pool de conexiones No sólo es un resultado, también es una propiedad que debemos configurar en nuestras pruebas Escalabilidad Útil en sistemas que tienen que mantener un rendimiento estable bajo carga de trabajo cambiante Generalmente se utilizan medidas de tiempo de respuesta probando con diferentes intensidades de carga La intensidad de carga se varia cambiando (entre otros): El tamaño de la base datos El número de conexiones concurrentes El hw. disponible

66 Medición de rendimiento y perfilado Medición del rendimiento Errores comunes en las medidas Algunos errores comunes en la definición de medidas de rendimiento: Usar un subconjunto no representativo de los datos Utilizar datos sintéticos distribuidos uniformemente Definir un escenario con un solo usuario Medir en un solo servidor el rendimiento de una aplicación distribuida Fallo en imitar el comportamiento del usuario: clics en vínculos uno tras otro sin parar, en una aplicación web Ejecutar consultas idénticas en un bucle, olvidando posibles pérdidas en caché No detectar los errores en el proceso de medida (ej: que una operación lenta se agilice mucho puede ser debido a un error de sintaxis en SQL) Olvidar tener en cuenta latencia del servidor después de reinicio

67 Medición de rendimiento y perfilado Medición del rendimiento Planificación de medidas de rendimiento Proceso de planificación de una medida de rendimiento Identificar el objetivo de la medida y definir indicadores para evaluarlo Un objetivo mal definido: El nuevo índice agiliza las consultas Un objetivo bien definido: El nuevo índice reduce el tiempo de respuesta de la consulta en un 10 % Decidir si usaremos una prueba estándar o una prueba de diseño propio Definir un plan de toma de medidas porque tendremos que repetir la prueba varias veces y necesitamos reproducirla exactamente Datos de partida de la prueba Pasos seguidos para configurar sistema Plan de calentamiento Documentación de los parámetros Almacenamiento de los resultados

68 Medición de rendimiento y perfilado Medición del rendimiento Planificación de medidas de rendimiento Proceso de planificación de una medida de rendimiento Realizar la toma de medidas Usar diferentes intervalos de tiempo para cubrir todas las actividades del sistema Debemos asegurar que la prueba es significativa y repetible (ej: usando una instantánea de los datos, usando el servidor en caliente) Debemos tener cuidado con la carga externa y con las tareas periódicas Cambiar la menor cantidad de parámetros posible en cada prueba (los independientes) Es recomendable automatizar las ejecuciones de las pruebas (scripts, makefiles) El número de repeticiones depende del grado de certeza que se quiera alcanzar. Comúnmente: Ejecutar varias veces y eliminar los resultados discrepantes Ejecutar hasta que los resultados no varíen demasiado (reducir la varianza) Utilizar técnicas estadísticas Analizar los resultados Los resultados agregados permiten dar una idea general de la medida Los resultados detallados permiten detectar picos ocultos por la agregación

69 Medición de rendimiento y perfilado Medición del rendimiento Herramientas para medidas de rendimiento Herramientas específicas de mysql mysqlslap Incluido desde la version 5.1 con mysql Simula carga en el servidor e informa sobre el tiempo Muy configurable, ej: número de conexiones concurrentes Permite una instrucción SQL en ĺınea de comandos o un archivo con instrucciones SQL MySQL Benchmark suite Incluido desde la version 5.0 con mysql Mide lo rápido que ejecuta el servidor las consultas Muchas pruebas predefinidas, que permiten comparar diferentes motores de almacenamiento y configuraciones Mejorable (un sólo usuario, el conjunto de datos es pequeño, y usa un solo proceso (no multiples CPU)

70 Medición de rendimiento y perfilado Medición del rendimiento Herramientas para medidas de rendimiento Herramientas específicas de mysql sysbench Tests predefinidos para medir rendimiento de servidor y SGBD Pruebas de rendimiento de CPU, memoria, threads, etc. Pruebas de rendimiento de la E/S de archivos: comparar discos duros, tarjetas RAID, modos RAID, etc. Pruebas de comparación OLTP Desarrollo parado Super Smack Pruebas de comparación + Prueba de estrés + Herramienta de generación de carga para MySQL y PostgreSQL Múltiples usuarios, carga datos de prueba (aleatorios) Lenguaje neutro (smack) para definir clientes, tablas, consultas, etc. Desarrollo parado

71 Medición de rendimiento y perfilado Medición del rendimiento Herramientas para medidas de rendimiento Herramientas de pila completa Ab Incluida con el servidor HTTP Apache Calcula el número de solicitudes que puede servir por segundo Sólo prueba una URL todo lo rápido que pueda httpload Utiliza un archivo de entrada con muchas URLs de las que elige aleatoriamente Prueba lo más rápido que pueda, o según una velocidad establecida (-rate) También simula usuarios concurrentes (-parallel) JMeter Aplicación Java para medir el rendimiento de otros programas Simula usuarios reales (tiempo de escalada configurable) Interfaz gráfica que permite reproducir prueba fuera de ĺınea

72 Medición de rendimiento y perfilado Perfilado de aplicaciones Contenidos 1 Introducción a MySQL 2 Replicación 3 Copia de seguridad y recuperación 4 Medición de rendimiento y perfilado Medición del rendimiento Perfilado de aplicaciones 5 Optimización Optimización de esquemas e índices Optimización de hw. y sw. Optimización del servidor

73 Medición de rendimiento y perfilado Perfilado de aplicaciones Objetivos del perfilado El perfilado de un sistema nos indica cuanto contribuye cada elemento al coste total de producción de un resultado Permite entender por qué un sistema se ejecuta como lo hace Es necesesario considerar el sistema completo porque: Si nos centramos en ejecutar, analizar, y optimizar consultas perdemos mucha información Procesamiento de resultados en memoria Llamadas a recursos externos Algoritmos poco óptimos Si nos limitamos a medir tiempo de respuesta del servidor web No tenemos estadísticas del sistema que permitan determinar qué esfuerzo permite una mayor mejora El cuello de botella puede estar en otra parte.

74 Medición de rendimiento y perfilado Perfilado de aplicaciones Proceso de perfilado Es necesario incluir código de perfilado en las aplicaciones que tome mediciones de: Tiempo total de ejecución de la página Tiempo de ejecución de las consultas Tiempo de llamadas a recursos externos (servicios web) Es una sobrecarga al sistema, por lo que es necesario aplicar tácticas como Sólo realizar el perfilado en un porcentaje pequeño de las peticiones Guardar los datos en memoria y hacerlos persistentes en bloque

75 Medición de rendimiento y perfilado Perfilado de aplicaciones Perfilado en MySQL MySQL mantiene dos registros de consultas: el registro general y el registro de consultas lentas El registro general Se guardan todas las consultas que se reciben aunque por error no se terminen ejecutando Se guardan los eventos de conexión y desconexión Sin tiempos de ejecución: de poco interés para el perfilado El registro de consultas lentas Registra las consultas ejecutadas que sobrepasan un determinado tiempo Se puede configurar para registrar también las consultas que no utilizan índices Guarda tiempos de ejecución: permite perfilado Es difícil de utilizar: Una consulta es lenta porque tarda más de lo esperado, no porque tarda más que un umbral de tiempo Hay consultas que no tienen que usar el índice de ningún modo

76 Medición de rendimiento y perfilado Perfilado de aplicaciones Perfilado en MySQL Desde la versión , MySQL permite realizar perfilado de los recursos usados en una sesión Se activa mediante la variable profiling Se consulta mediante SHOW PROFILES y SHOW PROFILE [FOR QUERY n] Registra multitud de variables para cada uno de los estados de todas las consultas ejecutadas Los datos se pueden consultar agregados o a nivel de consulta individual Los datos se guardan en memoria mientras dure la sesión La estrategia de análisis de resultados puede ser: Comprobar qué consultas tienen más impacto Comprobar el plan de ejecución de esas consultas con EXPLAIN Realizar los ajustes necesarios Repetir el análisis

77 Optimización Optimización de esquemas e índices Contenidos 1 Introducción a MySQL 2 Replicación 3 Copia de seguridad y recuperación 4 Medición de rendimiento y perfilado Medición del rendimiento Perfilado de aplicaciones 5 Optimización Optimización de esquemas e índices Optimización de hw. y sw. Optimización del servidor

78 Optimización Optimización de esquemas e índices Optimización de esquemas e índices Optimizar esquema mal diseñado o mal indizado mejora del rendimiento en órdenes de magnitud Sin embargo, hay que tener cuidado con los efectos secundarios Un nuevo índice INSERT y UPDATE más lentas Las tablas de resumen y los contadores agilizan consultas, pero el mantenimiento es más costoso Los cambios requieren conocer todo el sistema y cada elemento afectado Describiremos estas técnicas: Elección de tipos de datos óptimos y selección de clave primaria Distintos tipos de índices: B+, Hash y agrupados Estrategias de indexado Índices para ordenación Tablas de cache y de resumen Tablas de contadores Desnormalización

79 Optimización Optimización de esquemas e índices Elección de tipos de datos óptimos Elegir adecuadamente el tamaño es importante Usar el tipo de datos más pequeño posible Menos espacio en disco, memoria y CPU Cuanto más sencillos mejor Tipos de datos simples, menos ciclos de CPU. Por ejemplo, enteros para IPs, y no cadenas (una IP es un entero de 32 bits sin signo): INET ATON(), INET NTOA() Evitar valores NULL. Indicar NOT NULL siempre que sea posible Complicado optimizar si hay columnas con valores NULL Columnas NULL usan mas espacio de almacenamiento y requieren procesamiento especial. (i.e. byte adicional en índice) A ser posible, usar cero, valor especial, cadena vacía,... Proceso: Paso 1: Determinar tipo de datos: numérico, cadena, temporal Paso 2: Elegir tipo específico

80 Optimización Optimización de esquemas e índices Elección de tipos de datos óptimos DATETIME vs. TIMESTAMP Datetime: Entero empaquetado (YYYMMDDHHMMSS) de 8 bytes. Mayor rango de valores ( , con precisión de 1 segundo). Timestamp: Entero de 4 bytes. Número de segundos desde 0:00 del 1/1/1970 en meridiano Greenwich. Mitad de espacio y utiliza zona horaria. CHAR vs. VARCHAR CHAR Longitud fija Vale la pena para valores muy cortos o cuando todos los valores tienen aprox. la misma longitud. VARCHAR Menos espacio por ser longitud variable 1 o 2 bytes adicionales para almacenar longitud (varchar(10): hasta 11 bytes; varchar(1000): hasta 1002 bytes) Filas ocupan menos, pero pueden crecer más adelante (fragmentación, reasignación de espacio) Vale la pena cuando la longitud máxima de columna es mucho mayor que la media y hay pocas actualizaciones, o cuando el cjto. caracteres complejo, codificación variable (UTF-8).

81 Optimización Optimización de esquemas e índices Elección de tipos de datos óptimos VARCHAR(5) vs. VARCHAR(200) Un texto de cuatro caracteres ocupa lo mismo en ambos casos, no hay diferencia en almacenamiento secundario MySQL asigna fragmentos de tamaño fijo a la memoria Tabla temporal para ordenación: reservaría espacio para el máximo tamaño posible (motor Memory necesita filas de tamaño fijo) Mejor reservar el tamaño justo BLOB y TEXT Guardan grandes cantidades de datos (binarios y de cadena) Cada motor, diferente gestión Evitar usarlos en el ORDER BY ya que el motor Memory no permite campos TEXT ni BLOB, así que habría que usar myisam para la tabla temporal de ordenación) Truco (longitud lo bastante corta para que la tabla no sobrepase tmp table size) ORDER BY SUBSTRING(columna text, longitud)

82 Optimización Optimización de esquemas e índices Elección de tipos de datos óptimos ENUM en lugar de cadenas Ahorro de espacio Es solución sólo para listas fijas de cadenas. Ampliarla: ALTER TABLE Además: sobrecarga de conversión de valores (por ejemplo, al concatenar o al comparar) Usar sólo si la lista de cadenas no va a cambiar en el futuro

83 Optimización Optimización de esquemas e índices Selección de clave primaria Debe ser el mismo tipo en todas las tablas relacionadas ya que tipos distintos afectan al rendimiento debido a las conversiones InnoDB no permite claves foráneas si no hay coincidencia exacta Conversiones de tipo impĺıcitas pueden provocar errores difíciles de detectar Elegir tamaño mas pequeño necesario dejando espacio para crecimiento futuro Por ejemplo: un entero (4 bytes) para códigos de provincias implica mucho espacio en claves externas Las cadenas de caracteres son una mala elección porque ocupan mucho espacio y son más lentas que los enteros Las cadenas de caracteres aleatorias (estilo UUID) implican: ralentización de los INSERT ya que el valor se inserta en una posición aleatoria del índice que puede crear fragmentación de páginas mal rendimiento de las caches ya que se elimina la localidad ralentización de los SELECT porque filas adyacentes en el resultado quedan dispersas en disco y memoria si las filas se almacenan ordenadas por clave

84 Optimización Optimización de esquemas e índices Revisión de los esquemas generados automáticamente Proceso tradicional: Modelado conceptual, lógico y físico Proceso de mapeado objeto-relacional: anotación de clases y creación de esquemas Proceso model-driven engineering: modelado conceptual y creación automática de esquemas Posibles problemas Uso reiterado de tipos VARCHAR sin ĺımite Tipos de datos en columnas de combinación que no coinciden El objetivo principal es que cualquier clase puede ser almacenada en cualquier SGBD, lo que puede provocar: Tablas con cada propiedad de un objeto en una fila Versiones de cada propiedad usando timestamps

85 Optimización Optimización de esquemas e índices Índices Más importantes a medida que nuestros datos crecen Por ejemplo, en una consulta como SELECT first_name FROM actor where actor_id=5; Si hay índice sobre actor id se busca sobre el índice y se recuperan punteros a las filas en la tabla Si se define el índice sobre varias columnas el orden en el que se indican las columnas es muy importante ya que MySQL sólo busca eficientemente el prefijo en la parte más a la izquierda del índice Crear un índice sobre dos columnas no es lo mismo que crear dos índices de una sola columna independientes Los índices se implementan a nivel de motor de almacenamiento (no en capa de servidor), por lo que no todos los motores admiten todos los tipos de índices

86 Optimización Optimización de esquemas e índices Árbol B y B+ Admitido por todos los motores (menos Archive) Cada motor lo implementa a su modo. Por ejemplo, MyISAM usa compresión mientras que InnoDB no usa compresión Idea general: todos los valores se almacenan en orden y se accede mediante un árbol en el que cada hoja está a la misma distancia de la raíz y las páginas de hojas contienen punteros a los registros de la tabla. Agiliza acceso a los datos. Se realiza un acceso al nodo raíz y e va descendiendo por las ramas escogiendo punteros adecuados hasta llegar al valor correcto.

87 Optimización Optimización de esquemas e índices Árbol B y B+

88 Optimización Optimización de esquemas e índices Árbol B y B+ Tipos de consulta que pueden usar índice de un árbol B Coincidencia con valor completo. apellidos = Allen and nombre = Cuba and fnac = Coincidencia parcial con prefijo de columna apellidos like A % Coincidencia parcial con prefijo más a la izquierda apellidos = Allen and nombre like C % Coincidencia con rango de valores apellidos >= Allen % and apellidos <= Barrimore % Cláusulas ORDER BY por los campos del índice

89 Optimización Optimización de esquemas e índices Árbol B y B+ Limitaciones. No son útiles en: Búsquedas que no empiezan en la parte más izquierda de las columnas indizadas. Ejemplos: nombre = Cuba and fnac = apellidos like %Z No permiten saltar columnas del índice. Ejemplo: apellidos = Allen and fnac = No se optimiza el acceso a columnas a la derecha de la primera condición de rango. Por ejemplo: apellidos = Allen AND nombre >= J AND fnac =

90 Optimización Optimización de esquemas e índices Índices Hash Sólo soportado por el motor Memory (el indice por defecto) Para cada fila se crea un código hash con las columnas indizadas El índice es una tabla hash con apuntadores de fila (muy compactos) Las colisiones de la función hash se almacenan con una lista enlazada Útil sólo para búsquedas que usan todas las columnas del índice. No admiten coincidencia parcial de clave Problemas No se pueden usar los índices para ordenar ya que el índice ordena por hash, no por el valor original. No evita leer las filas ya que en el índice sólo se almacena un punto al registro Sólo permite comparaciones de igualdad (=, IN) pero no consultas de rangos (>100) Las colisiones de la función hash ralentizan el acceso y el mantenimiento Es posible simular índice hash con una columna extra, un árbol B+ y triggers

91 Optimización Optimización de esquemas e índices Índices agrupados Las filas de las tablas se guardan en las páginas hoja del índice Las filas con valores de clave adyacentes se guardan juntas Ahorra operaciones de E/S en consultas con datos relacionados Los índices tradicionales pueden ocupar más espacio del esperado ya que en vez de punteros a registros almacenan valores de clave primaria No todos los motores los admiten InnoDB lo hace impĺıcito con la clave primaria, con un índice único sin valores NULL, o con una clave interna oculta Inconvenientes: Sólo ahorra E/S si los datos no caben en memoria La velocidad de inserción depende del orden de inserción (lo mejor, en el orden de la clave primaria) La actualización es costosa debido a la reubicación de páginas Páginas más sujetas a fragmentación al insertar filas nuevas Pueden ser más lentas para escaneos completos

92 Optimización Optimización de esquemas e índices Otros índices Índices espaciales (árbol R) Sólo en motor MyISAM Sólo para los tipos de datos y operaciones de geometría espacial (GEOMETRY) El soporte espacial de MySQL no es muy completo Índices de texto completo Sólo en el motor MyISAM Permite búsquedas de palabras clave en textos y cálculo de relevancias Soporta conceptos de recuperación de información (stopwords, lematización, búsqueda booleana)

93 Optimización Optimización de esquemas e índices Estrategias de indexado: aislar columnas Aislar la columna en las consultas para que no forme parte de una expresión ni sea argumento de funciones Ejemplos que no usan el índice: SELECT actor_id FROM actor WHERE actor_id+1=5; SELECT... WHERE TO_DAYS(CURRENT_DATE) - TO_DAYS(date_col) <= 10; Ejemplos que usan el índice: SELECT actor_id FROM actor WHERE actor_id=4; SELECT... WHERE date_col >= DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY);

94 Optimización Optimización de esquemas e índices Estrategias de indexado: Construir índices sobre prefijos Permite indexar columnas de caracteres largas Indexar solo los primeros caracteres en lugar de todo el valor Es necesario buscar el tamaño idóneo que mantiene el índice altamente selectivo Selectividad = Valores diferentes indexados / Valores totales Bastante largo para proporcionar buena selectividad Bastante corto como para ahorrar espacio

95 Optimización Optimización de esquemas e índices Estrategias de indexado: Construir índices sobre prefijos Distribución de los valores diferentes

96 Optimización Optimización de esquemas e índices Estrategias de indexado: Construir índices sobre prefijos Calculo de las selectividades

Entendiendo y Optimizando MySQL

Entendiendo y Optimizando MySQL Grupo de Usuarios de Linux Universidad Carlos III de Madrid. 10 de Noviembre de 2010 Indice Arquitectura 1 Arquitectura 2 3 4 5 Arquitectura Sistema de Gestión de Bases de Datos. GPL. Escrito en C y C++.

Más detalles

CAPITULO 9. Diseño de una Base de Datos Relacional Distribuida

CAPITULO 9. Diseño de una Base de Datos Relacional Distribuida 9.1 Operaciones CAPITULO 9 Diseño de una Base de Datos Relacional Distribuida Las consultas distribuidas obtienen acceso a datos de varios orígenes de datos homogéneos o heterogéneos. Estos orígenes de

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

Más detalles

Diseño y Admón. de Bases de Datos. Ingeniería Informática curso 2010/11

Diseño y Admón. de Bases de Datos. Ingeniería Informática curso 2010/11 Laboratorio 06. Objetivos: Representación interna de un BD. Tablas, índices e índices full-text. Sesiones: 1 (24 de noviembre de 2010) Ejercicio: 1. Representación interna: 1.1. Copiar al repositorio de

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Bases de datos: Sistemas de bases de datos:

Bases de datos: Sistemas de bases de datos: Bases de datos: Sistemas de bases de datos: Un sistema de bases de datos es básicamente un sistema para archivar en computador, es decir, es un sistema computarizado cuyo propósito general es mantener

Más detalles

ADMINISTRACIÓN DE BASES DE DATOS PREGUNTAS TEST SON SOLUCIÓN

ADMINISTRACIÓN DE BASES DE DATOS PREGUNTAS TEST SON SOLUCIÓN ADMINISTRACIÓN DE BASES DE DATOS PREGUNTAS TEST SON SOLUCIÓN 1. En el SGBD Oracle. Cuál de las siguientes afirmaciones es correcta? a) Los usuarios con el rol de administrador de la base de datos son SYS,

Más detalles

Memoria Compartida Distribuida (DSM) Sistema de Archivos

Memoria Compartida Distribuida (DSM) Sistema de Archivos Memoria Compartida Distribuida (DSM) La memoria compartida distribuida es una abstracción que se propone como alternativa a la comunicación por mensajes. Memoria compartida basada en páginas: este esquema

Más detalles

Arquitectura de sistema de alta disponibilidad

Arquitectura de sistema de alta disponibilidad Mysql Introducción MySQL Cluster esta diseñado para tener una arquitectura distribuida de nodos sin punto único de fallo. MySQL Cluster consiste en 3 tipos de nodos: 1. Nodos de almacenamiento, son los

Más detalles

Contenido Manejo de Concurren en Mysql... 2 Modos de bloqueo InnoDB... 2 InnoDB y AUTOCOMMIT... 3

Contenido Manejo de Concurren en Mysql... 2 Modos de bloqueo InnoDB... 2 InnoDB y AUTOCOMMIT... 3 Manejo de Concurrencia en Mysql Contenido Manejo de Concurren en Mysql... 2 Modos de bloqueo InnoDB... 2 InnoDB y AUTOCOMMIT... 3 InnoDB y TRANSACTION ISOLATION LEVEL... 3 Lecturas consistentes que no

Más detalles

SISTEMAS DE ARCHIVOS DISTRIBUIDOS

SISTEMAS DE ARCHIVOS DISTRIBUIDOS SISTEMAS DE ARCHIVOS DISTRIBUIDOS Tema # VII Sistemas de operación II Abril-Julio 2008 Yudith Cardinale Introducción Requisitos Aspectos de Diseño Servicios de archivos Servicios de directorios Módulo

Más detalles

Componentes de Integración entre Plataformas Información Detallada

Componentes de Integración entre Plataformas Información Detallada Componentes de Integración entre Plataformas Información Detallada Active Directory Integration Integración con el Directorio Activo Active Directory es el servicio de directorio para Windows 2000 Server.

Más detalles

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05 18 y 19 Sistemas de Archivos Distribuidos y Tarea 05 Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco efranco.docencia@gmail.com Estructuras de datos (Prof. Edgardo A. Franco)

Más detalles

Replicación de Datos en SQL Server... 3. Resumen... 3. 1. Introducción... 3. 2. Componentes del modelo de replicación... 3

Replicación de Datos en SQL Server... 3. Resumen... 3. 1. Introducción... 3. 2. Componentes del modelo de replicación... 3 REPLICACIÓN DE DATOS EN SQL SERVER CONTENIDO Replicación de Datos en SQL Server... 3 Resumen... 3 1. Introducción... 3 2. Componentes del modelo de replicación... 3 3. Escenarios típicos de la replicación...

Más detalles

SQL Server 2014 Administración de una base de datos transaccional con SQL Server Management Studio

SQL Server 2014 Administración de una base de datos transaccional con SQL Server Management Studio Presentación 1. Introducción 13 2. Presentación de SQL Server 14 2.1 Qué es un SGBDR? 15 2.2 Modo de funcionamiento cliente/servidor 16 2.3 Las posibles plataformas 18 2.4 Los componentes de SQL Server

Más detalles

MySQL 5 (versiones 5.1 a 5.6) Guía de referencia del desarrollador

MySQL 5 (versiones 5.1 a 5.6) Guía de referencia del desarrollador Prefacio 1. Objetivos de este libro 13 2. Principales temas tratados en este libro 13 3. A quién va dirigido este libro? 14 4. Requisitos 14 Introducción a MySQL 1. Introducción a las bases de datos relacionales

Más detalles

Microsoft SQL Server. Comparación SQL Server y MySQL Jose Santamaría Instalación, configuración y demo de SQL Server Javier Hernández

Microsoft SQL Server. Comparación SQL Server y MySQL Jose Santamaría Instalación, configuración y demo de SQL Server Javier Hernández Microsoft SQL Server Comparación SQL Server y MySQL Jose Santamaría Instalación, configuración y demo de SQL Server Javier Hernández SQL Server VS MySQL Microsoft SQL Server: Basado en Sybase. Posee versión

Más detalles

Oracle Database 10g: Taller de Administración I 1-2

Oracle Database 10g: Taller de Administración I 1-2 Oracle Database 10g: Taller de Administración I 1-2 Estructuras lógicas y físicas de la BD Bloque dedatosoracle:eselnivellógico másfinodegranularidad,dondesealmacenanlosdatosdelabd. Un bloquededatosse

Más detalles

LABORATORIO 10. ADMINISTRACIÓN DE COPIAS DE SEGURIDAD EN SQL SERVER

LABORATORIO 10. ADMINISTRACIÓN DE COPIAS DE SEGURIDAD EN SQL SERVER LABORATORIO 10. ADMINISTRACIÓN DE COPIAS DE SEGURIDAD EN SQL SERVER GUÍA DE LABORATORIO Nº 1O Actividad de Proyecto No. 12: ESTABLECER PLANES DE RESGUARDO, RESTAURACION Y CONTINGENCIA. Estructura de contenidos.

Más detalles

ÍNDICE. Introducción... Capítulo 1. Novedades, mejoras y requisitos para la instalación... 1

ÍNDICE. Introducción... Capítulo 1. Novedades, mejoras y requisitos para la instalación... 1 Introducción... XIII Capítulo 1. Novedades, mejoras y requisitos para la instalación... 1 Novedades y mejoras en SQL Server 2008 R2... 1 Novedades... 1 Mejoras... 3 Ediciones y componentes en SQL Server

Más detalles

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos. RAIDS MODO LINEAL Es un tipo de raid que muestra lógicamente un disco pero se compone de 2 o más discos. Solamente llena el disco 0 y cuando este está lleno sigue con el disco 1 y así sucesivamente. Este

Más detalles

Manejo de Transacciones

Manejo de Transacciones Bases de Datos Transacciones 1 Manejo de Transacciones Jorge Pérez Rojas Universidad de Talca, II Semestre 2006 Bases de Datos Transacciones 2 Transacciones Hasta ahora el modelo de operación en la BD

Más detalles

SQL Server 2012 Administración de una base de datos transaccional con SQL Server Management Studio

SQL Server 2012 Administración de una base de datos transaccional con SQL Server Management Studio Presentación 1. Introducción 13 2. Presentación de SQL Server 14 2.1 Qué es un SGBDR? 14 2.2 Modo de funcionamiento cliente/servidor 16 2.3 Las posibles plataformas 18 2.4 Los componentes de SQL Server

Más detalles

CURSO DE SQL SERVER 2005

CURSO DE SQL SERVER 2005 CURSO DE SQL SERVER 2005 Una vez finalizado el curso, el alumno estará preparado para: Instalar y configurar SQL Server 2005. Comprender los conceptos más importantes del diseño de bases de datos. Crear

Más detalles

ESPECIALISTA EN BASE DE DATOS

ESPECIALISTA EN BASE DE DATOS ESPECIALISTA EN BASE DE DATOS EXPERTO ANALISIS Y DISEÑO DE BASE DE DATOS EN MANEJAR BASES DE ACCESS COMPLETO DATOS MYSQL Requisito: Manejo Windows POSTGRESQL DURACION: 3 MESES DE L-V SQL SERVER Cliente-Administración

Más detalles

Sistemas de Datos. Rendimiento de la Base de datos. Procesamiento de consultas y administración del rendimiento

Sistemas de Datos. Rendimiento de la Base de datos. Procesamiento de consultas y administración del rendimiento Rendimiento de la Base de datos. Procesamiento de consultas y administración del rendimiento Esquema de la clase 1. Procesamiento de consultas 2. El optimizador del DBMS 3. Los Ajustes del Rendimiento

Más detalles

Un comité de la organización ANSI (American National Standards Institute) aborda la problemática del almacenamiento de datos para su procesamiento en

Un comité de la organización ANSI (American National Standards Institute) aborda la problemática del almacenamiento de datos para su procesamiento en 15/05/2012 1 Un comité de la organización ANSI (American National Standards Institute) aborda la problemática del almacenamiento de datos para su procesamiento en aplicaciones informáticas en 1975. 2 Como

Más detalles

Tema: Configuración de arreglos redundantes de discos duros (RAID).

Tema: Configuración de arreglos redundantes de discos duros (RAID). 1 Tema: Configuración de arreglos redundantes de discos duros (RAID). Objetivo general Configurar arreglos RAID en discos duros para obtener una mayor tolerancia a fallos, rendimiento y capacidad. Objetivos

Más detalles

Estructuras de Almacenamiento RAID RAID. Nivel FísicoF. Índice. Requisitos Almacenamiento. Nivel Lógico Modelo Entidad-Relación y Modelo Relacional

Estructuras de Almacenamiento RAID RAID. Nivel FísicoF. Índice. Requisitos Almacenamiento. Nivel Lógico Modelo Entidad-Relación y Modelo Relacional Estructuras de Almacenamiento Nivel FísicoF Nivel Lógico Modelo Entidad-Relación y Modelo Relacional El nivel en el que se deben mover los usuario es el nivel lógico El objetivo de un sistema de bases

Más detalles

Convivencia. Gestión del Sistema de Archivos

Convivencia. Gestión del Sistema de Archivos Convivencia Gestión del Sistema de Archivos Dra. Carolina Carolina Mañoso Mañoso Dpto. Dpto. Imformática Informática y y Automática.UNED Introducción Se necesitan tres condiciones para el almacenamiento

Más detalles

A.1. Definiciones de datos en SQL

A.1. Definiciones de datos en SQL A.1. Definiciones de datos en SQL Las Sentencias del lenguaje de definición de datos (DDL) que posee SQL operan en base a tablas. Las Principales sentencias DDL son las siguientes: CREATE TABLE DROP TABLE

Más detalles

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES Tema 6. CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES TRANSACCIONES Una transacción es una unidad lógica de trabajo o procesamiento (ejecución de un programa que incluye operaciones de acceso a la base de

Más detalles

LABORATORIO 8. Gestión del Rendimiento en el SMBD SQL Server.

LABORATORIO 8. Gestión del Rendimiento en el SMBD SQL Server. LABORATORIO 8. Gestión del Rendimiento en el SMBD SQL Server. GUÍA DE LABORATORIO Nº 8 Actividad de Proyecto No. 5: ESTABLECER LOS NIVELES DE SERVICIO DE ACUERDO CON ESTANDARES Y REQUERIMIENTOS DE LA ORGANIZACIÓN.

Más detalles

M. C. Gustavo Alfonso Gutiérrez Carreón

M. C. Gustavo Alfonso Gutiérrez Carreón 1. Seguridad de bases de datos 2. Optimización de las variables M. C. Gustavo Alfonso Gutiérrez Carreón Funcionamiento: 1. Los clientes se conectan a servidor. 2. Los clientes inician autentificación,

Más detalles

Buenas Prácticas en Bases de Datos. María del Pilar Angeles. Posgrado de la Facultad de Ingeniería, UNAM. mpilar_angeles@exalumno.unam.

Buenas Prácticas en Bases de Datos. María del Pilar Angeles. Posgrado de la Facultad de Ingeniería, UNAM. mpilar_angeles@exalumno.unam. Buenas Prácticas en Bases de Datos María del Pilar Angeles. Posgrado de la Facultad de Ingeniería, UNAM. mpilar_angeles@exalumno.unam.mx Algunos Tópicos de Base de Datos Modelado y Diseño Programación

Más detalles

Estructura de Bases de datos. Leonardo Víquez Acuña

Estructura de Bases de datos. Leonardo Víquez Acuña Estructura de Bases de datos Leonardo Víquez Acuña Lenguajes de Bases de Datos Un sistema de bases de datos proporciona Un lenguaje de definición de datos para especificar el esquema de la base de datos

Más detalles

Motores de almacenamiento en MySQL 5.0 por Mario López y Juan A. Sánchez

Motores de almacenamiento en MySQL 5.0 por Mario López y Juan A. Sánchez Motores de almacenamiento en MySQL 5.0 por Mario López y Juan A. Sánchez 15 de enero de 2008 Qué es un motor de almacenamiento en un sistema gestor de bases de datos? Un motor de almacenamiento es una

Más detalles

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN Tipos de datos SQL admite una variada gama de tipos de datos para el tratamiento de la información contenida en las tablas, los tipos

Más detalles

8 SQL SERVER 2008 RA-MA

8 SQL SERVER 2008 RA-MA ÍNDICE Capítulo 1. Características, novedades y entorno de trabajo... 17 1.1 Novedades en SQL Server 2008... 17 1.2 Instalación de Microsoft SQL Server 2008... 19 1.3 Versiones de Microsoft SQL Server

Más detalles

Tema 1: Implementación del sistema de archivos

Tema 1: Implementación del sistema de archivos Tema 1: Implementación del sistema de archivos 1. Introducción 2. Implementación 3. Estructura del almacenamiento secundario Dpto. Tema Lenguajes 1: Implementación y Sistemas del Informáticos. sistema

Más detalles

CI Politécnico Estella

CI Politécnico Estella SÍNTESIS DE LA PROGRAMACIÓN DEL MÓDULO/ASIGNATURA DEPARTAMENTO: INFORMÁTICA GRUPO/CURSO: 2º ASIR 2015-2016 MÓDULO: 10 ASGBD (Administración de Sistemas Gestores de Bases de Datos) PROFESOR: JULIA SEVILLA

Más detalles

Acceso a bases de datos MySQL con PHP

Acceso a bases de datos MySQL con PHP GESTIÓN Y ADMINISTRACIÓN WEB Acceso a bases de datos MySQL con PHP Ing. CIP Fabián Silva Alvarado fsilvasys@hotmail.com DEFINICIÓN DE BASE DE DATOS Base de Datos es un conjunto de datos relacionados entre

Más detalles

TEMA 37: Arquitecturas Cliente / Servidor. Tipos de cliente. Tipos de Servidor. Clasificación del software.

TEMA 37: Arquitecturas Cliente / Servidor. Tipos de cliente. Tipos de Servidor. Clasificación del software. . TEMA 37: Arquitecturas Cliente / Servidor. Tipos de cliente. Tipos de Servidor. Clasificación del software. Índice 1 INTRODUCCIÓN 2 2 CARACTERÍSTICAS 2 2.1 Características del cliente...2 2.2 Características

Más detalles

Procesos. Planificación del Procesador.

Procesos. Planificación del Procesador. Procesos. Planificación del Procesador. Sistemas Operativos. Tema 2. Concepto de Proceso. Una definición sencilla: Programa en ejecución. Entidad pasiva Programa RECURSOS CPU Memoria Ficheros Dispositivos

Más detalles

Optimización del sistema. capítulo 09

Optimización del sistema. capítulo 09 Optimización del sistema capítulo 09 Optimización del sistema optimización El sistema operativo es lo más parecido a un gallinero o a una casa con muchos inquilinos: cada cierto tiempo hay que poner orden.

Más detalles

Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R

Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R índice Módulo A Unidad didáctica 1: Introducción a las Bases de Datos Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos 3 19 Módulo B Unidad didáctica 1: Fase de análisis de requisitos Modelo

Más detalles

Como manejador de base de datos elegimos utilizar Absolute Database, que es un

Como manejador de base de datos elegimos utilizar Absolute Database, que es un APÉNDICE E Manejador de base de datos ABSOLUTE DATABASE Como manejador de base de datos elegimos utilizar Absolute Database, que es un componente de Delphi para manejar base de datos, muy poderoso y fácil

Más detalles

Administración de Bases de Datos

Administración de Bases de Datos Administración de Bases de Datos Tema 8. Técnicas de Recuperación en SGBD Pedro Pablo Alarcón Cavero Juan Garbajosa Sopeña Departamento O.E.I. Escuela Universitaria de Informática Universidad Politécnica

Más detalles

Guía Rápida de Inicio

Guía Rápida de Inicio Guía Rápida de Inicio 1. Acerca de esta Guía Esta guía le ayudará a instalar y dar los primeros pasos con BitDefender Security for File Servers. Para disponer de instrucciones detalladas, por favor, diríjase

Más detalles

VISIÓN GENERAL HERRAMIENTAS COMERCIALES

VISIÓN GENERAL HERRAMIENTAS COMERCIALES VISIÓN GENERAL El servidor de MS SQL se ha convertido en un estándar en muchas partes de la América corporativa. Puede manejar volúmenes de datos grandes y se integra bien con otros productos de Microsoft.

Más detalles

Introducción a las bases de datos

Introducción a las bases de datos Introducción a las bases de datos Juan Ignacio Rodríguez de León Abstract Aplicaciones de los sistemas de bases de datos. Sistemas de bases de datos frente a sistemas de archivos. Visión de los datos.

Más detalles

Unidad 2: Gestión de Memoria

Unidad 2: Gestión de Memoria Unidad 2: Gestión de Memoria Tema 3, Gestión de Memoria: 3.1 Definiciones y técnicas básicas. 3.2 Gestión de memoria contigua: Partición, fragmentación, algoritmos de ubicación... 3.3 Paginación: Estructura

Más detalles

Estructura de una BD Oracle. datafiles redo log controlfiles tablespace objetos Estructura lógica. Tablespaces tablespace SYSTEM

Estructura de una BD Oracle. datafiles redo log controlfiles tablespace objetos Estructura lógica. Tablespaces tablespace SYSTEM Estructura de una BD Oracle. Una BD Oracle tiene una estructura física y una estructura lógica que se mantienen separadamente. La estructura física se corresponde a los ficheros del sistema operativo:

Más detalles

INTRODUCCION A LOS SGBD

INTRODUCCION A LOS SGBD Parte Primera: INTRODUCCION A LOS SGBD Sistemas de Gestión de Bases de Datos Tabla Tabla Type Fila Tabla Type Fila Tabla text Fila Type Fila Fila text Type Fila Tabla Tabla Fila text Fila text Fila Fila

Más detalles

LABORATORIO 3. CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS - POSTGRE SQL

LABORATORIO 3. CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS - POSTGRE SQL LABORATORIO 3. CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS - POSTGRE SQL GUÍA DE LABORATORIO Nº 3 Actividad de Proyecto No. 2: CONFIGURAR SISTEMAS MANEJADORES DE BASE DE DATOS. CONFIGURACIÓN

Más detalles

Arsys Backup Online Manual de Usuario

Arsys Backup Online Manual de Usuario Arsys Backup Online Manual de Usuario 1 Contenido 1. Instalación del Programa Cliente... 3 Pasos previos... 3 Instalación... 3 Configuración del acceso... 6 Ubicación del servidor de seguridad... 6 Datos

Más detalles

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA ÍNDICE CAPÍTULO 1. CARACTERÍSTICAS, NOVEDADES Y ENTORNO DE TRABAJO...17 1.1 NOVEDADES EN SQL SERVER 2008 R2...17 1.2 INSTALACIÓN DE MICROSOFT SQL SERVER 2008 R2...18 1.3 VERSIONES DE MICROSOFT SQL SERVER

Más detalles

PARÁMETROS DE CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS

PARÁMETROS DE CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS PARÁMETROS DE CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS Introducción 3 GESTIÓN DE MEMORIA 3 Memoria Dinámica 4 Memoria predefinida 5 Áreas especiales de memoria 5 GESTIÓN DE ALMACENAMIENTO

Más detalles

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO LENGUAJE DE CONSULTA ESTRUCTURADO - SQL 1. TIPOS DE DATOS 2. COMANDOS DDL 2.1 Créate 2.2 Drop 2.3 Alter 3. COMANDOS DML 3.1 Select 3.2 Insert 3.3 Update 3.4 Delete 4. CLAUSULAS 4.1 From 4.2 Where 4.3 Having

Más detalles

Global File System (GFS)...

Global File System (GFS)... Global File System (GFS)... Diferente a los sistemas de ficheros en red que hemos visto, ya que permite que todos los nodos tengan acceso concurrente a los bloques de almacenamiento compartido (a través

Más detalles

ADMINISTRACIÓN DE BASES DE DATOS

ADMINISTRACIÓN DE BASES DE DATOS ADMINISTRACIÓN DE BASES DE DATOS Descripción del curso: Con la nueva legislación, para desarrollar la actividad profesional de ADMINISTRACIÓN DE BASES DE DATOS, ya sea en entidades públicas o privadas,

Más detalles

DataBase Administration

DataBase Administration DataBase Administration 1. FUNCIONES DE UN DBA (Data Base Administrator) El rol de DBA involucra las siguientes tareas: Creación de Bases y Tablas Base de Datos Verificar el lugar de creación, en los espacios

Más detalles

1. Objetivos generales del título

1. Objetivos generales del título 1. Objetivos generales del título a) Organizar los componentes físicos y lógicos que forman un sistema microinformático, interpretando su documentación técnica, para aplicar los medios y métodos adecuados

Más detalles

Motores MySQL. José Manuel Gómez. jmgomez@ua.es. Departamento de Lenguajes y Sistemas Informáticos

Motores MySQL. José Manuel Gómez. jmgomez@ua.es. Departamento de Lenguajes y Sistemas Informáticos Motores MySQL José Manuel Gómez Departamento de Lenguajes y Sistemas Informáticos jmgomez@ua.es Motores MySQL INTRODUCCIÓN 2 INTRODUCCIÓN MySQL soporta distintos motores de tabla Cada tipo de motor tiene

Más detalles

Componentes de una BD

Componentes de una BD Componentes de una BD Cada BD Oracle en ejecución está asociada a una instancia Oracle. Cuando se arranca el servidor, el software de Oracle reserva una zona de memoria compartida denominada System Global

Más detalles

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA Autor: Carlos Javier Martín González. Licenciado en Física Teórica por la Universidad Autónoma de Madrid. Analista programador y funcional. Desarrollador

Más detalles

Tema: Crear, Modificar y Abrir Conexiones ODBC. Generación de Cubos OLAP Revisado: 2006

Tema: Crear, Modificar y Abrir Conexiones ODBC. Generación de Cubos OLAP Revisado: 2006 1 Jose Ignacio González Gómez. Departamento de Economía Financiera y Contabilidad Universidad de La Laguna www.ecofin.ull.es/users/jggomez. Tema: Crear, Modificar y Abrir Conexiones ODBC. Generación de

Más detalles

Índice de contenido. Manual de administración de hospedaje para administradores de dominios

Índice de contenido. Manual de administración de hospedaje para administradores de dominios Índice de contenido 1. Webmin...2 1.1 Cambio de idioma y tema...2 2. Otros...3 2.1 Cargas y descargas...3 2.2 Conexión Telnet / SSH...4 2.3 Directorios Web Protegidos...5 2.4 Administrador de archivos...6

Más detalles

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente En este capítulo definimos los requisitos del modelo para un sistema centrado en la mejora de la calidad del código fuente.

Más detalles

INTELIGENCIA DE NEGOCIOS CON SQL SERVER 2008 R2

INTELIGENCIA DE NEGOCIOS CON SQL SERVER 2008 R2 Programa de Capacitación y Certificación. INTELIGENCIA DE NEGOCIOS CON SQL SERVER 2008 R2 Contenido PERFIL DE UN ESPECIALISTA EN BASES DE DATOS.... 3 6231. MANTENIENDO UNA BASE DE DATOS DE SQL SERVER 2008

Más detalles

Monitoreo de red. Inventario de hardware y software. Monitoreo actividad del usuario. Soporte a usuarios. Protección contra fuga de datos.

Monitoreo de red. Inventario de hardware y software. Monitoreo actividad del usuario. Soporte a usuarios. Protección contra fuga de datos. nvision Es una solución modular que permite gestionar la red, llevar el control y cumplimiento de licencias inventario de hardware y software de equipos Windows, monitorear la actividad que realizan diariamente

Más detalles

ÍNDICE CAPÍTULO 1. TIPOS DE ALMACENAMIENTO DE LA INFORMACIÓN... 13

ÍNDICE CAPÍTULO 1. TIPOS DE ALMACENAMIENTO DE LA INFORMACIÓN... 13 ÍNDICE CAPÍTULO 1. TIPOS DE ALMACENAMIENTO DE LA INFORMACIÓN... 13 1.1 SISTEMAS LÓGICOS DE ALMACENAMIENTO DE LA INFORMACIÓN...13 1.2 ALMACENAMIENTO EN FICHEROS...13 1.2.1 Registros físicos y registros

Más detalles

RAID. Los detalles de las características segunda y tercera, cambian según los distintos niveles RAID. RAID 0 no soporta la tercera característica.

RAID. Los detalles de las características segunda y tercera, cambian según los distintos niveles RAID. RAID 0 no soporta la tercera característica. RAID Como se dijo anteriormente, el ritmo de mejora de prestaciones en memoria secundaria ha sido considerablemente menor que en procesadores y en memoria principal. Esta desigualdad ha hecho, quizás,

Más detalles

Arquitectura de Aplicaciones

Arquitectura de Aplicaciones 1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento

Más detalles

Ventajas, Características y Aplicaciones de los SGBD Distribuidos.

Ventajas, Características y Aplicaciones de los SGBD Distribuidos. Ventajas, Características y Aplicaciones de los SGBD Distribuidos. Definición Un SBD Distribuido se compone de un conjunto de sitios, conectados entre sí mediante algún tipo de red de comunicaciones, en

Más detalles

ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS

ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS Base de Datos ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS Una base de datos es un conjunto de elementos de datos que se describe a sí mismo, con relaciones entre esos elementos, que presenta

Más detalles

Jhon Jairo Padilla Aguilar, PhD.

Jhon Jairo Padilla Aguilar, PhD. Redes de Datos-Redes WAN Jhon Jairo Padilla Aguilar, PhD. UPB Bucaramanga Red WAN WAN: Wide Area Network Pueden cubrir un país entero Requieren de Nodos que recogen/distribuyen la información de los usuarios

Más detalles

PROYECTO ADMINISTRACIÓN ORACLE ENTERPRISE MANAGER

PROYECTO ADMINISTRACIÓN ORACLE ENTERPRISE MANAGER PROYECTO ADMINISTRACIÓN ORACLE ENTERPRISE MANAGER Proyecto de administración avanzada Alejandro Romero Abadía 1 Este proyecto consiste en una explicación de las funciones que ofrece la consola web de administración

Más detalles

LABORATORIO 10. Concurrencia y bloqueos en el SMBD Oracle

LABORATORIO 10. Concurrencia y bloqueos en el SMBD Oracle LABORATORIO 10. Concurrencia y bloqueos en el SMBD Oracle GUÍA DE LABORATORIO Nº 10 Actividad de Proyecto No. 5: Desarrollar mantenimiento preventivo, correctivo o proactivo para garantizar niveles de

Más detalles

Respaldo Cloud. Preguntas Frecuentes. Versión 1.0

Respaldo Cloud. Preguntas Frecuentes. Versión 1.0 Respaldo Cloud Preguntas Frecuentes Versión 1.0 1. Contenidos Manual de usuario para Respaldo Cloud 1 GENERAL... 4 1.1 Qué es Respaldo Cloud?... 4 1.2 Qué necesito para usar Respaldo Cloud?... 4 1.3 Cuáles

Más detalles

Programación páginas web JavaScript y PHP

Programación páginas web JavaScript y PHP Programación páginas web JavaScript y PHP Curso de desarrollo de aplicaciones web. Para ello se estudia la programación de la parte cliente con JavaScript y la programación de la parte servidor con la

Más detalles

Características de OpenCms

Características de OpenCms Características de OpenCms Se basa en Java y Xml OpenCms está totalmente desarrollado en java bajo el estándar servlet. Por lo tanto, se puede integrar fácilmente en entornos hardware y software existentes,

Más detalles

DEPARTAMENTO ADMINISTRATIVO NACIONAL DE ESTADÍSTICA. Oficina de Sistemas

DEPARTAMENTO ADMINISTRATIVO NACIONAL DE ESTADÍSTICA. Oficina de Sistemas DEPARTAMENTO ADMINISTRATIVO NACIONAL DE ESTADÍSTICA Oficina de Sistemas INFRAESTRUCTURA BASE DE DATOS Mayo de 2011 TABLA DE CONTENIDO 1. TIPO DE BASE DE DATOS... 3 2. BALANCEO DE CARGA PARA SERVIDORES

Más detalles

1. Instala servicios de configuración dinámica, describiendo sus características y aplicaciones.

1. Instala servicios de configuración dinámica, describiendo sus características y aplicaciones. Módulo Profesional: Servicios en Red. Código: 0227. Resultados de aprendizaje y criterios de evaluación. 1. Instala servicios de configuración dinámica, describiendo sus características y aplicaciones.

Más detalles

LABORATORIO 6. Gestión del Rendimiento en el SMBD Oracle.

LABORATORIO 6. Gestión del Rendimiento en el SMBD Oracle. LABORATORIO 6. Gestión del Rendimiento en el SMBD Oracle. GUÍA DE LABORATORIO Nº 6 Actividad de Proyecto No. 4: ESTABLECER LOS NIVELES DE SERVICIO DE ACUERDO CON ESTANDARES Y REQUERIMIENTOS DE LA ORGANIZACIÓN.

Más detalles

Análisis de desempeño y modelo de escalabilidad para SGP

Análisis de desempeño y modelo de escalabilidad para SGP Análisis de desempeño y modelo de escalabilidad para SGP Este documento es producto de la experiencia de Analítica en pruebas de stress sobre el software SGP. Estas pruebas se realizaron sobre un proceso

Más detalles

Tema 32. Adm. de BBDD: motores, gestión del espacio, seguridad, rendimiento, servicios de red, backup.

Tema 32. Adm. de BBDD: motores, gestión del espacio, seguridad, rendimiento, servicios de red, backup. Tema 32. Adm. de BBDD: motores, gestión del espacio, seguridad, rendimiento, servicios de red, backup. Introducción... 1 Los motores de Bases de Datos... 2 Gestión del almacenamiento... 3 Gestión del espacio

Más detalles

Tema: Disparadores Parte I.

Tema: Disparadores Parte I. Base de datos I. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos I Tema: Disparadores Parte I. Objetivo Utilizar la sintaxis de un disparador en SQL Server Implementar transacciones

Más detalles

EL ENTORNO DE TRABAJO SQL ORACLE

EL ENTORNO DE TRABAJO SQL ORACLE PREVIO 2 EL ENTORNO DE TRABAJO SQL ORACLE Y LENGUAJE DE DEFINICIÓN DE DATOS DDL) INTRODUCCIÓN A ORACLE Oracle10g es de las últimas versiones de esté manejador de base de datos, incorpora la tecnología

Más detalles

13º Unidad Didáctica. RAID (Redundant Array of Independent Disks) Eduard Lara

13º Unidad Didáctica. RAID (Redundant Array of Independent Disks) Eduard Lara 13º Unidad Didáctica RAID (Redundant Array of Independent Disks) Eduard Lara 1 RAID: INTRODUCCIÓN Sistema de almacenamiento que usa múltiples discos duros entre los que distribuye o replica los datos.

Más detalles

Auditoría de un PC con el pograma Aida32(ahora se llama EVEREST)

Auditoría de un PC con el pograma Aida32(ahora se llama EVEREST) Auditoría de un PC con el pograma Aida32(ahora se llama EVEREST) Cuando hablamos de auditoría lo primero que nos viene a la cabeza es una pregunta: por qué necesito auditar un ordenador? Son varios los

Más detalles

WINDOWS 2008 7: COPIAS DE SEGURIDAD

WINDOWS 2008 7: COPIAS DE SEGURIDAD 1.- INTRODUCCION: WINDOWS 2008 7: COPIAS DE SEGURIDAD Las copias de seguridad son un elemento fundamental para que el trabajo que realizamos se pueda proteger de aquellos problemas o desastres que pueden

Más detalles

protección y replicación remota de datos dib backup Copias de seguridad remotas vía Internet de grandes volúmenes de información

protección y replicación remota de datos dib backup Copias de seguridad remotas vía Internet de grandes volúmenes de información protección y replicación remota de datos dib backup remoto Novedades versión 4.0.5 Febrero 2006 Copias de seguridad remotas vía Internet de grandes volúmenes de información dib backup permite realizar

Más detalles

2. ESTUDIO DE INDICES

2. ESTUDIO DE INDICES Asignatura de Administración de Bases de Datos Curso 2011/2012 Pág. 1 PRÁCTICA DE ADMINISTRACIÓN DE BASES DE DATOS Una compañía de salud gestiona datos relativos a las consultas médicas a pacientes por

Más detalles

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX En este manual se presenta el proceso de configuración de una Maquina Virtual en VirtualBox, que será utilizada para instalar un Servidor

Más detalles

1.264 Tema 8. SQL (cont.) ODBC

1.264 Tema 8. SQL (cont.) ODBC 1.264 Tema 8 SQL (cont.) ODBC Subconsultas Las subconsultas de SQL nos permiten utilizar los resultados de una consulta como parte de otra. Subconsultas: A menudo, constituyen un modo natural de escribir

Más detalles

3 Consultas y subconsultas

3 Consultas y subconsultas 3 Consultas y subconsultas En SQL, la sentencia SELECT permite escribir una consulta o requerimiento de acceso a datos almacenados en una base de datos relacional. Dichas consultas SQL van desde una operación

Más detalles

Contenido. Sistema de archivos. Operaciones sobre archivos. Métodos de acceso a archivos. Directorio. Sistema de archivos por capas.

Contenido. Sistema de archivos. Operaciones sobre archivos. Métodos de acceso a archivos. Directorio. Sistema de archivos por capas. Contenido Sistema de archivos Operaciones sobre archivos Métodos de acceso a archivos Directorio Sistema de archivos por capas Espacio libre Sistema de archivos Proporciona el mecanismo para el almacenamiento

Más detalles

Almacenamiento y Recuperación de la Información

Almacenamiento y Recuperación de la Información Almacenamiento y Recuperación de la Información Estructuras basicas de archivos Archivos Secuenciales 2do Semestre 2005 Wenceslao Palma M. www.inf.utfsm.cl/~wpalma/ari Una estructura

Más detalles

Actualizador de cachés OpenGIS MANUAL DE USUARIO

Actualizador de cachés OpenGIS MANUAL DE USUARIO SISTEMA DE INFORMACIÓN GEOGRÁFICA DE IDENTIFICACIÓN DE PARCELAS AGRÍCOLAS Actualizador de cachés MANUAL DE USUARIO Proyecto: SIGPAC Fecha: 29/09/2014 Ref.: v.1.5 CONTENIDO Presentación... 3 Requisitos...

Más detalles