SlideShare una empresa de Scribd logo
1 de 59
Descargar para leer sin conexión
MySQL en la vida real


Muchos consejos obvios, pero útiles...




                                              Davide Ferrari
                                         System Administrator
MySQL hoy en día

    Desarrollado por Sun Microsystem
    Versión estable 5.1.x
         Ya está en beta la 5.4 y en alfa la 6.0
    Es la M de LAMP
    Ya es un proyecto maduro y algunos de los mitos
    de las versiones 3.23/4.0 hay que dejarlos atrás
    Vasto ecosistema opensource
    Hay un fork: Drizzle




30 Octubre 2009             PHP Conference Barcelona                  2
Resumen de las “nuevas” versiones

MySQL 5.1              MySQL 5.4
 Stable después de una  Originalmente no
 laaaaaarga gestación   planeada
 Añade arquitectura a   Orientada a las
 plugins, particiones,  mejoras en
 nueva replicación y    escalabilidad vertical y
 mucho más              rendimiento
 Vivió el cambio MySQL  100% made in Sun y la
 AB/Sun Microsystem     ultima así



30 Octubre 2009   PHP Conference Barcelona         3
Resumen de lo que vamos a ver hoy

    Replicación
         Master-slave(s)
         Master-master
         Otras formas
    DRBD (Distributed Replicated Block Device) y Heartbeat
    Consejos e ideas




30 Octubre 2009            PHP Conference Barcelona          4
La replicación en MySQL




                  Qué és la replicación?




30 Octubre 2009       PHP Conference Barcelona                 5
La replicación en MySQL




   Es hacer que todos los datos importantes en un
  servidor MySQL estén también en otro (o más) y se
       vayan actualizando de forma automática.




30 Octubre 2009     PHP Conference Barcelona                 6
La replicación en MySQL: más en detalle



    Ayuda a escalar en lectura




30 Octubre 2009        PHP Conference Barcelona         7
La replicación en MySQL: más en detalle



    Ayuda a escalar en lectura
    No ayuda a escalar en escritura. Olvidadlo.




30 Octubre 2009        PHP Conference Barcelona         8
La replicación en MySQL: más en detalle



    Ayuda a escalar en lectura
    No ayuda a escalar en escritura. Olvidadlo.
    Puede ayudar a mejorar la disponibilidad




30 Octubre 2009        PHP Conference Barcelona         9
La replicación en MySQL: más en detalle



    Ayuda a escalar en lectura
    No ayuda a escalar en escritura. Olvidadlo.
    Puede ayudar a mejorar la disponibilidad
    Puede dar dolores de cabeza




30 Octubre 2009        PHP Conference Barcelona        10
La replicación en MySQL: más en detalle



    Ayuda a escalar en lectura
    No ayuda a escalar en escritura. Olvidadlo.
    Puede ayudar a mejorar la disponibilidad
    Puede dar dolores de cabeza
         Cuando se rompe (y lo notas)




30 Octubre 2009           PHP Conference Barcelona       11
La replicación en MySQL: más en detalle



    Ayuda a escalar en lectura
    No ayuda a escalar en escritura. Olvidadlo.
    Puede ayudar a mejorar la disponibilidad
    Puede dar dolores de cabeza
         Cuando se rompe (y lo notas)
         Cuando se corrompe (y no lo notas)




30 Octubre 2009           PHP Conference Barcelona       12
La replicación en MySQL: más en detalle

    Hasta la 5.0, estaba basada en sentencias planas (SBL –
    Statements Based Replic.).
         Falla en algunos casos como por ejemplo UUID(),
         UPDATE|DELETE … LIMIT sin ORDER BY etc
    >= 5.1, soporta una replicación basada en rows (RBR – Row
    Based Replic.) o sea transmitiendo el valor y no la sentencia
    SQL
         Genera un binlog mucho más grande
         Protege de los fallos de la SBR
    También hay una modalidad mixta, que se basa en SBR
    pero utiliza RBR en casos concretos



30 Octubre 2009           PHP Conference Barcelona             13
La replicación en MySQL: más en detalle

    La replicación es un proceso asincrono




30 Octubre 2009        PHP Conference Barcelona        14
La replicación en MySQL: más en detalle

    La replicación es un proceso asincrono
    La replicación es un proceso mono-thread, se
    pierde el paralelismo de las peticiones y, por lo
    tanto, es generalmente más lento que los updates
    directos en el master




30 Octubre 2009        PHP Conference Barcelona         15
La replicación en MySQL: más en detalle

    La replicación un proceso asincrono
    La replicación es un proceso mono-thread, por lo
    tanto se pierde el paralelismo de las peticiones y,
    por lo tanto, es generalmente más lento que los
    updates directos en el master
    Bueno no, en realidad hay dos threads en el slave.
    I/O thread y SQL thread. Uno lee el binlog remoto y
    lo copia en el relay log locale y el otro ejecuta el
    relay log



30 Octubre 2009        PHP Conference Barcelona        16
Master - Slave(s)

    Sin dudas és la topología de replicación más
    común




30 Octubre 2009       PHP Conference Barcelona                  17
Master - Slave(s)

    Sin dudas és la topología de replicación más
    común
    Hay un master donde van las escrituras...




30 Octubre 2009       PHP Conference Barcelona                  18
Master - Slave(s)

    Sin dudas és la topología de replicación más
    común
    Hay un master donde van las escrituras...
         … y algunas lecturas




