MySQL de 1995 a 5.5
• Por que hace sentido usar Software Libre
• MySQL en mundo Oracle
• Instancias mysql, schemas, tablas...
• Múlti instancias mysqld
• Replicación semi-sync (cómo Facebook usa MySQL)
• Demo de Monitor: Advisors & Query Analyzer
• Preguntas y Respuestas
Pedro Andrade – Latin America & Caribbean Sales
Manuel Contreras – Latin America & Caribbean Consulting Engineer
MySQL Global Business Unit
1. <Insert Picture Here>
~ de 1995 a 5.5
Pedro Andrade – Latin America & Caribbean Sales
Manuel Contreras – Latin America & Caribbean Consulting Engineer
MySQL Global Business Unit
2. Agenda
• MySQL de 1995 a 5.5
• Por que hace sentido usar Software Libre
• MySQL en mundo Oracle
• Instancias mysql, schemas, tablas...
• Múlti instancias mysqld
• Replicación semi-sync (cómo Facebook usa MySQL)
• Demo de Monitor: Advisors & Query Analyzer
• Preguntas y Respuestas
3. Adopción de Software Libre
82% tienen Software Libre en producción Mercado de
o planeada en los sig. 12 meses Software Libre $5.8
mil mill. USD 2011
5. Grupo Independiente de Usuarios Oracle
Encuesta en 2010, tendencias del Código Abierto
* 70% del grupo tiene instancias de MySQL
6. MySQL ~ de 1995 a 5.5
¿Qué es MySQL?
• Base de Datos más popular del mundo
• Nace en 1995 -> Sun 2008 -> Oracle 2010
• Desarrollado, distribuido y soportado por ORACLE
• Open Source SQL RDBMS
• MySQL DB Server es rápido, confiable & fácil de usar
• >11,000,000 instalaciones globales
• >80,000 descargas al día
8. 8 of The Top 10 Websites That Changed The World
run MySQL*
Amazon
Craigslist
eBay
Facebook
Google
Napster
Twitter
WikiLeaks
Wikipedia
YouTube
9. Compromiso de Oracle hacia clientes, desarrolladores
y usuarios de MySQL
- Continuo desarrollo de MySQL Enterprise & Community bajo
licenciamiento público (GPL)
- Mayor inversión en desarrollo & investigación (R&D)
- Creación de una Junta Consultiva de Clientes de MySQL
- Continuidad de opciones de soporte Enterprise (anual o multi-anual)
http://www.oracle.com/us/corporate/press/042364
10. Estrategia:
Completa. Abierta. Integrada.
• Desarrollo
• Pruebas
• Administración
• Mantenimiento
• Basada en estándares abiertos
• Bajo costo
• Bajo riesgo
• Más confiable
12. Inversión en Software Libre
• Apoyando proyectos open source por muchos años
• Parte de la estratégia, “Complete. Open. Integrated.”
• Acelerar la innovación
• Extender la comunidad de desarrolladores
14. Thank You – MySQL Global Customers
Web OEM / ISV’s
SaaS, Hosting Telecommunications Enterprise 2.0
MySQL en el web 2.0, Enterprise 2.0...
15. Completa. Abierta. Integrada.
2 atributos más importantes:
• Oracle busca siempre ser el
#1 en cada nivel
• “Completa” quiere decir que
cumplimos con los
requerimientos de nuestros
clientes en cada nivel
* Por eso MySQL es
importante para Oracle y
sus clientes
16. La oferta mas completa en LAMP Stack
Apps
• Oracle Enterprise Linux
Eclipse
NetBeans
• Oracle VM (Xen-based)
• Apache, GlassFish
Apache
Glassfish • MySQL
• PHP, Perl, Python, Ruby, Java,
MySQL
C, C++
Oracle Enterprise
Linux & Oracle VM
17. Inversión en MySQL
• Mejorar MySQL
• #1 Open Source Database for Web Applications
• Desarrollar, Promover y dar Soporte a MySQL
• Mejorar la ingeniería, consultoría y soporte
• Tomar ventaja de la estructura global de soporte de Oracle
• MySQL Community Edition
• Binarios y Código Fuente libres
• GPL
18. Inversión en MySQL
• MySQL - Áreas de Enfoque
• Web, Embedded & Telecom
• LAMP
• Windows
• Clientes Oracle + MySQL
• Oracle Enterprise Manager
• Oracle Secure Backup
• Oracle Audit Vault
22. MySQL Server | Ediciones
La base de datos open source más popular del planeta
MySQL Community
- Comunidad aporta: nuevas ideas, contribuciones de código, pruebas
globales (bug reports), foros
- No incluye soporte técnico, dba tools
MySQL Enterprise ( suscripción anual )
- Soporte técnico 24x7 ilimitado, Oracle Premier Support
- Revisión y recomendaciones a queries SQL
- Remote troubleshooting
- Monitor, backup on-line, query analyzer, mysql workbench
- Actualizaciones de software
- Apoyo en updgrades de community a enterprise
23. Arquitectura Storage Engines - pluggable
MySQL Server
Connectors
Clients and Apps
Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl
Enterprise Management
Services and Utilities Connection Pool
Backup & Recovery Authentication – Thread Reuse – Connection Limits – Check Memory – Caches
Security
Replication
Cluster
SQL Interface Parser Optimizer Caches
Partitioning
DDL, DML, Stored Query Translation, Access Paths, Global and Engine
Instance Manager
Procedures, Views, Object Privileges Statistics Specific Caches and
Information_Schema
Triggers, Etc.. Buffers
MySQL Workbench
Pluggable Storage Engines
Memory, Index and Storage Management
InnoDB MyISAM Cluster Etc… Partners Community More..
Filesystems, Files and Logs
Redo, Undo, Data, Index, Binary, Error, Query and Slow
24. MySQL - Instancias, schemas
La base de datos open source más popular del planeta
MySQL Server
* mysqld – instancia (proceso)
– Puerto
– Socket /tmp/mysql.sock
– Basedir (directorio binarios )
– Datadir ( datos, indíces, tablespaces...)
schemas / database
– Tablas, funciones, procedimientos almacenados,...
my.cnf | my.ini ( Configuration File )
* mysqld_multi (múltiples instancias )
- Configuración independiente
- Datadir distintos
27. MySQL, Replicación
- Mejor tiempo de respuesta mediante la separación carga, en el procesamiento de
consultas entre el master y el slave
- SELECT Queries, pueden ser enviados al slave para reducir la carga de
procesamiento de consultas, en el master
- Disponible para cualquier tipo de storage engine, incluso replicación entre distintos
tipos de storage engine
- Lograr una mayor disponibilidad con un master / slave
- En caso de fallas en el master, es posible cambiar al slave como backup
- Respaldo de información a través de los slaves
C l i ent s
MySQL Replication
Slaves Master
29. MySQL Replicación semi-sync
• Los datos escritos en el master,
también son escritos en el binary log
File
• El thread I/O, en los slaves, toma los
cambios del binlog del master y lo
escribe en un relay log en los slaves
• El thread SQL, en los slaves, lee el
relay log y aplica los cambios /
escrituras en los slaves
• Si el plugin semi-sync esta instalado y SQL Thread
IO Thread
configurado, el master espera hasta binlog relay
que el thread I/O de algún slave semi-
sync, haya escrito la transacción a
disco, o hasta que ocurra un timeout,
entonces se retorna el ACK a la
aplicación
Mejora la confiabilidad en FailOver
COMMIT en el nodo master es reconocido, sólo cuando al menos uno de los
nodos slaves ha registrado el evento Master
En caso de FailOver, no hay perdida de información Slave
30. Semi-synchronous Replication
On Master and Slave:
have_dynamic_loading=YES
On the Master:
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
SET GLOBAL rpl_semi_sync_master_enabled = 1;
SET GLOBAL rpl_semi_sync_master_timeout = N;
On the Slave:
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
SET GLOBAL rpl_semi_sync_master_enabled = 1;
STOP SLAVE IO_THREAD; START SLAVE IO_THREAD;
32. MySQL 5.5 - Múltiples Buffer Pools
• Antes de InnoDB 1.1: Todos los
threads tenían que obtener acceso
exclusivo a un single buffer pool
• MySQL 5.1 - InnoDB : Built-in
• MySQL 5.1 – InnoDB 1.1 : Plugin
• MySQL 5.5 – InnoDB 1.1 : Built-in
http://dev.mysql.com/doc/innodb-plugin/1.1/en/innodb-multiple-buffer-pools.html
33. MySQL 5.5 - Múltiples Rollback Segments & Pools
• Antes de InnoDB 1.1, rollback segment
procesaba 1024 transacciones writes,
concurrentes
• InnoDB 1.1, rollback segment es dividido
en 128 segmentos. Cada segmento
soporta 1024 Write transactions
concurrentes, esto es: 128k W
transactions concurrentes
http://dev.mysql.com/doc/innodb-plugin/1.1/en/innodb-multiple-rollback-segments.html
33
34. MySQL 5.5 – Lo nuevo
InnoDB Storage Engine por Default
• ACID transacciones, FKs, Crash Recovery
Mejora en la Disponibilidad
• Replicación Semi-synchronous
• Replicación Heartbeat
Mejoras en la Usabilidad
• SIGNAL/RESIGNAL
• Más opciones en partitioning
• PERFORMANCE_SCHEMA
Mejor Instrumentación / Diagnóstico
• InnoDB, estadísticas en MySQL 5.5 - PERFORMANCE_SCHEMA -
35. MySQL 5.5 SysBench Benchmarks
Linux
MySQL 5.5.6
(InnoDB)
MySQL 5.1.50
(InnoDB Plug-in)
MySQL 5.1.50
(InnoDB built-in)
200% ganancia en performance Intel Xeon X7460 x86_64
4 CPU x 6 Cores/CPU
2.66 GHz, 32GB RAM
de MySQL 5.5 sobre 5.1.50 Fedora 10
36. MySQL 5.5 SysBench Benchmarks
Linux
MySQL 5.5.6
(New InnoDB)
MySQL 5.1.50
(InnoDB Plug-in)
MySQL 5.1.50
(InnoDB built-in)
369% ganancia en performance Intel Xeon X7460 x86_64
4 CPU x 6 Cores/CPU
2.66 GHz, 32GB RAM
de MySQL 5.5 sobre 5.1.50 Fedora 10
37. MySQL 5.5 SysBench Benchmarks
Windows
MySQL 5.5.6
(New InnoDB)
MySQL 5.1.50
(InnoDB Plug-in)
MySQL 5.1.50
(InnoDB built-in)
538% ganancia en performance Intel x86_64
4 CPU x 2 Cores/CPU
3.166 GHz, 8GB RAM
de MySQL 5.5 sobre 5.1.50 Windows Server 2008
38. MySQL 5.5 SysBench Benchmarks
Windows
MySQL 5.5.6
(New InnoDB)
MySQL 5.1.50
(InnoDB Plug-in)
MySQL 5.1.50
(InnoDB built-in)
1561% ganancia en performance Intel x86_64
4 CPU x 2 Cores/CPU
3.166 GHz, 8GB RAM
de MySQL 5.5 sobre 5.1.50 Windows Server 2008
39. Lo que Facebook esta diciendo
http://www.facebook.com/note.php?note_id=403975340932
Previamente había probado InnoDB en un servidor de 8 cores,
para determinar que tantos IOPs puede hacer con una carga
de trabajo determinada. Los límites fueron alrededor de 12k
reads / segundo para MySQL 5.0 y alrededor de 18k
reads/segundo para MySQL 5.1. Acabo de repetir las pruebas
con un servidor de 16 cores y los resultados son mucho
mejores, con MySQL 5.1, entre 20k, 30k reads/ segundo;
MySQL 5.5 parece ser capaz de procesar entre 50k , 70k
reads / segundo, como resultado de soportar múltiples buffer
pools(innodb_buffer_pool_instances).
Mark Callaghan’s Blog, Facebook - 21 June 2010
41. MySQL Enterprise Server
Software y Servicios Empresariales a través de una suscripción anual
• MySQL Enterprise Server
• Actualizaciones mensuales
Server • Service Packs trimestrales
Upates • Programa Hot Fix
• Subscription:
• Fin de vida extendido (EOL)
• MySQL Enterprise
• todos los (OEM):
• Monitor Global de Licenseservidores
• Consola Central • Embedded Server
basada en la Web
Monitor • Built-in Advisors
• Support
• Query Analyzer
& Backup • MySQL Cluster
• Enterprise Backup, MySQL Workbench Carrier-
Grade
• Training
• Soporte a producción 24 x 7
• Consulting
• Ilimitado en incidentes
Soporte • Remote troubleshooting
• NRE
•Programa de escalamiento de Bugs
•Soporte MoS en Español
43. MySQL Enterprise Monitor
• Vista única consolidada del
ambiente MySQL
• Auto descubrimiento de
servidores MySQL,
replicación y topologías
• Alertas y monitoreo
adaptable y basado en reglas
• Identificación de problemas
antes de que ocurran
• Reducción de riesgo y
tiempo de inactividad
• Facilidad para escalamiento
horizontal sin requerir más Un asistente DBA Virtual para
DBAs MySQL
http://mysql.com/products/enterprise/monitor.html
44.
45.
46. DEMO
- MySQL Enteprise Monitor
- MySQL Workbench
47. MySQL Enterprise Backup
• Respaldo en linea para MySQL databases
• Alto performance en Respaldo y Restauración de Info
• Respaldos Full, Incremental, Partial
- Compressed Tables
- Partition Files
- In-memory database
• Compresión de datos
• Point in Time Recovery
• Cross Platform
• Unlimited Database size
MySQL, prioridades 2011 - 12
• Visual Backup – Recover
• Visual Scheduling, Monitoring de Backup/Recover operations
• Mejora de 3.5x, sobre tiempos de backup con mysqldump
• Mejora de 16x, sobre tiempos de restore con mysqldump
48. MySQL Enterprise Backup
Backups Online, de alto desempeño
Mejora de 3.5x, sobre tiempos de backup con mysqldump
49. MySQL Enterprise Backup
Restore, de alto desempeño
Mejora de 16x, sobre tiempos de restore con mysqldump
50. MySQL Enterprise Backup
Compresión, de backups
Reducción en tamaño de archivos backup, con compresión
de datos
51. MySQL Server | Resumen
La base de datos open source más popular del planeta
MySQL Community
- Comunidad aporta: nuevas ideas, contribuciones de código, pruebas
globales (bug reports), foros
- No incluye soporte técnico, dba tools
MySQL Enterprise ( suscripción anual )
- Soporte técnico 24x7 ilimitado, Oracle Premier Support
- Revisión y recomendaciones a queries SQL
- Remote troubleshooting
- Monitor, backup on-line, query analyzer, mysql workbench
- Actualizaciones de software
- Apoyo en updgrades de community a enterprise