Percona Toolkit y lo novedoso en MySQL 5.7 Simon J Mudd Madrid MySQL Users Group 13 de mayo de 2015 Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 1 / 34 ¿Quién soy? Simon J Mudd Senior Database Administrator Trabaja en booking.com desde 2007 Anteriormente trabajó en los mercados financieros Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 2 / 34 Que temas vamos a tratar? Percona Toolkit – herramientas muy útiles para el DBA MySQL 5.7 – las novedades que va a traer Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 3 / 34 Aclaración Las ideas y observaciones en esta presentación son mı́as y no las de mi empleador. Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 4 / 34 Percona Toolkit ¿Qué es? Evolución ¿Por qué es útil? ¿Qué utilidades trae? Ejemplos Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 5 / 34 ¿Qué es? Son unas utilidades que permiten simplificar muchas tareas de administración de servidores MySQL. Las herramientas están desarrolladas y soportadas por Percona Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 6 / 34 Evolución Originó como Maatkit, Advanced command-line tools for open-source databases. (2007-2012) Cambió de nombre a Percona Toolkit 1.0 en diciembre 2011 La versión 2.0 salió en enero 2012 La versión 2.1 salió en abril 2012 La versión 2.2 salió en marzo 2013 La última versión es 2.2.14 y es de abril de 2015 Esta versión contiene 32 utilidades Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 7 / 34 ¿Por qué es útil? tradicionalmente el servidor de MySQL era bastante básico y traı́a pocas herramientas de gestión muchas tareas de gestión de un servidor MySQL son iguales: todos nos enfrentamos a resolver los mismos problemas las herramientas de Percona Toolkit intentan simplificar estas tareas son herramientas gratuitas Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 8 / 34 ¿Qué utilidades trae? No puedo describir todas las herramientas en detalle Comentaré algunos que pueden ser de utlidad. Mirad la documentación de Percona para ver más detalles o para ver todas las herramientas. Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 9 / 34 Utilidades 1/4 pt-archiver – archivar (copiar y eliminar) filas de una tabla a otra tabla o archivo pt-config-diff – comparar las configuración entre dos servidores o entre un archivo /etc/my.cnf y un servidor pt-diskstats – muestra la E/S de un servidor de una manera útil para el DBA, no solo operaciones, pero también porcentaje de uso de los discos. pt-duplicate-key-checker – ayudarte a encontrar ı́ndices que son redundantes Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 10 / 34 Utilidades 2/4 pt-heartbeat – poder determinar los retrasos de replicación parece sencillo, pero no siempre funciona como esperas (seconds behind master no siempre funciona.) Esta herramienta permite injectar un pulso y luego medir el retraso en su llegada a un esclavo. pt-kill – herramienta para matar determinadas conexiones a un servidor MySQL dada algunas condiciones depterminadas pt-online-schema-change – si necesitas cambiar una tabla grande y el bloqueo que un ALTER TABLE puede provocar es demasiado intruso entonces necesitas esta herramienta. Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 11 / 34 Utilidades 3/4 pt-query-digest – mediante la capture via SHOW PROCESSLIST o tcpdump de tráfico en un servidor MySQL se puede analizar las consultas y sacar unos informes sobre las consultas más lentas e histogramas de tiempo de ejecución de las mismas. pt-show-grants – mostrar todos los grants (permisos) de un servidor MySQL pt-slave-delay – provocar un restraso deliberado de replicacion en un esclavo. Útil para hacer pruebas y quizá porque quieres tener un esclavo con un restraso deliberado para ayudar en la recuperación de datos perdidos debido a errores de código. Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 12 / 34 Utilidades 4/4 pt-slave-restart – reaundar replicación si ves ciertos errores, quizá después de una caı́da de servidor pt-stalk – esperar a ciertas condiciones inusuales en el servidor para poder capturar el estado y analizar después la causa pt-table-checksum – buscar diferencias en una tabla entre el maestro y los esclavos pt-table-sync – sincronizar el contenido de 2 tablas Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 13 / 34 Ejemplo – pt-show-grants $ pt - show - grants | head -- Grants dumped by pt - show - grants -- Dumped from server Localhost via UNIX socket , MySQL 5.6. XX - log at 2015 - XX - XX XX : XX : XX -- Grants for ’ user1 ’@ ’10.% ’ GRANT USAGE ON *.* TO ’ user1 ’@ ’ 10.% ’ IDENTIFIED BY PASSWORD ’* X X X X X X X X X X X X X X X X X X X X X 3 4 B 2 4 1 9 9 7 6 7 1 6 8 D D 2 0 F ’; -- Grants for ’ user2 ’@ ’10.% ’ GRANT REPLICATION CLIENT ON *.* TO ’ user2 ’@ ’ 10.% ’ IDENTIFIED BY PASSWORD ’* X X X X X X X X X X X X X X X X X X X X X X X X X X 1 9 9 7 6 7 1 6 8 D D 2 0 F ’; GRANT CREATE TEMPORARY TABLES , DELETE , EXECUTE , INSERT , LOCK TABLES , SELECT , UPDATE ON ‘db ‘.* TO ’ user2 ’@ ’ 10.% ’; -- Grants for ’ user2 ’@ ’127.0.0.1 ’ GRANT REPLICATION CLIENT ON *.* TO ’ user2 ’@ ’ 127.0.0.1 ’ IDENTIFIED BY PASSWORD ’* X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 7 6 7 1 6 8 D D 2 0 F ’; GRANT CREATE TEMPORARY TABLES , DELETE , EXECUTE , INSERT , LOCK TABLES , SELECT , UPDATE ON ‘db ‘.* TO ’ user2 ’@ ’ 127.0.0.1 ’; $ Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 14 / 34 Ejemplo – pt-diskstats $ pt - diskstats -- devices - regex = dm -2 # ts device rd_s rd_avkb rd_mb_s rd_mrg rd_cnc wr_rt busy in_prg io_s qtime stime 0.9 dm -2 27.7 16.0 0.4 0% 0.2 0.6 47% 0 910.7 0.3 0.5 1.0 dm -2 34.0 15.3 0.5 0% 0.3 0.9 39% 0 330.0 0.5 1.2 1.0 dm -2 32.0 16.0 0.5 0% 0.2 0.6 46% 1 913.0 0.3 0.5 1.0 dm -2 37.0 16.0 0.6 0% 0.2 0.5 40% 0 491.0 0.2 0.8 1.0 dm -2 61.0 15.8 0.9 0% 0.3 0.6 49% 1 902.0 0.3 0.5 1.0 dm -2 65.0 15.3 1.0 0% 0.4 0.6 48% 0 498.0 0.3 1.0 1.0 dm -2 34.0 15.3 0.5 0% 0.2 0.6 43% 1 805.0 0.3 0.5 1.0 dm -2 28.0 16.0 0.4 0% 0.2 0.5 32% 0 384.0 0.1 0.8 1.0 dm -2 48.0 15.5 0.7 0% 0.3 0.5 47% 0 814.0 0.3 0.6 1.0 dm -2 53.0 15.8 0.8 0% 0.3 0.4 41% 0 485.0 0.2 0.8 1.0 dm -2 34.0 14.9 0.5 0% 0.4 1.2 68% 0 642.0 0.7 1.1 ... Simon J Mudd (Madrid MySQL Users Group) rd_rt wr_s wr_avkb wr_mb_s wr_mrg wr_cnc 7.5 883.0 8.5 296.0 4.6 1.3 0% 0.3 7.0 881.0 12.4 10.7 0% 0.5 6.7 454.0 4.7 2.1 0% 0.2 4.9 841.0 12.8 10.5 0% 0.5 5.8 433.0 4.7 2.0 0% 0.2 5.9 771.0 13.5 10.2 0% 0.5 7.0 356.0 4.7 1.6 0% 0.2 6.1 766.0 13.5 10.1 0% 0.4 6.2 432.0 5.1 2.2 0% 0.2 10.6 608.0 10.2 6.1 0% 0.7 Madrid MySQL Users Group 13.2 11.4 0% 0.5 13 de mayo de 2015 15 / 34 Otras consideraciones Originalmente no habı́a otras herramientas de este tipo. Desde los comienzos de Maatkit y Percona Toolkit MySQL ha mejorado considerablemente. Por lo tanto algunas funcionalidades ya no son tan necesarias. Merece la pena mira MySQL Utilities – la solucion de Oracle . . . Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 16 / 34 Enlaces Percona http://www.percona.com percona Toolkit https://www.percona.com/software/percona-toolkit Maatkit https://code.google.com/p/maatkit/ Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 17 / 34 MySQL 5.7 Novedades ¿Qué es? ¿Desde cuándo? (la evolución de las versiones de desarrollo) Caracterı́sticas nuevas Cambios en la configuración Estado actual ¿Por qué probarlo ahora? enlaces Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 18 / 34 Primero – ¿qué versiones usáis actualmente? Yo trabajo con MySQL 5.5, 5.6 y unos sistemas de 5.7 ¿y vosotros? Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 19 / 34 ¿Desde cuándo? El 07-11-2012 salió MySQL 5.6.8, la primera versión de producción de MySQL 5.6. Desde entonces Oracle empezó el desarrollo de la versión 5.7. Oracle utiliza la siguiente denominación: las versiones de producción: GA – General Availability las versiones de desarollo: DMR – Development Milestone Release Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 20 / 34 Evolución de las versiones de desarrollo MySQL MySQL MySQL MySQL MySQL MySQL MySQL 5.7.1 5.7.2 5.7.3 5.7.4 5.7.5 5.7.6 5.7.7 (2013-04-23, (2013-09-21, (2013-12-03, (2014-03-31, (2014-09-25, (2015-03-09, (2015-04-08, Simon J Mudd (Madrid MySQL Users Group) Milestone 11) Milestone 12) Milestone 13) Milestone 14) Milestone 15) Milestone 16) Release Candidate) Madrid MySQL Users Group 13 de mayo de 2015 21 / 34 Caracterı́sticas Nuevas MySQL 5.7 trae muchas mejoras con respeto a 5.6. Aquı́ podemos mencionar: mejoras de seguridad mejoras de replicación mejoras en el logging mejoras en performance schema mejoras en InnoDB Intentaré dar un poco más información sobre estos cambios en las siguientes páginas. Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 22 / 34 Mejoras de Seguridad Se inializa el servidor con mysqld --initialize ya no se crea el famoso base de datos test solamente se crea el usuario root@localhost Se puede bloquear las cuentas de usuarios Nuevas polı́tcas de caducidad para contraseñas Se cambian los usuarios con el nuevo comando ALTER USER SSL MySQL intentará utilizar SSL si puede y trae herramientas para crear certificados SSL Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 23 / 34 Mejoras de Replicación replicación multi-fuente, un eslavo puede replicar de más de un maestro configuración más dinámica, ciertos filtros de replicación que antes eran estáticas ya no lo son tablas de performance schema dedicadas a temas de replicación La replicación dentro de la misma base de datos se puede realizar en paralelo En 5.6 se podı́a realizar en paralelo varias transacciones en diferentes bases de datos. Ahora se puede hacer dentro de la misma base de datos. Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 24 / 34 Mejoras en el Logging soporte en mysqld para --syslog El logging de los cambios ya esta en UTC, no la hora local del servidor log error verbosity sustituye a log warnings Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 25 / 34 Mejoras en performance schema tablas de replicación – para poder ver que hacen los hilos de replicación tablas de locking – información sobre algunos locks globales que antes no eran visibles 5.7 ya incorpora oficialmente las vistas sys que facilitan las visualizacion de la información en P S Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 26 / 34 Mejoras en InnoDB Oracle continua el desarrollo en InnoDB y la major parte de los cambios se ven aquı́ Las tablas temporales ya son por defecto de InnoDB y tienen su propio tablespace Soporte para tipos de datos espaciales e ı́ndices sobre estos tipos de datos (GIS) Recuperación más rápida cuando hay muchas tablas InnoDB después de una caı́da del servidor Mejoras en el vaciado de buffers mediante multiples hilos page cleaners Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 27 / 34 Mejoras en InnoDB – 2 Más cambios de tablas en lı́nea sin provocar bloqueos Cambio dinámico en el tamaño del innodb buffer pool Soporte para tablespaces Soporte para EXPLAIN para consultas que se están ejecutando Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 28 / 34 Temas que tener en cuenta deprecated los siguientes modes de sql mode: ERROR FOR DIVISION BY ZERO, NO ZERO DATE y NO ZERO IN DATE El comando SHOW GRANTS ya no muestra el hash de la clave hay que usar SHOW CREATE USER Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 29 / 34 Estado Actual de MySQL 5.7 5.7.7 has sido anunciado como ’release candidate’ todavı́a hay algunos temas pendientes de resolver pero se supone que ya no cambiará la funcionalidad actual. Solamente se resolverán los bugs. Ası́ es un buen momento para empezar a mirarlo. Oracle Open World 2015 Se celebrará en octubre en San Francisco Como muy tarde 5.7 se anunciará GA en este evento Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 30 / 34 Observaciones Facilitará nuestro trabajo y evitará más arranques innecesarios para cambios de configuración Tres años es mucho tiempo para esperar 5.7 GA – el mundo está cambiando más rápido Hay competencia con MariaDB, Percona y WebScaleSQL – hay que estar pendiente Con esta versión Oracle no ofrece algo más rápido – para algo como MySQL una versión más lenta podrı́a ser problemático Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 31 / 34 Enlaces http: //dev.mysql.com/doc/relnotes/mysql/5.7/en/index.html https: //dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html https://www.mysql.com/news-and-events/web-seminars/ the-mysql-sys-schema/ Simon J Mudd (Madrid MySQL Users Group) Madrid MySQL Users Group 13 de mayo de 2015 32 / 34 ¿Preguntas? ¿Preguntas? Gracias Simon J Mudd <[email protected]>
© Copyright 2025