30 Octubre 2009           PHP Conference Barcelona                  19
Master - Slave(s)

    Sin dudas és la topología de replicación más
    común
    Hay un master donde van las escrituras...
         … y algunas lecturas
         Cuidado con las SELECTs en transacciones (es ACID)




30 Octubre 2009          PHP Conference Barcelona                  20
Master - Slave(s)

    Sin dudas és la topología de replicación más
    común
    Hay un master donde van las escrituras...
         … y algunas lecturas
         Cuidado con las SELECTs en transacciones (es ACID)
    Hay N slaves donde van las lecturas...




30 Octubre 2009          PHP Conference Barcelona                  21
Master - Slave(s)

    Sin dudas és la topología de replicación más
    común
    Hay un master donde van las escrituras...
         … y algunas lecturas
         Cuidado con las SELECTs en transacciones (es ACID)
    Hay N slaves donde van las lecturas...
         … y escrituras. Si no, como se replican los datos? :)




30 Octubre 2009            PHP Conference Barcelona                  22
Master - Slave(s)




    Como distribuir el hardware entre master/slaves?




30 Octubre 2009      PHP Conference Barcelona                  23
Master - slave(s)

                                    Aparantemente, el
                                    master debe tener más
                                    hardware




30 Octubre 2009   PHP Conference Barcelona                  24
Master - slave(s)

                                    Aparantemente, el
                                    master debe tener más
                                    hardware
                                    Recibe todas las
                                    escrituras...




30 Octubre 2009   PHP Conference Barcelona                  25
Master - slave(s)




                       pero...




30 Octubre 2009   PHP Conference Barcelona                  26
Master - slave(s)

    En un contexto web, es
    mucho más probable
    que haya muchísimas
    más lecturas




30 Octubre 2009      PHP Conference Barcelona                  27
Master - slave(s)

    En un contexto web, es
    mucho más probable
    que haya muchísimas
    más lecturas
    Además, los esclavos
    hacen las mismas
    escrituras que el
    master




30 Octubre 2009      PHP Conference Barcelona                  28
Master - slave(s)




                  Más recursos a los esclavos!



30 Octubre 2009            PHP Conference Barcelona                  29
Master-Slave(s): consejos varios

    En los slaves poner siempre el parametro read-
    only en my.cnf. Ahorra muchos problemas.
    Evitar de mezclar versiones distintas entre master
    y slaves. Si hay que mezclar, el slave que sea más
    reciente que el master
    Si puedes tener 2 o más slaves, que 2 sean
    gemelos a nivel HW para poder hacer pruebas de
    tuning.
    Cada server obligatoriamente con su propio
    server ID. Falla todo si falta!!!


30 Octubre 2009       PHP Conference Barcelona          30
Master-Master




                  Qué es el master-master?




30 Octubre 2009         PHP Conference Barcelona              31
Master-Master




És un tipo de replicación entre 2 server donde ambos
                 son master y slave.
   Puede ser activo-pasivo (recomendado) o bien
                     activo-activo.




30 Octubre 2009     PHP Conference Barcelona              32
Master-Master: activo/activo

    No sirve para escalar en escritura
         Como mucho, se gana un poco más de paralelismo
    Si pasa algo con la replicación, es aún peor que un
    master-slave normal
    Puede ayudar a montar un site geograficamente
    distribuido




30 Octubre 2009           PHP Conference Barcelona               33
Master-Master: activo/pasivo

    No ayuda a escalar en escritura (ooooooh)
    Es una muy buena solución para la alta
    disponibilidad
    No sólo en caso de crash físico si no también de
    operaciones lógicas como una ALTER gorda
    MMM (Multi Master replication Manager) puede
    ayudar en la automatización del proceso.




30 Octubre 2009       PHP Conference Barcelona             34
Master-Master: parametros

    En configuración A/A es fundamental setear los
    auto_increment_increment = 2
    auto_increment_offset = N
    Tanto en A/A como en A/P
    log-slave-updates
    Aquí también no olvidarse de los server ID.




30 Octubre 2009      PHP Conference Barcelona              35
DRBD




 DRBD® es una solución 100% opensource de LinBit
   para la alta disponibilidad de un block device




30 Octubre 2009    PHP Conference Barcelona      36
DRBD más en detalle

    Disponible para todas las distro Linux
    Permite replicar bit a bit un disco en 2 servidores
    Transmite solo lo que escribes
    Está pensado para soluciones activo/pasivo
    Puede utilizar hardware totalmente estandar (se
    aconseja por lo menos una Ethernet Gbit dedicada)




30 Octubre 2009       PHP Conference Barcelona                    37
DRBD y MySQL

    MySQL en activo-pasivo con shared disk
    NO es un master-master. No hay replicación de
    Mysql, sólo la de DRBD a nivel de bloque
    2 servidores identicos a nivel de HW
    Mismo my.cnf en ambos




30 Octubre 2009      PHP Conference Barcelona              38
DRBD y MySQL




  Ok, ya tengo los datos en dos servidores, así que si
                 uno muere tengo otro.
              Pero... ¿como me entero?




30 Octubre 2009      PHP Conference Barcelona              39
DRBD y MySQL




  Ok, ya tengo los datos en dos servidores, así que si
                 uno muere tengo otro.
              Pero... ¿como me entero?

                  Usando Heartbeat


