SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
Software Open Source @
Oracle
Pedro Andrade
pedro.andrade@oracle.com
Strategic Accounts
Manuel Contreras
manuel.contreras@oracle.com
MySQL, Linux,VDI
Senior Consultant
Software Open Source @ Oracle
¿Utiliza Open Source Software (OSS ) en ambientes
productivos?
¿Qué tecnologías OSS con soporte de Oracle
conoces?
Por qué usar Software Open Source
Modelo basado en Comunidades
Versión Community
Versión Enterprise
No Vendor Locking
Subscripción anual con soporte técnico
Mejor TCO
Comunidades desarrollan y prueban y dan sugerencias de
mejoras al software
foros, bug report lists, y participación de desarrolladores
para mejoras del producto
Open Source Software Enterprise
Adopción de Software Libre
82% tienen Software Libre en producción
o planeada en los sig. 12 meses
Mercado de
Software Libre $5.8
mil mill. USD 2011
Grupo Independiente de Usuarios Oracle
Encuesta en 2010, tendencias del Código Abierto
* 70% del grupo tiene instancias de MySQL
Enfoque MySQL –
MySQL en Latinoamérica
Oracle: nueva vida a Duke & Sakila
- En 1995 Sun microsystems crea a Java un lenguaje de programación multiplataforma,
100% orientado a objetos.
- En 1995, MySQL AB, crea un manejador de BD relacional, open source, el cual es
ampliamente adoptado por las comunidades de LAMP stack software.
- En 2008, Sun microsystems Inc, adquiere MySQL AB – El voto del Billón de dolares por el
OSS.
- En 2010, Oracle Inc adquiere a Sun microsystems, la propuesta: ofrecer soluciones desde
el disco hasta las aplicaciones, fortaleciendo su oferta
open source con Java y MySQL.
- Diciembre 2010, Oracle libera MySQL 5.5, el cual es considerado por las comunidades
como el mejor release de MySQL en su historia.
- Julio 2011, Java 7.0 es liberado, nueva versión con mejoras al JVM
hotspot y el mejor desempeño para servidores Java.
Open source software con soporte Enterprise
Java
La plataforma de desarrollo
Introducción | Java
Java
- Simple, facil de usar
- 100% orientado a objetos, API clases
- Administración automática de memoria
- Independiente a la plataforma
- Orientado a un contenedor JRE ( JVM )
–Maquina virtual Java que administra multi-threading,
seguridad, memoria, class loader, manejo de excepciones
( errores en tiempo de ejecución )
- Oracle Glassfish Application Server es la implementación de
referencia para Java EE
- 6 millones de desarrolladores en el mundo
- Java es gestionado por el Java Community Process
El lenguaje de programación independiente a la plataforma
http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-
418459.html
Java 7.0 | lo nuevo
Java 7.0, incorpora mejoras orientadas para aumentar el
desempeño de aplicaciones corriendo en servidores con gran
capacidad en RAM, y CPU multi-cores.
– Manejo de memoria mas eficiente
- Memoria es divida en varios Heap
- First Gargabe collector: divide la memoria en varios
heap memory, aumentando el desempeño en su
acceso
– Nueva funcionalidad en API de JDBC, para
conectividad a bases de datos
RowSet, Statement y Connection implementan la
interfaz Closeable, AutoCloseable
Java 7.0 – potencializa el desempeño de Java en Servidores
JDBC | Java Database Connectivity
Mecanismos para establecer conexiones a MySQL Server, con Java:
-Pool Connection / Data Source
-Jdbc:mysql:loadbalance://server1,server2,serverN/schema:port
- Persistence Framework
– Hibernate, Spring, ClusterJ, Java Persistence API
– Memcached ( Not-Only SQL MySQL 5.6 & MySQL Cluster 7.2 )
Prácticas Recomendadas para Java Developers
JDBC | Java Database Connectivity
Pool Connection / DataSource
- Un conjunto de conexiones, siempre esta listo en el pool
- Método: getConnection() en Java, obtiene una conexión lista del
pool, sin delay en abrir físicamente una conexión al motor de BD.
- Método closeConnection() en Java, NO cierra la conexión,
únicamente la retorna al pool, para que otro Thread pueda re-
utilizarla
Prácticas Recomendadas para Java Developers
JDBC | Java Database Connectivity
Prácticas Recomendadas para Java Developers
JDBC | DataSource Glassfish
http://blogs.oracle.com/psterk/entry/creating_and_configuring_a_mysql
JDBC | DataSource Glassfish
http://blogs.oracle.com/psterk/entry/creating_and_configuring_a_mysql
El Servidor Java EE de
aplicaciones, Glassfish
Application Server administra
las conexiones en el Pool:
Automáticamente cierra
conexiones en estado idle.
Obtiene conexiones sobre
demanda, según las requiera
el aplicativo.
Configuración centralizada
desde JDBC Resource
Manager, en el Java
Application Server.
Prácticas Recomendadas para Java Developers
JDBC | Java Database Connectivity
Data Source
Prácticas Recomendadas para Java Developers
JDBC | Java Database Connectivity
Data Source (2)
Prácticas Recomendadas para Java Developers
Recap: JDBC | Java Database Connectivity
Driver Manager ( Java Class Loader )
- Pro: método fácil para conexión a RDBMS
- Contra: concurrencia en manejo de conexiones, inflexible en
configuración de parámetros
JNDI Data Source
- Pro: flexibilidad en parámetros de configuración, gestión de
conexiones por el contenedor Java EE
- Contra: requiere de un application server ( container )
Persistence Framework
- Pro: mapping entre OO & ER
- Contra: requiere mayor configuracion ( XML config params )
Prácticas Recomendadas para Java Developers
MySQL
Introducción
Recap: MySQL – Replicación
Master – Slave
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
Clients
Slaves Master
MySQL Replication
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 configurado, el master espera hasta
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
Master
Slave
IO Thread
binlog relay
SQL
Thread
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
En caso de FailOver, no hay perdida de información
http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html
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;
http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html
JDBC | Java Database Connectivity
JDBC – MySQL Master, Slave1, Slave2, SlaveN – Round Robin
Prácticas Recomendadas para Java Developers
- Balanceo de Lectura en servidores Slave
- Servidor Master para Read & Writes
- Slaves para Read Only
- JDBC Connector automáticamente, selecciona un
Slave de la lista de Slaves
http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-connection.html
JDBC | Java Database Connectivity
Prácticas Recomendadas para Java Developers
http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-
connection.html
- Import de Librerías
- Configura Driver para uso en RoundRobin Load Balancing
JDBC | Java Database Connectivity
Prácticas Recomendadas para Java Developers
http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-
connection.html
- Insert Datos en Master ( Read Only False )
JDBC | Java Database Connectivity
Prácticas Recomendadas para Java Developers
http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-
connection.html
- Select Datos en uno de los Slaves ( Read Only True )
MySQL Enterprise Monitor
• Replication 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 DBAs
MySQL Enterprise Monitor
Un asistente DBA Virtual para MySQL
http://mysql.com/products/enterprise/monitor.html
• Java Connector plugin
– MySQL Enterprise Monitor, a
través de conector JDBC Java
•Obtiene información de
queries para su análisis,
desde la aplicación
– Utilizado por Query Analyzer
de MySQL Monitor
MySQL Enterprise Monitor
http://dev.mysql.com/doc/mysql-monitor/2.3/en/mem-qanal-using-cj.html
MySQL Enterprise Monitor
• Java Connector plugin
Recap: MySQL 5.6 + Java 7.0
• MySQL 5.6 – mejor release en la historia de MySQL
• Java 7.0 – mejoras significativas en desempeño y manejo de
recursos RAM y CPU para servidores
• Ambas plataformas cada vez mas integradas entre sí
• Oracle – único proveedor de soluciones desde Disco, hasta
aplicaciones
• LAMJ / WAMJ, cada vez con mayor fuerza
• Prueba el Trial MySQL Enterprise Hoy!
mysql.com/trial
• Java
oracle.com/technetwork/java/index.html
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
• Mejora de 3.5x, sobre tiempos de backup con mysqldump
• Mejora de 16x, sobre tiempos de restore con mysqldump
MySQL Workbench
http://www.mysql.com/products/workbench/