30 Octubre 2009      PHP Conference Barcelona              40
Cliente
Cliente
                                 Red interna                               Cliente



                                                                              Cliente




    IP real      IP virtual                      IP real



           MySQL                Heart Beat             MySQL




              sda1            Replicación DRBD             sda1
  Activo                                                          Pasivo

      Servidor A                                   Servidor B
MySQL, Heartbeat y DRBD




                  Y que pasa si Servidor A cae?




30 Octubre 2009           PHP Conference Barcelona             42
Cliente
Cliente
                     Red interna                             Cliente



                                                                Cliente




    IP real                        IP real      IP virtual


           DOWN
           MySQL                         MySQL




              sda1                           sda1
  Muerto                                            Activo

      Servidor A                     Servidor B
MySQL, Heartbeat y DRBD

    Cuando Servidor B se levanta, la base de datos en
    disco está en estado crashed




30 Octubre 2009      PHP Conference Barcelona             44
MySQL, Heartbeat y DRBD

    Cuando Servidor B se levanta, la base de datos en
    disco está en estado crashed
    Para InnoDB (u otros engines ACID) no es un
    problema crítico




30 Octubre 2009      PHP Conference Barcelona             45
MySQL, Heartbeat y DRBD

    Cuando Servidor B se levanta, la base de datos en
    disco está en estado crashed
    Para InnoDB (u otros engines ACID) no es un
    problema crítico
         Aunque si la BD es grande, puede tardar tiempo en
         recuperarse




30 Octubre 2009           PHP Conference Barcelona             46
MySQL, Heartbeat y DRBD

    Cuando Servidor B se levanta, la base de datos en
    disco está en estado crashed
    Para InnoDB (u otros engines ACID) no es un
    problema crítico
         Aunque si la BD es grande, puede tardar tiempo en
         recuperarse
    Las tablas MyISAM pueden corromperse de forma
    más o menos grave (sí, podrías perderlo todo)




30 Octubre 2009           PHP Conference Barcelona             47
Recordad!




                             ¡¡ BACKUP !!
   (sólo hay dos clases de administradores de sistemas: los que han perdido
                     datos y los que aún no lo han hecho)




30 Octubre 2009               PHP Conference Barcelona                        48
Backup – Algunas opciones

    mysqldump (el de toda la vida)
    mk-parallel-dump
    InnoDB Hot Backup
         De pago, de innodb.com (autores de InnoDB)
         Hace backup de InnoDB sin necesidad de parar MySQL
    xtrabackup
         Opensource, de Percona
         También hace hot backup, pero está más verde
    LVM + cold backup (mylvmbackup)
    Cold backup de un slave + copia de binlog

30 Octubre 2009          PHP Conference Barcelona            49
innodb_file_per_table

    innodb_file_per_table Sirve para separar cada tabla
    InnoDB en un archivo dedicado
       Permite recuperar espacio a nivel de SO si se borran tuplas
       Un simple ls y ya sabes cual es la tabla gorda
       Ocupa más file descriptors
       Hay que controlar el espacio que queda libre en disco




30 Octubre 2009           PHP Conference Barcelona               50
innodb_flush_method

    innodb_flush_method Determina como MySQL abre en
    lectura y escritura los archivos de datos (tablespace) y los
    transaction logs a nivel de SO. En *nix puede tener como valor:
       fdatasync (default) utiliza fsync() para los logs y los
       datafiles
       O_DSYNC utiliza O_SYNC para abrir y hacer flush de los
       logs y fsync() para hacer flush de los datafiles
       O_DIRECT utiliza O_DIRECT para abrir los datafiles y
       fsync() para el flush de logs y datos




30 Octubre 2009           PHP Conference Barcelona                    51
innodb_flush_method



                     fdatasync     O_DIRECT           O_DSYNC


                                   open() con
                      fsync()      O_DIRECT,            fsync()
       Tablespace
                                     fsync()


                                                      open() con
       Transaction    fsync()         fsync()
                                                       O_SYNC
           log




30 Octubre 2009                  PHP Conference Barcelona                    52
innodb_flush_method


                                WTF?
    O_SYNC y O_DIRECT son parametros opcionales de open()
       O_SYNC obliga a sincronizar los datos a disco cada vez
       que se quiere escribir algo en un archivo así abierto,
       bloqueando el retorno de la syscall. Las escrituras pero sì
       pasan por la cache del SO.
       O_DIRECT el kernel pone directamente en DMA la
       aplicación en userspace, deshabilitando al 100% el I/O
       buffer del SO. Se evita así el doble buffer (de SO e InnoDB
       en lectura, de SO y hardware en escritura)
    fsync(): si no hay O_SYNC se utiliza siempre, aunque exista
    fdatasync()



30 Octubre 2009           PHP Conference Barcelona                    53
innodb_flush_method



                     Buffer OS        Buffer HW       Media (disco)




                         Si               Si                  Si
         fsync()




       fsync() con      No                Si                  Si
       O_DIRECT


                                   Puede ser que
                     Si, locking                              Si
        O_SYNC                          no




30 Octubre 2009                    PHP Conference Barcelona                    54
Transaction log

    innodb_flush_log_at_trx_commit
         0 write y flush cada segundo, no cada transacción
         1 (default) write y flush del log de la memoria al disco
         cada transacción. Más seguro.
         2 write cada trx, flush cada segundo