Mais conteúdo relacionado

Mais procurados

Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación JavaAntonio Contreras
 
Alta disponibilidad SQL Server 2012
Alta disponibilidad SQL Server 2012Alta disponibilidad SQL Server 2012
Alta disponibilidad SQL Server 2012Eduardo Castro
 
JBoss AS jeap - Curso JBoss JB366 Día 1
JBoss AS jeap - Curso JBoss JB366 Día 1 JBoss AS jeap - Curso JBoss JB366 Día 1
JBoss AS jeap - Curso JBoss JB366 Día 1 César Pajares
 
Jc Web2.0 Java Ee5 Net Beans
Jc Web2.0 Java Ee5 Net BeansJc Web2.0 Java Ee5 Net Beans
Jc Web2.0 Java Ee5 Net Beansvicosw
 
SQL Server Alta disponibilidad en ambientes empresariales
SQL Server Alta disponibilidad en ambientes empresarialesSQL Server Alta disponibilidad en ambientes empresariales
SQL Server Alta disponibilidad en ambientes empresarialesEduardo Castro
 
Dev ops best practices - spanish v4
Dev ops best practices - spanish v4Dev ops best practices - spanish v4
Dev ops best practices - spanish v4Vemn1
 
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2 JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2 César Pajares
 
Web Service buscador de localizaciones de IP’s
Web Service buscador de localizaciones de IP’sWeb Service buscador de localizaciones de IP’s
Web Service buscador de localizaciones de IP’sPablo Pellegrinet
 
Introducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaIntroducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaEudris Cabrera
 
Omega peripherals virtualización de entornos críticos
Omega peripherals   virtualización de entornos críticosOmega peripherals   virtualización de entornos críticos
Omega peripherals virtualización de entornos críticosOmega Peripherals
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XMLJuan Carlos Rubio Pineda
 
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web ServicesLuis Fernando Aguas Bucheli
 

Mais procurados (16)

Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación Java
 
Alta disponibilidad SQL Server 2012
Alta disponibilidad SQL Server 2012Alta disponibilidad SQL Server 2012
Alta disponibilidad SQL Server 2012
 
JBoss AS jeap - Curso JBoss JB366 Día 1
JBoss AS jeap - Curso JBoss JB366 Día 1 JBoss AS jeap - Curso JBoss JB366 Día 1
JBoss AS jeap - Curso JBoss JB366 Día 1
 
Jc Web2.0 Java Ee5 Net Beans
Jc Web2.0 Java Ee5 Net BeansJc Web2.0 Java Ee5 Net Beans
Jc Web2.0 Java Ee5 Net Beans
 
SQL Server Alta disponibilidad en ambientes empresariales
SQL Server Alta disponibilidad en ambientes empresarialesSQL Server Alta disponibilidad en ambientes empresariales
SQL Server Alta disponibilidad en ambientes empresariales
 
Webinar Migración de Forms & Reports a Oracle Cloud
Webinar Migración de Forms & Reports a Oracle CloudWebinar Migración de Forms & Reports a Oracle Cloud
Webinar Migración de Forms & Reports a Oracle Cloud
 
Eclipse
EclipseEclipse
Eclipse
 
Despliegue de la solución de software
Despliegue de la solución de softwareDespliegue de la solución de software
Despliegue de la solución de software
 
Dev ops best practices - spanish v4
Dev ops best practices - spanish v4Dev ops best practices - spanish v4
Dev ops best practices - spanish v4
 
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2 JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2
 
Web Service buscador de localizaciones de IP’s
Web Service buscador de localizaciones de IP’sWeb Service buscador de localizaciones de IP’s
Web Service buscador de localizaciones de IP’s
 
Introducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaIntroducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en Java
 
Omega peripherals virtualización de entornos críticos
Omega peripherals   virtualización de entornos críticosOmega peripherals   virtualización de entornos críticos
Omega peripherals virtualización de entornos críticos
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Mejoras Lenguaje Java 7
Mejoras Lenguaje Java 7Mejoras Lenguaje Java 7
Mejoras Lenguaje Java 7
 
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
 