30 Octubre 2009             PHP Conference Barcelona                55
maatkit

    Es un set de herramientas que facilitan la vida del
    administrador de MySQL
    mk-table-checksum permite comprobar que dos
    tablas replicadas sean realmente identicas
    mk-slave-delay permite mantener artificialmente un
    slave atrás en el tiempo. Util para recuperar datos
    despues de errores humanos
    mk-parallel-(dump|restore)
    mk-visual-explain
    etc


30 Octubre 2009       PHP Conference Barcelona        56
innotop

    Innotop es una herramienta parecida a top de Unix
    que permite visualizar datos de InnoDB en tiempo
    real
         Queries que se están ejecutando y sus detalles
         Explain directo de una kk-query que está tardando
         Estadisticas de buffer, flushs, writes, prune, consumo
         de memoria en tiempo real
    Fundamentalmente es un front-end a mysqladmin
    proc, mysqladmin ext, y suerte que existe



30 Octubre 2009            PHP Conference Barcelona               57
Links

    <--- Google's that way
    High Performance
    MySQL 2nd Edition (la
    biblia de MySQL)
    http://planet.mysql.com




30 Octubre 2009       PHP Conference Barcelona      58
Contactos

    Davide Ferrari
    Mail: vide80@gmail.com
    LinkedIn: http://www.linkedin.com/in/davideferrari
    Blog: http://anothersysadmin.wordpress.com


                      ¿Preguntas?




30 Octubre 2009       PHP Conference Barcelona           59

Más contenido relacionado

Destacado

Karimpol_BLP_DigitalFormat hall c pdf
Karimpol_BLP_DigitalFormat hall c pdfKarimpol_BLP_DigitalFormat hall c pdf
Karimpol_BLP_DigitalFormat hall c pdfPeter Smitala
 
Dog house club
Dog house clubDog house club
Dog house club14027318
 
Dossier idda mede
Dossier idda medeDossier idda mede
Dossier idda medeJavier Ruiz
 
Seminario 8 Fisiología del embarazo interacción materno infantil
Seminario 8 Fisiología del embarazo interacción materno infantilSeminario 8 Fisiología del embarazo interacción materno infantil
Seminario 8 Fisiología del embarazo interacción materno infantilMijail JN
 
Tips para hacer user research creativamente
Tips para hacer user research creativamenteTips para hacer user research creativamente
Tips para hacer user research creativamenteUX Nights
 
FINGUER TIP OXIMETER
FINGUER TIP OXIMETERFINGUER TIP OXIMETER
FINGUER TIP OXIMETERACN
 
Guia para elaboracion de plan operativo
Guia para elaboracion de plan operativoGuia para elaboracion de plan operativo
Guia para elaboracion de plan operativoVenicio Davila Rocano
 
Born to be accessible - Barrierefreie PDFs gemäß PDF/UA effizient erstellen
Born to be accessible - Barrierefreie PDFs gemäß PDF/UA effizient erstellenBorn to be accessible - Barrierefreie PDFs gemäß PDF/UA effizient erstellen
Born to be accessible - Barrierefreie PDFs gemäß PDF/UA effizient erstellenMarkus Erle
 
Tarifas canal uno 2012
Tarifas canal uno 2012Tarifas canal uno 2012
Tarifas canal uno 2012prensaycultura
 
Fitxa selectivitat gòtic: Chartres
Fitxa selectivitat gòtic: ChartresFitxa selectivitat gòtic: Chartres
Fitxa selectivitat gòtic: ChartresAssumpció Granero
 

Destacado (15)

Karimpol_BLP_DigitalFormat hall c pdf
Karimpol_BLP_DigitalFormat hall c pdfKarimpol_BLP_DigitalFormat hall c pdf
Karimpol_BLP_DigitalFormat hall c pdf
 
Dog house club
Dog house clubDog house club
Dog house club
 
Dossier idda mede
Dossier idda medeDossier idda mede
Dossier idda mede
 
Seminario 8 Fisiología del embarazo interacción materno infantil
Seminario 8 Fisiología del embarazo interacción materno infantilSeminario 8 Fisiología del embarazo interacción materno infantil
Seminario 8 Fisiología del embarazo interacción materno infantil
 
20130513 cubrix lezing van vkw
20130513 cubrix lezing van vkw20130513 cubrix lezing van vkw
20130513 cubrix lezing van vkw
 
Luis spota
Luis spotaLuis spota
Luis spota
 
Tips para hacer user research creativamente
Tips para hacer user research creativamenteTips para hacer user research creativamente
Tips para hacer user research creativamente
 
FINGUER TIP OXIMETER
FINGUER TIP OXIMETERFINGUER TIP OXIMETER
FINGUER TIP OXIMETER
 
Guia para elaboracion de plan operativo
Guia para elaboracion de plan operativoGuia para elaboracion de plan operativo
Guia para elaboracion de plan operativo
 
Born to be accessible - Barrierefreie PDFs gemäß PDF/UA effizient erstellen
Born to be accessible - Barrierefreie PDFs gemäß PDF/UA effizient erstellenBorn to be accessible - Barrierefreie PDFs gemäß PDF/UA effizient erstellen
Born to be accessible - Barrierefreie PDFs gemäß PDF/UA effizient erstellen
 
Babysitters brochure - Tinies
Babysitters brochure - TiniesBabysitters brochure - Tinies
Babysitters brochure - Tinies
 
Sigma Alpha Mu Foundation annual report
Sigma Alpha Mu Foundation annual reportSigma Alpha Mu Foundation annual report
Sigma Alpha Mu Foundation annual report
 