Semelhante a Software Líbre con respaldo de Oracle ~ OTN Tour 2013

MySQL Team – Open Day Oracle 2013
MySQL Team – Open Day Oracle 2013MySQL Team – Open Day Oracle 2013
MySQL Team – Open Day Oracle 2013Erik Gur
 
MySQL de 1995 a 5.5
MySQL de 1995 a 5.5MySQL de 1995 a 5.5
MySQL de 1995 a 5.5juliomacr
 
MySQL Una Introduccion Tecnica
MySQL Una Introduccion TecnicaMySQL Una Introduccion Tecnica
MySQL Una Introduccion TecnicaKeith Hollman
 
Oracle Day 2013 ~ MySQL Replication
Oracle Day 2013 ~ MySQL Replication Oracle Day 2013 ~ MySQL Replication
Oracle Day 2013 ~ MySQL Replication Manuel Contreras
 
Introduccion a ORACLE
Introduccion a ORACLEIntroduccion a ORACLE
Introduccion a ORACLEpp guanuchi
 
Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...
Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...
Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...Joseph Lopez
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAHelmilpa
 
Charla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productosCharla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productosRonald Francisco Vargas Quesada
 
Tabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdf
Tabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdfTabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdf
Tabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdfMIGUELANGELDORADOJAR
 
SGBD Open Source más populares
SGBD Open Source más popularesSGBD Open Source más populares
SGBD Open Source más popularesArsys
 
SGBD open source mas populares
SGBD open source mas popularesSGBD open source mas populares
SGBD open source mas popularesArsys
 
Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionJosé Antonio Sandoval Acosta
 

Semelhante a Software Líbre con respaldo de Oracle ~ OTN Tour 2013 (20)

My sql ha-fina_lv2
My sql ha-fina_lv2My sql ha-fina_lv2
My sql ha-fina_lv2
 
MySQL Team – Open Day Oracle 2013
MySQL Team – Open Day Oracle 2013MySQL Team – Open Day Oracle 2013
MySQL Team – Open Day Oracle 2013
 
MySQL de 1995 a 5.5
MySQL de 1995 a 5.5MySQL de 1995 a 5.5
MySQL de 1995 a 5.5
 
MySQL Una Introduccion Tecnica
MySQL Una Introduccion TecnicaMySQL Una Introduccion Tecnica
MySQL Una Introduccion Tecnica
 
Oracle Day 2013 ~ MySQL Replication
Oracle Day 2013 ~ MySQL Replication Oracle Day 2013 ~ MySQL Replication
Oracle Day 2013 ~ MySQL Replication
 
Curso Básico de JDBC
Curso Básico de JDBCCurso Básico de JDBC
Curso Básico de JDBC
 
Curso basico de base de datos con java
Curso basico de base de datos con javaCurso basico de base de datos con java
Curso basico de base de datos con java
 
Jdbc
JdbcJdbc
Jdbc
 
Introduccion a ORACLE
Introduccion a ORACLEIntroduccion a ORACLE
Introduccion a ORACLE
 
Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...
Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...
Estableciendo escenarios de Alta Disponibilidad en las empresas de hoy con MS...
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVA
 
Charla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productosCharla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productos
 
Tabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdf
Tabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdfTabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdf
Tabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdf
 
sesion03-traspa.pdf
sesion03-traspa.pdfsesion03-traspa.pdf
sesion03-traspa.pdf
 
SGBD Open Source más populares
SGBD Open Source más popularesSGBD Open Source más populares
SGBD Open Source más populares
 
SGBD open source mas populares
SGBD open source mas popularesSGBD open source mas populares
SGBD open source mas populares
 
Ventajas vs Desventajas se SGBD
Ventajas vs Desventajas se SGBDVentajas vs Desventajas se SGBD
Ventajas vs Desventajas se SGBD
 
Jdbc
JdbcJdbc
Jdbc
 
Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccion
 
Java DataBase Connectivity
Java DataBase ConnectivityJava DataBase Connectivity
Java DataBase Connectivity
 

Software Líbre con respaldo de Oracle ~ OTN Tour 2013

  • 1. Software Open Source @ Oracle Pedro Andrade pedro.andrade@oracle.com Strategic Accounts Manuel Contreras manuel.contreras@oracle.com MySQL, Linux,VDI Senior Consultant
  • 2. Software Open Source @ Oracle ¿Utiliza Open Source Software (OSS ) en ambientes productivos? ¿Qué tecnologías OSS con soporte de Oracle conoces?
  • 3. Por qué usar Software Open Source Modelo basado en Comunidades Versión Community Versión Enterprise No Vendor Locking Subscripción anual con soporte técnico Mejor TCO Comunidades desarrollan y prueban y dan sugerencias de mejoras al software foros, bug report lists, y participación de desarrolladores para mejoras del producto Open Source Software Enterprise
  • 4. Adopción de Software Libre 82% tienen Software Libre en producción o planeada en los sig. 12 meses Mercado de 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
  • 7.
  • 9. Oracle: nueva vida a Duke & Sakila - En 1995 Sun microsystems crea a Java un lenguaje de programación multiplataforma, 100% orientado a objetos. - En 1995, MySQL AB, crea un manejador de BD relacional, open source, el cual es ampliamente adoptado por las comunidades de LAMP stack software. - En 2008, Sun microsystems Inc, adquiere MySQL AB – El voto del Billón de dolares por el OSS. - En 2010, Oracle Inc adquiere a Sun microsystems, la propuesta: ofrecer soluciones desde el disco hasta las aplicaciones, fortaleciendo su oferta open source con Java y MySQL. - Diciembre 2010, Oracle libera MySQL 5.5, el cual es considerado por las comunidades como el mejor release de MySQL en su historia. - Julio 2011, Java 7.0 es liberado, nueva versión con mejoras al JVM hotspot y el mejor desempeño para servidores Java. Open source software con soporte Enterprise
  • 10. Java La plataforma de desarrollo
  • 11. Introducción | Java Java - Simple, facil de usar - 100% orientado a objetos, API clases - Administración automática de memoria - Independiente a la plataforma - Orientado a un contenedor JRE ( JVM ) –Maquina virtual Java que administra multi-threading, seguridad, memoria, class loader, manejo de excepciones ( errores en tiempo de ejecución ) - Oracle Glassfish Application Server es la implementación de referencia para Java EE - 6 millones de desarrolladores en el mundo - Java es gestionado por el Java Community Process El lenguaje de programación independiente a la plataforma http://www.oracle.com/technetwork/java/javase/jdk7-relnotes- 418459.html
  • 12. Java 7.0 | lo nuevo Java 7.0, incorpora mejoras orientadas para aumentar el desempeño de aplicaciones corriendo en servidores con gran capacidad en RAM, y CPU multi-cores. – Manejo de memoria mas eficiente - Memoria es divida en varios Heap - First Gargabe collector: divide la memoria en varios heap memory, aumentando el desempeño en su acceso – Nueva funcionalidad en API de JDBC, para conectividad a bases de datos RowSet, Statement y Connection implementan la interfaz Closeable, AutoCloseable Java 7.0 – potencializa el desempeño de Java en Servidores
  • 13. JDBC | Java Database Connectivity Mecanismos para establecer conexiones a MySQL Server, con Java: -Pool Connection / Data Source -Jdbc:mysql:loadbalance://server1,server2,serverN/schema:port - Persistence Framework – Hibernate, Spring, ClusterJ, Java Persistence API – Memcached ( Not-Only SQL MySQL 5.6 & MySQL Cluster 7.2 ) Prácticas Recomendadas para Java Developers
  • 14. JDBC | Java Database Connectivity Pool Connection / DataSource - Un conjunto de conexiones, siempre esta listo en el pool - Método: getConnection() en Java, obtiene una conexión lista del pool, sin delay en abrir físicamente una conexión al motor de BD. - Método closeConnection() en Java, NO cierra la conexión, únicamente la retorna al pool, para que otro Thread pueda re- utilizarla Prácticas Recomendadas para Java Developers
  • 15. JDBC | Java Database Connectivity Prácticas Recomendadas para Java Developers
  • 16. JDBC | DataSource Glassfish http://blogs.oracle.com/psterk/entry/creating_and_configuring_a_mysql
  • 17. JDBC | DataSource Glassfish http://blogs.oracle.com/psterk/entry/creating_and_configuring_a_mysql El Servidor Java EE de aplicaciones, Glassfish Application Server administra las conexiones en el Pool: Automáticamente cierra conexiones en estado idle. Obtiene conexiones sobre demanda, según las requiera el aplicativo. Configuración centralizada desde JDBC Resource Manager, en el Java Application Server. Prácticas Recomendadas para Java Developers
  • 18. JDBC | Java Database Connectivity Data Source Prácticas Recomendadas para Java Developers
  • 19. JDBC | Java Database Connectivity Data Source (2) Prácticas Recomendadas para Java Developers
  • 20. Recap: JDBC | Java Database Connectivity Driver Manager ( Java Class Loader ) - Pro: método fácil para conexión a RDBMS - Contra: concurrencia en manejo de conexiones, inflexible en configuración de parámetros JNDI Data Source - Pro: flexibilidad en parámetros de configuración, gestión de conexiones por el contenedor Java EE - Contra: requiere de un application server ( container ) Persistence Framework - Pro: mapping entre OO & ER - Contra: requiere mayor configuracion ( XML config params ) Prácticas Recomendadas para Java Developers
  • 22. Recap: MySQL – Replicación Master – Slave
  • 23. 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 Clients Slaves Master MySQL Replication
  • 24. 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 configurado, el master espera hasta 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 Master Slave IO Thread binlog relay SQL Thread 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 En caso de FailOver, no hay perdida de información http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html
  • 25. 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; http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html
  • 26. JDBC | Java Database Connectivity JDBC – MySQL Master, Slave1, Slave2, SlaveN – Round Robin Prácticas Recomendadas para Java Developers - Balanceo de Lectura en servidores Slave - Servidor Master para Read & Writes - Slaves para Read Only - JDBC Connector automáticamente, selecciona un Slave de la lista de Slaves http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-connection.html
  • 27. JDBC | Java Database Connectivity Prácticas Recomendadas para Java Developers http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication- connection.html - Import de Librerías - Configura Driver para uso en RoundRobin Load Balancing
  • 28. JDBC | Java Database Connectivity Prácticas Recomendadas para Java Developers http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication- connection.html - Insert Datos en Master ( Read Only False )
  • 29. JDBC | Java Database Connectivity Prácticas Recomendadas para Java Developers http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication- connection.html - Select Datos en uno de los Slaves ( Read Only True )
  • 30. MySQL Enterprise Monitor • Replication Monitor
  • 31. • 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 DBAs MySQL Enterprise Monitor Un asistente DBA Virtual para MySQL http://mysql.com/products/enterprise/monitor.html
  • 32.
  • 33. • Java Connector plugin – MySQL Enterprise Monitor, a través de conector JDBC Java •Obtiene información de queries para su análisis, desde la aplicación – Utilizado por Query Analyzer de MySQL Monitor MySQL Enterprise Monitor http://dev.mysql.com/doc/mysql-monitor/2.3/en/mem-qanal-using-cj.html
  • 34. MySQL Enterprise Monitor • Java Connector plugin
  • 35.
  • 36. Recap: MySQL 5.6 + Java 7.0 • MySQL 5.6 – mejor release en la historia de MySQL • Java 7.0 – mejoras significativas en desempeño y manejo de recursos RAM y CPU para servidores • Ambas plataformas cada vez mas integradas entre sí • Oracle – único proveedor de soluciones desde Disco, hasta aplicaciones • LAMJ / WAMJ, cada vez con mayor fuerza • Prueba el Trial MySQL Enterprise Hoy! mysql.com/trial • Java oracle.com/technetwork/java/index.html
  • 37.
  • 38. 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 • Mejora de 3.5x, sobre tiempos de backup con mysqldump • Mejora de 16x, sobre tiempos de restore con mysqldump