Tarifas canal uno 2012
Tarifas canal uno 2012Tarifas canal uno 2012
Tarifas canal uno 2012
 
Tendedero
TendederoTendedero
Tendedero
 
Fitxa selectivitat gòtic: Chartres
Fitxa selectivitat gòtic: ChartresFitxa selectivitat gòtic: Chartres
Fitxa selectivitat gòtic: Chartres
 

Similar a MySQL en la vida real: Replicación, DRBD y consejos

Hack Crack Samba
Hack  Crack SambaHack  Crack Samba
Hack Crack SambaHxC Store
 
scilab-manual
scilab-manualscilab-manual
scilab-manualfgu
 
Historia de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan SaccoHistoria de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan SaccoJuan Sacco
 
Ruby en linux
Ruby en linuxRuby en linux
Ruby en linuxvilna2011
 
Ruby en linux
Ruby en linuxRuby en linux
Ruby en linuxvilna2011
 
Interesante 206370780 configuracion-basica-de-samba
Interesante 206370780 configuracion-basica-de-sambaInteresante 206370780 configuracion-basica-de-samba
Interesante 206370780 configuracion-basica-de-sambaxavazquez
 
Ruby On Rails Jun2009
Ruby On Rails Jun2009Ruby On Rails Jun2009
Ruby On Rails Jun2009Sergio Alonso
 
Mariano Iglesias: Lithium - Un framework que pega como piña
Mariano Iglesias: Lithium - Un framework que pega como piñaMariano Iglesias: Lithium - Un framework que pega como piña
Mariano Iglesias: Lithium - Un framework que pega como piñaGrupo PHP Argentina
 
SQL Server 2017 soporte en Linux
SQL Server 2017 soporte en LinuxSQL Server 2017 soporte en Linux
SQL Server 2017 soporte en LinuxEduardo Castro
 
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883Ichinose 11
 
Taller de kumbiaPHP Mexico ITSJR
Taller de kumbiaPHP Mexico ITSJRTaller de kumbiaPHP Mexico ITSJR
Taller de kumbiaPHP Mexico ITSJRGovani Sanchez
 
40 Comandos básicos de Linux.docx
40 Comandos básicos de Linux.docx40 Comandos básicos de Linux.docx
40 Comandos básicos de Linux.docxGladys648508
 
Symfony, cloud computing y webs scalables - decharlas
Symfony, cloud computing y webs scalables - decharlasSymfony, cloud computing y webs scalables - decharlas
Symfony, cloud computing y webs scalables - decharlasDecharlas
 

Similar a MySQL en la vida real: Replicación, DRBD y consejos (20)

Hack x crack_samba
Hack x crack_sambaHack x crack_samba
Hack x crack_samba
 
Hack Crack Samba
Hack  Crack SambaHack  Crack Samba
Hack Crack Samba
 
scilab-manual
scilab-manualscilab-manual
scilab-manual
 
Chamilo portable 2016
Chamilo portable 2016Chamilo portable 2016
Chamilo portable 2016
 
Historia de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan SaccoHistoria de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan Sacco
 
Ruby en linux
Ruby en linuxRuby en linux
Ruby en linux
 
Ruby en linux
Ruby en linuxRuby en linux
Ruby en linux
 
Rendimiento extremo en php
Rendimiento extremo en phpRendimiento extremo en php
Rendimiento extremo en php
 
Interesante 206370780 configuracion-basica-de-samba
Interesante 206370780 configuracion-basica-de-sambaInteresante 206370780 configuracion-basica-de-samba
Interesante 206370780 configuracion-basica-de-samba
 
Expo taller i
Expo taller iExpo taller i
Expo taller i
 
Ruby On Rails Jun2009
Ruby On Rails Jun2009Ruby On Rails Jun2009
Ruby On Rails Jun2009
 
Mariano Iglesias: Lithium - Un framework que pega como piña
Mariano Iglesias: Lithium - Un framework que pega como piñaMariano Iglesias: Lithium - Un framework que pega como piña
Mariano Iglesias: Lithium - Un framework que pega como piña
 
SQL Server 2017 soporte en Linux
SQL Server 2017 soporte en LinuxSQL Server 2017 soporte en Linux
SQL Server 2017 soporte en Linux
 
JRuby Al Rescate J2EE
JRuby Al Rescate J2EEJRuby Al Rescate J2EE
JRuby Al Rescate J2EE
 
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883
 
Manual linux
Manual linuxManual linux
Manual linux
 
Taller de kumbiaPHP Mexico ITSJR
Taller de kumbiaPHP Mexico ITSJRTaller de kumbiaPHP Mexico ITSJR
Taller de kumbiaPHP Mexico ITSJR
 
My SQL
My SQLMy SQL
My SQL
 
40 Comandos básicos de Linux.docx
40 Comandos básicos de Linux.docx40 Comandos básicos de Linux.docx
40 Comandos básicos de Linux.docx
 
Symfony, cloud computing y webs scalables - decharlas
Symfony, cloud computing y webs scalables - decharlasSymfony, cloud computing y webs scalables - decharlas
Symfony, cloud computing y webs scalables - decharlas
 

Último

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 

Último (15)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 

MySQL en la vida real: Replicación, DRBD y consejos

  • 1. MySQL en la vida real Muchos consejos obvios, pero útiles... Davide Ferrari System Administrator
  • 2. MySQL hoy en día Desarrollado por Sun Microsystem Versión estable 5.1.x Ya está en beta la 5.4 y en alfa la 6.0 Es la M de LAMP Ya es un proyecto maduro y algunos de los mitos de las versiones 3.23/4.0 hay que dejarlos atrás Vasto ecosistema opensource Hay un fork: Drizzle 30 Octubre 2009 PHP Conference Barcelona 2
  • 3. Resumen de las “nuevas” versiones MySQL 5.1 MySQL 5.4 Stable después de una Originalmente no laaaaaarga gestación planeada Añade arquitectura a Orientada a las plugins, particiones, mejoras en nueva replicación y escalabilidad vertical y mucho más rendimiento Vivió el cambio MySQL 100% made in Sun y la AB/Sun Microsystem ultima así 30 Octubre 2009 PHP Conference Barcelona 3
  • 4. Resumen de lo que vamos a ver hoy Replicación Master-slave(s) Master-master Otras formas DRBD (Distributed Replicated Block Device) y Heartbeat Consejos e ideas 30 Octubre 2009 PHP Conference Barcelona 4
  • 5. La replicación en MySQL Qué és la replicación? 30 Octubre 2009 PHP Conference Barcelona 5
  • 6. La replicación en MySQL Es hacer que todos los datos importantes en un servidor MySQL estén también en otro (o más) y se vayan actualizando de forma automática. 30 Octubre 2009 PHP Conference Barcelona 6
  • 7. La replicación en MySQL: más en detalle Ayuda a escalar en lectura 30 Octubre 2009 PHP Conference Barcelona 7
  • 8. La replicación en MySQL: más en detalle Ayuda a escalar en lectura No ayuda a escalar en escritura. Olvidadlo. 30 Octubre 2009 PHP Conference Barcelona 8
  • 9. La replicación en MySQL: más en detalle Ayuda a escalar en lectura No ayuda a escalar en escritura. Olvidadlo. Puede ayudar a mejorar la disponibilidad 30 Octubre 2009 PHP Conference Barcelona 9
  • 10. La replicación en MySQL: más en detalle Ayuda a escalar en lectura No ayuda a escalar en escritura. Olvidadlo. Puede ayudar a mejorar la disponibilidad Puede dar dolores de cabeza 30 Octubre 2009 PHP Conference Barcelona 10
  • 11. La replicación en MySQL: más en detalle Ayuda a escalar en lectura No ayuda a escalar en escritura. Olvidadlo. Puede ayudar a mejorar la disponibilidad Puede dar dolores de cabeza Cuando se rompe (y lo notas) 30 Octubre 2009 PHP Conference Barcelona 11
  • 12. La replicación en MySQL: más en detalle Ayuda a escalar en lectura No ayuda a escalar en escritura. Olvidadlo. Puede ayudar a mejorar la disponibilidad Puede dar dolores de cabeza Cuando se rompe (y lo notas) Cuando se corrompe (y no lo notas) 30 Octubre 2009 PHP Conference Barcelona 12
  • 13. La replicación en MySQL: más en detalle Hasta la 5.0, estaba basada en sentencias planas (SBL – Statements Based Replic.). Falla en algunos casos como por ejemplo UUID(), UPDATE|DELETE … LIMIT sin ORDER BY etc >= 5.1, soporta una replicación basada en rows (RBR – Row Based Replic.) o sea transmitiendo el valor y no la sentencia SQL Genera un binlog mucho más grande Protege de los fallos de la SBR También hay una modalidad mixta, que se basa en SBR pero utiliza RBR en casos concretos 30 Octubre 2009 PHP Conference Barcelona 13
  • 14. La replicación en MySQL: más en detalle La replicación es un proceso asincrono 30 Octubre 2009 PHP Conference Barcelona 14
  • 15. La replicación en MySQL: más en detalle La replicación es un proceso asincrono La replicación es un proceso mono-thread, se pierde el paralelismo de las peticiones y, por lo tanto, es generalmente más lento que los updates directos en el master 30 Octubre 2009 PHP Conference Barcelona 15
  • 16. La replicación en MySQL: más en detalle La replicación un proceso asincrono La replicación es un proceso mono-thread, por lo tanto se pierde el paralelismo de las peticiones y, por lo tanto, es generalmente más lento que los updates directos en el master Bueno no, en realidad hay dos threads en el slave. I/O thread y SQL thread. Uno lee el binlog remoto y lo copia en el relay log locale y el otro ejecuta el relay log 30 Octubre 2009 PHP Conference Barcelona 16
  • 17. Master - Slave(s) Sin dudas és la topología de replicación más común 30 Octubre 2009 PHP Conference Barcelona 17
  • 18. Master - Slave(s) Sin dudas és la topología de replicación más común Hay un master donde van las escrituras... 30 Octubre 2009 PHP Conference Barcelona 18
  • 19. Master - Slave(s) Sin dudas és la topología de replicación más común Hay un master donde van las escrituras... … y algunas lecturas 30 Octubre 2009 PHP Conference Barcelona 19
  • 20. Master - Slave(s) Sin dudas és la topología de replicación más común Hay un master donde van las escrituras... … y algunas lecturas Cuidado con las SELECTs en transacciones (es ACID) 30 Octubre 2009 PHP Conference Barcelona 20
  • 21. Master - Slave(s) Sin dudas és la topología de replicación más común Hay un master donde van las escrituras... … y algunas lecturas Cuidado con las SELECTs en transacciones (es ACID) Hay N slaves donde van las lecturas... 30 Octubre 2009 PHP Conference Barcelona 21
  • 22. Master - Slave(s) Sin dudas és la topología de replicación más común Hay un master donde van las escrituras... … y algunas lecturas Cuidado con las SELECTs en transacciones (es ACID) Hay N slaves donde van las lecturas... … y escrituras. Si no, como se replican los datos? :) 30 Octubre 2009 PHP Conference Barcelona 22
  • 23. Master - Slave(s) Como distribuir el hardware entre master/slaves? 30 Octubre 2009 PHP Conference Barcelona 23
  • 24. Master - slave(s) Aparantemente, el master debe tener más hardware 30 Octubre 2009 PHP Conference Barcelona 24
  • 25. Master - slave(s) Aparantemente, el master debe tener más hardware Recibe todas las escrituras... 30 Octubre 2009 PHP Conference Barcelona 25
  • 26. Master - slave(s) pero... 30 Octubre 2009 PHP Conference Barcelona 26
  • 27. Master - slave(s) En un contexto web, es mucho más probable que haya muchísimas más lecturas 30 Octubre 2009 PHP Conference Barcelona 27
  • 28. Master - slave(s) En un contexto web, es mucho más probable que haya muchísimas más lecturas Además, los esclavos hacen las mismas escrituras que el master 30 Octubre 2009 PHP Conference Barcelona 28
  • 29. Master - slave(s) Más recursos a los esclavos! 30 Octubre 2009 PHP Conference Barcelona 29
  • 30. Master-Slave(s): consejos varios En los slaves poner siempre el parametro read- only en my.cnf. Ahorra muchos problemas. Evitar de mezclar versiones distintas entre master y slaves. Si hay que mezclar, el slave que sea más reciente que el master Si puedes tener 2 o más slaves, que 2 sean gemelos a nivel HW para poder hacer pruebas de tuning. Cada server obligatoriamente con su propio server ID. Falla todo si falta!!! 30 Octubre 2009 PHP Conference Barcelona 30
  • 31. Master-Master Qué es el master-master? 30 Octubre 2009 PHP Conference Barcelona 31
  • 32. Master-Master És un tipo de replicación entre 2 server donde ambos son master y slave. Puede ser activo-pasivo (recomendado) o bien activo-activo. 30 Octubre 2009 PHP Conference Barcelona 32
  • 33. Master-Master: activo/activo No sirve para escalar en escritura Como mucho, se gana un poco más de paralelismo Si pasa algo con la replicación, es aún peor que un master-slave normal Puede ayudar a montar un site geograficamente distribuido 30 Octubre 2009 PHP Conference Barcelona 33
  • 34. Master-Master: activo/pasivo No ayuda a escalar en escritura (ooooooh) Es una muy buena solución para la alta disponibilidad No sólo en caso de crash físico si no también de operaciones lógicas como una ALTER gorda MMM (Multi Master replication Manager) puede ayudar en la automatización del proceso. 30 Octubre 2009 PHP Conference Barcelona 34
  • 35. Master-Master: parametros En configuración A/A es fundamental setear los auto_increment_increment = 2 auto_increment_offset = N Tanto en A/A como en A/P log-slave-updates Aquí también no olvidarse de los server ID. 30 Octubre 2009 PHP Conference Barcelona 35
  • 36. DRBD DRBD® es una solución 100% opensource de LinBit para la alta disponibilidad de un block device 30 Octubre 2009 PHP Conference Barcelona 36
  • 37. DRBD más en detalle Disponible para todas las distro Linux Permite replicar bit a bit un disco en 2 servidores Transmite solo lo que escribes Está pensado para soluciones activo/pasivo Puede utilizar hardware totalmente estandar (se aconseja por lo menos una Ethernet Gbit dedicada) 30 Octubre 2009 PHP Conference Barcelona 37
  • 38. DRBD y MySQL MySQL en activo-pasivo con shared disk NO es un master-master. No hay replicación de Mysql, sólo la de DRBD a nivel de bloque 2 servidores identicos a nivel de HW Mismo my.cnf en ambos 30 Octubre 2009 PHP Conference Barcelona 38
  • 39. DRBD y MySQL Ok, ya tengo los datos en dos servidores, así que si uno muere tengo otro. Pero... ¿como me entero? 30 Octubre 2009 PHP Conference Barcelona 39
  • 40. DRBD y MySQL Ok, ya tengo los datos en dos servidores, así que si uno muere tengo otro. Pero... ¿como me entero? Usando Heartbeat 30 Octubre 2009 PHP Conference Barcelona 40
  • 41. Cliente Cliente Red interna Cliente Cliente IP real IP virtual IP real MySQL Heart Beat MySQL sda1 Replicación DRBD sda1 Activo Pasivo Servidor A Servidor B
  • 42. MySQL, Heartbeat y DRBD Y que pasa si Servidor A cae? 30 Octubre 2009 PHP Conference Barcelona 42
  • 43. Cliente Cliente Red interna Cliente Cliente IP real IP real IP virtual DOWN MySQL MySQL sda1 sda1 Muerto Activo Servidor A Servidor B
  • 44. MySQL, Heartbeat y DRBD Cuando Servidor B se levanta, la base de datos en disco está en estado crashed 30 Octubre 2009 PHP Conference Barcelona 44
  • 45. MySQL, Heartbeat y DRBD Cuando Servidor B se levanta, la base de datos en disco está en estado crashed Para InnoDB (u otros engines ACID) no es un problema crítico 30 Octubre 2009 PHP Conference Barcelona 45
  • 46. MySQL, Heartbeat y DRBD Cuando Servidor B se levanta, la base de datos en disco está en estado crashed Para InnoDB (u otros engines ACID) no es un problema crítico Aunque si la BD es grande, puede tardar tiempo en recuperarse 30 Octubre 2009 PHP Conference Barcelona 46
  • 47. MySQL, Heartbeat y DRBD Cuando Servidor B se levanta, la base de datos en disco está en estado crashed Para InnoDB (u otros engines ACID) no es un problema crítico Aunque si la BD es grande, puede tardar tiempo en recuperarse Las tablas MyISAM pueden corromperse de forma más o menos grave (sí, podrías perderlo todo) 30 Octubre 2009 PHP Conference Barcelona 47
  • 48. Recordad! ¡¡ BACKUP !! (sólo hay dos clases de administradores de sistemas: los que han perdido datos y los que aún no lo han hecho) 30 Octubre 2009 PHP Conference Barcelona 48
  • 49. Backup – Algunas opciones mysqldump (el de toda la vida) mk-parallel-dump InnoDB Hot Backup De pago, de innodb.com (autores de InnoDB) Hace backup de InnoDB sin necesidad de parar MySQL xtrabackup Opensource, de Percona También hace hot backup, pero está más verde LVM + cold backup (mylvmbackup) Cold backup de un slave + copia de binlog 30 Octubre 2009 PHP Conference Barcelona 49
  • 50. innodb_file_per_table innodb_file_per_table Sirve para separar cada tabla InnoDB en un archivo dedicado Permite recuperar espacio a nivel de SO si se borran tuplas Un simple ls y ya sabes cual es la tabla gorda Ocupa más file descriptors Hay que controlar el espacio que queda libre en disco 30 Octubre 2009 PHP Conference Barcelona 50
  • 51. innodb_flush_method innodb_flush_method Determina como MySQL abre en lectura y escritura los archivos de datos (tablespace) y los transaction logs a nivel de SO. En *nix puede tener como valor: fdatasync (default) utiliza fsync() para los logs y los datafiles O_DSYNC utiliza O_SYNC para abrir y hacer flush de los logs y fsync() para hacer flush de los datafiles O_DIRECT utiliza O_DIRECT para abrir los datafiles y fsync() para el flush de logs y datos 30 Octubre 2009 PHP Conference Barcelona 51
  • 52. innodb_flush_method fdatasync O_DIRECT O_DSYNC open() con fsync() O_DIRECT, fsync() Tablespace fsync() open() con Transaction fsync() fsync() O_SYNC log 30 Octubre 2009 PHP Conference Barcelona 52
  • 53. innodb_flush_method WTF? O_SYNC y O_DIRECT son parametros opcionales de open() O_SYNC obliga a sincronizar los datos a disco cada vez que se quiere escribir algo en un archivo así abierto, bloqueando el retorno de la syscall. Las escrituras pero sì pasan por la cache del SO. O_DIRECT el kernel pone directamente en DMA la aplicación en userspace, deshabilitando al 100% el I/O buffer del SO. Se evita así el doble buffer (de SO e InnoDB en lectura, de SO y hardware en escritura) fsync(): si no hay O_SYNC se utiliza siempre, aunque exista fdatasync() 30 Octubre 2009 PHP Conference Barcelona 53
  • 54. innodb_flush_method Buffer OS Buffer HW Media (disco) Si Si Si fsync() fsync() con No Si Si O_DIRECT Puede ser que Si, locking Si O_SYNC no 30 Octubre 2009 PHP Conference Barcelona 54
  • 55. Transaction log innodb_flush_log_at_trx_commit 0 write y flush cada segundo, no cada transacción 1 (default) write y flush del log de la memoria al disco cada transacción. Más seguro. 2 write cada trx, flush cada segundo 30 Octubre 2009 PHP Conference Barcelona 55
  • 56. maatkit Es un set de herramientas que facilitan la vida del administrador de MySQL mk-table-checksum permite comprobar que dos tablas replicadas sean realmente identicas mk-slave-delay permite mantener artificialmente un slave atrás en el tiempo. Util para recuperar datos despues de errores humanos mk-parallel-(dump|restore) mk-visual-explain etc 30 Octubre 2009 PHP Conference Barcelona 56
  • 57. innotop Innotop es una herramienta parecida a top de Unix que permite visualizar datos de InnoDB en tiempo real Queries que se están ejecutando y sus detalles Explain directo de una kk-query que está tardando Estadisticas de buffer, flushs, writes, prune, consumo de memoria en tiempo real Fundamentalmente es un front-end a mysqladmin proc, mysqladmin ext, y suerte que existe 30 Octubre 2009 PHP Conference Barcelona 57
  • 58. Links <--- Google's that way High Performance MySQL 2nd Edition (la biblia de MySQL) http://planet.mysql.com 30 Octubre 2009 PHP Conference Barcelona 58
  • 59. Contactos Davide Ferrari Mail: vide80@gmail.com LinkedIn: http://www.linkedin.com/in/davideferrari Blog: http://anothersysadmin.wordpress.com ¿Preguntas? 30 Octubre 2009 PHP Conference Barcelona 59