Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
MySQL OTN Day          <Insert Picture Here>               Brasil 7 Dezembro 2011                                         ...
MySQL+Java: Nova vida a Sakila & Duke com a                      OracleMySQL na América Latina ( En Español )  Kattia.Fall...
OTN MySQL User Forum – Brasil ~ IntroduçãoMéxico e Brasil - rivais no futebol ?
OTN MySQL User Forum – Brasil ~ IntroduçãoNão....México e Brasil são sempre amigos!
​ ¿Por que usar Software Open Source     (OSS)?Open Source Software Enterprise Modelo de distribuição de Software - Versão...
Oracle: nova vida a Duke & SakilaOpen source software com suporte Enterprise- Em 1995 Sun microsystems cria Java uma lingu...
JavaA plataforma de desenvolvimento
Introdução | Java A linguagem de programação independente da plataforma   Java          - Simples, fácil de usar          ...
Java 7.0 | O novoJava 7.0 – potencializa o desempenho de Java nosServidores Java 7.0, incorpora melhoras orientadas para a...
JDBC | Java Database ConnectivityPráticas Recomendadas para Java Developers    Mecanismos para estabelecer conexões a MySQ...
JDBC | Java Database ConnectivityPráticas Recomendadas para Java Developers    Pool Connection / DataSource    - Um conjun...
JDBC | Java Database ConnectivityPráticas Recomendadas para Java Developers                          Java Pool Connection ...
JDBC | DataSource Glassfishhttp://blogs.oracle.com/psterk/entry/criating_and_configuring_a_mysql
JDBC | Java Database ConnectivityPráticas Recomendadas para Java DevelopersJava Pool Connection                       -O J...
MySQLvisão geral
MySQL - números interessantes• 155 million• 212 days• 127 billion                  Você sabe o que são                  es...
MySQL - números interessantes• 155 million• 212 days• 127 billion                  Você sabe o que são                  es...
MySQL - números interessantes• 155 million        number of tweats per day, 1700 per second        6,939/s Japanese New Ye...
Questões difíceis… problemas de performance?     … servidores down?… queries lentas, custosas?     … política de segurança...
MySQL Enterprise EditionMais segura, escalável banco de dados MySQL, BackupOnline, Desenvolvimento / Ferramentas de monito...
MySQL DatabaseInternals replicação                                        MySQL Slave   MySQL Masterupdates      updates  ...
MySQL, Replicação- Melhor tempo de resposta mediante a separação de carga, no processamento de   consultas entre o master ...
Estudos de Caso:MySQL – Replicação Master – Slave
MySQL Replicação semi-sync Novo no MySQL 5.5!   • Os dados escritos no master, também     são escritos no binary log File ...
JDBC | Java Database Connectivity    Práticas Recomendadas para Java Developers     JDBC – MySQL Master, Slave1, Slave2, S...
JDBC | Java Database Connectivity    Prácticas Recomendadas para Java Developers  Consulta Sepración ler e escrever operaç...
JDBC | Java Database Connectivity     Prácticas Recomendadas para Java Developers   Consulta Sepración ler e escrever oper...
JDBC | Java Database Connectivity    Prácticas Recomendadas para Java Developers  Consulta Sepración ler e escrever operaç...
JDBC | Java Database Connectivity  Práticas Recomendadas para Java DevelopersPasso 4) - Insert Dados em Master ( Read Only...
JDBC | Java Database Connectivity  Práticas Recomendadas para Java DevelopersPasso 6) - Select Dados em um dos Slaves ( Re...
MySQL Enterprise Monitor•   Monitor de Replicação
MySQL Enterprise Monitor• Vista única consolidada do  ambiente MySQL• Auto descobrimento de  servidores MySQL,  replicação...
MySQL Enterprise Monitor• Java Connector plugin / Query Analyzer
MySQL ~ Extensões Comerciais✔    MySQL Enterprise Backup    ✔        Incremental, Compression, Point in Time Recovery✔    ...
Gestão Padrão do Thread Pool             Clientes Externos                                 Gestão Padrão     Execução das ...
Com o Thread Pool Habilitado            Clientes Externos                                      Thread Pool        Execução...
Comparativo com/sem Thread Pool                                           MySQL Enterprise Edition                        ...
MySQL Enterprise Backup• Anteriormente “InnoDB Hot Backup”• Online, non-locking backup & recovery    • Tables, Indexes    ...
BackupsBackups são até 3.5x mais rápidos do que mysqldump
Restores       Restore é até 16x mais rápido do que mysqldump- mysqldump performance não é linear (mais tables/indexes imp...
Compressão do BackupO tamanho do Backup é reduzido de 65% até 93%
MySQL Workbenchhttp://www.mysql.com/products/workbench/
Questões Difíceis, Soluções Reais… problemas de performance?                            … servidores down?• MySQL Enterpri...
Obrigado / Gracias!MySQL na América Latina ( En Español )  Kattia.Fallas@Oracle.com  Manuel.Contreras@Oracle.com  Pedro.An...
MySQL + Java - Manuel Contreras
MySQL + Java - Manuel Contreras
MySQL + Java - Manuel Contreras
Upcoming SlideShare
Loading in …5
×

MySQL + Java - Manuel Contreras

2,032 views

Published on

Como utilizar MySQL com Java eficientemente. Slides da apresentação de Manuel Contreras durante o OTN MySQL Community Forum 2011 em São Paulo.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

MySQL + Java - Manuel Contreras

  1. 1. MySQL OTN Day <Insert Picture Here> Brasil 7 Dezembro 2011 3:00 pm Sheraton WTC Sao Paulo, BrasilMySQL + Java – Nova vida a Sakila & Duke com a OracleKattia.Fallas@Oracle.com - Contas Corporativas, MySQL Amércia LatinaManuel.Contreras@Oracle.com – Especialista Técnico, MySQL América LatinaPedro.Andrade@Oracle.com – Contas Estratégicas, MySQL América Latina
  2. 2. MySQL+Java: Nova vida a Sakila & Duke com a OracleMySQL na América Latina ( En Español ) Kattia.Fallas@Oracle.com Manuel.Contreras@Oracle.com Pedro.Andrade@Oracle.com @mysql_espanolMySQL na América Latina ( En Português ) Ana.Guiselini@Oracle.com Marcelo.T.Souza@Oracle.com Airton.Lastori@Oracle.com Marcos.Trujillo@Oracle.com @mysql_br
  3. 3. OTN MySQL User Forum – Brasil ~ IntroduçãoMéxico e Brasil - rivais no futebol ?
  4. 4. OTN MySQL User Forum – Brasil ~ IntroduçãoNão....México e Brasil são sempre amigos!
  5. 5. ​ ¿Por que usar Software Open Source (OSS)?Open Source Software Enterprise Modelo de distribuição de Software - Versão Community - Versão Enterprise Subscrição - Subscrição anual com suporte técnico - No vendor locking - Melhor TCO Comunidades desenvolvem, testam e sugerem melhorias ao software - foruns, bug report lists, e participação de desenvolvedores para melhoras do produto.
  6. 6. Oracle: nova vida a Duke & SakilaOpen source software com suporte Enterprise- Em 1995 Sun microsystems cria Java uma linguagem de programaçãomultiplataforma, 100% orientada a objetos.- Em 1995, MySQL AB, cria um gerenciador de BD relacional, open source, o qualé amplamente adotado pelas comunidades do LAMP stack software.- Em 2008, Sun microsystems Inc, adquire MySQL AB – um investimento de Bilhãode dólares pelo OSS.- Em 2010, Oracle Inc adquire a Sun microsystems, a proposta: oferecer soluçõesdesde o disco até as aplicações, fortalecendo sua oferta open source com Java eMySQL.- Dezembro de 2010, Oracle libera MySQL 5.5, considerado pela comunidadecomo o melhor release de MySQL em sua historia.- Julho de 2011, Java 7.0 é liberado, nova versão com melhorias no JVM hotspote o melhor desempenho para servidores Java.
  7. 7. JavaA plataforma de desenvolvimento
  8. 8. Introdução | Java A linguagem de programação independente da plataforma Java - Simples, fácil de usar - 100% orientado a objetos, API classes - Administração automática de memória - Independente da plataforma - Orientado a um contenedor JRE ( JVM ) – Máquina virtual Java que administra multi-threading, segurança, memória, class loader, gerenciamento de exceções ( erros em tempo de execução ) - Oracle Glassfish Application Server é a implementação de referência para Java EE - 9 milhões de desenvolvedores no mundo - Java é gerenciado pela Java Community Processhttp://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html
  9. 9. Java 7.0 | O novoJava 7.0 – potencializa o desempenho de Java nosServidores Java 7.0, incorpora melhoras orientadas para aumentar o desempenho de aplicações rodando em servidores com grande capacidade em RAM, e CPU multi-cores. – Gerenciamento de memória mais eficiente - Memória é dividida em vários Heap - First Gargabe collector: divide a memória em vários heap memory, aumentando o desempenho em seu acesso – Nova funcionalidade em API de JDBC, para conectividade a bases de dados RowSet, Statement e Connection implementam a interface Closeable, AutoCloseable
  10. 10. JDBC | Java Database ConnectivityPráticas Recomendadas para Java Developers Mecanismos para estabelecer conexões a MySQL Server, com Java: - DriverManager ( Class Loader Java ) – O método mais simples, mas não é recomendado para ambientes de produção - Pool Connection / Data Source – Requer um servidor de aplicativos, mas é altamente recomendado para ambientes de produção - Persistence Framework – Hibernate, Spring, Memcached & Java ( MySQL 5.6 )
  11. 11. JDBC | Java Database ConnectivityPráticas Recomendadas para Java Developers Pool Connection / DataSource - Um conjunto de conexões, sempre está disponível no pool - Método: getConnection() em Java, obtém uma conexão disponível do pool, sem delay para abrir fisicamente uma conexão - Método closeConnection() em Java, não fecha a conexão, somente a devolve ao pool, para que outro Thread possa reutilizá-la Java Pool Connection Java ( DataSource) Application - Connection1 - Connection2 - Connection3 - ConnectionN...
  12. 12. JDBC | Java Database ConnectivityPráticas Recomendadas para Java Developers Java Pool Connection Java ( DataSource) Application - Connection1 - Connection2 - Connection3 - ConnectionN... Java EE 6 Application Server Reference Implementation
  13. 13. JDBC | DataSource Glassfishhttp://blogs.oracle.com/psterk/entry/criating_and_configuring_a_mysql
  14. 14. JDBC | Java Database ConnectivityPráticas Recomendadas para Java DevelopersJava Pool Connection -O Java EE Application Server, gerencia conexões.( DataSource) - Automaticamente fecha - Connection1 conexões no estado Idle. - Connection2 - Connection3 Conexões abertas sob demanda, - ConnectionN... conforme requerido pela aplicação Java EE 6 - Ele é facilmente configurado pelo administrador do servidor Application Server de aplicações Java EE. Reference Implementation
  15. 15. MySQLvisão geral
  16. 16. MySQL - números interessantes• 155 million• 212 days• 127 billion Você sabe o que são esses números?• 24.9 trillion
  17. 17. MySQL - números interessantes• 155 million• 212 days• 127 billion Você sabe o que são esses números?• 24.9 trillion
  18. 18. MySQL - números interessantes• 155 million number of tweats per day, 1700 per second 6,939/s Japanese New Year MySQL is core architecture for twitter• 212 days uptime of random MySQL server at twitter• 127 billion number of queries executed on single server• 24.9 trillion innodb_rows_read, 1.36M per second source: Jeremy Cole, Twitter DBA, MySQL UC 2011
  19. 19. Questões difíceis… problemas de performance? … servidores down?… queries lentas, custosas? … política de segurança, muda?… onde, quando, como “tunar”? … produtividade de desenv./QA?… problemas de replicação? … qual versão do MySQL rodar?… os sistemas escalarão? … posso recuperar? Por que é melhor usar MySQL Enterprise...
  20. 20. MySQL Enterprise EditionMais segura, escalável banco de dados MySQL, BackupOnline, Desenvolvimento / Ferramentas de monitoração,apoiados pela Oracle Lifetime Suporte Premier Oracle Product Oracle Premier Certifications/Integrations Support MySQL Enterprise MySQL Enterprise Backup Monitor/Query Analyzer MySQL Enterprise MySQL Enterprise Security Scalability MySQL Enterprise High Availability MySQL Workbench
  21. 21. MySQL DatabaseInternals replicação MySQL Slave MySQL Masterupdates updates I/O Threadselects relay binlog Replication SQL Thread data index & binlogs binlog data
  22. 22. MySQL, Replicação- Melhor tempo de resposta mediante a separação de carga, no processamento de consultas entre o master / slave- SELECT Queries, podem ser enviados ao slave para reduzir a carga de processamento de consultas, no master- Disponível para qualquer tipo de storage engine, incluindo replicação entre distintos tipos de storage engine- Obter uma maior disponibilidade com um master / slave- Em caso de falhas no master, é possível utilizar o slave como backup- Respaldo de informação através dos slavesC l i ent s MySQL Replication Slaves Master
  23. 23. Estudos de Caso:MySQL – Replicação Master – Slave
  24. 24. MySQL Replicação semi-sync Novo no MySQL 5.5! • Os dados escritos no master, também são escritos no binary log File O thread I/O, nos slaves, usa as alterações do binlog do master e o escreve em um relay log nos slaves O thread SQL, nos slaves, lê o relay log e aplica as alterações / escritas nos slaves • Se o plugin semi-sync está instalado e SQL Thread IO Thread configurado, o master espera até que o binlog relay thread I/O de algum slave semi-sync, tenha escrito a transação a disco, ou até que ocorra um timeout, então se retorna ao ACK na aplicaçãoMelhora a confiança no FailOverCOMMIT no nodo master é reconhecido, somente quando ao menos um dosnodos slaves tenha registrado o evento MasterEm caso de FailOver, não há perda de informação Slavehttp://dev.mysql.com/doc/refman/5.5/en/replication-howto.html
  25. 25. JDBC | Java Database Connectivity Práticas Recomendadas para Java Developers JDBC – MySQL Master, Slave1, Slave2, SlaveN – Round Robin - Load Balancing de Leitura em servidores Slave - Servidor Master para Read & Writes - Slaves para Read Only - JDBC Connector automaticamente, seleciona um Slave da lista de Slaveshttp://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-connection.html
  26. 26. JDBC | Java Database Connectivity Prácticas Recomendadas para Java Developers Consulta Sepración ler e escrever operações com Java e MySQLPasso 1) Importação de Livrariashttp://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-connection.htm
  27. 27. JDBC | Java Database Connectivity Prácticas Recomendadas para Java Developers Consulta Sepración ler e escrever operações com Java e MySQL Passo 2) - Configuração de Driver para uso em RoundRobin Load Balancinghttp://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-connection.html
  28. 28. JDBC | Java Database Connectivity Prácticas Recomendadas para Java Developers Consulta Sepración ler e escrever operações com Java e MySQLPasso 3) - configurações de conexão com o mestre e escravos
  29. 29. JDBC | Java Database Connectivity Práticas Recomendadas para Java DevelopersPasso 4) - Insert Dados em Master ( Read Only False )
  30. 30. JDBC | Java Database Connectivity Práticas Recomendadas para Java DevelopersPasso 6) - Select Dados em um dos Slaves ( Read Only True )
  31. 31. MySQL Enterprise Monitor• Monitor de Replicação
  32. 32. MySQL Enterprise Monitor• Vista única consolidada do ambiente MySQL• Auto descobrimento de servidores MySQL, replicação e topologias• Alertas e monitoramento adaptável e baseado en regras• Identificação de problemas antes que ocorram• Redução de risgo e tempo de inatividade• Facilidade para escalamento Um assistente DBA Virtual para horizontal sem requerer mais MySQL DBAshttp://mysql.com/products/enterprise/monitor.html
  33. 33. MySQL Enterprise Monitor• Java Connector plugin / Query Analyzer
  34. 34. MySQL ~ Extensões Comerciais✔ MySQL Enterprise Backup ✔ Incremental, Compression, Point in Time Recovery✔ MySQL High Availability ✔ Oracle OVM MySQL Template & Windows Failover Clustering✔ Enterprise Security ✔ Plug-In: MySQL External Authentication✔ Enterprise Scalability ✔ Plug-In: MySQL Thread Pool✔ Enterprise Monitor, Workbench, Technical Support ✔ Virtual MySQL Tunning assistant & 24x7 support
  35. 35. Gestão Padrão do Thread Pool Clientes Externos Gestão Padrão Execução das Conexões das Threads doThread Pool Conexões / Declarações atribuídas aos Threads durante sua existênciaClientes Internos• Conexões são atribuídas a 1 thread durante a existência da Conexão.• A mesma thread é usada para todas as declarações de execução (single threaded)
  36. 36. Com o Thread Pool Habilitado Clientes Externos Thread Pool Execução das Conexões das Threads Grupo Thread 1 Grupo Thread 1 Threads 1 - 4096 Grupo Thread 2 Grupo Thread 2 Threads 4097 - 8193 Grupo Thread N Grupo Thread N Threads 8194 - NClientes Internos• Pool contém um número de Grupo de Threads(default = 16), cada um gerencia até 4096 threads reusáveis• Cada conexão é atribuída ao grupo de thread via round robin mantém a performance em altas cargas de usuários/conexões
  37. 37. Comparativo com/sem Thread Pool MySQL Enterprise Edition ComThread Pool MySQL Community Server Sem Thread Pool MySQL 5.5.16 Oracle Linux 6.1, Unbreakable Kernel 2.6.32 2 sockets, 24 cores, 2 X 12-core Intel(R) Xeon(R) X5670 2.93GHz CPUs20x Melhor Escalabilidade comThread Pool 72GB DDR3 RAM 2 X LSI SCSI Disk (MR9261-8i) (597GB)
  38. 38. MySQL Enterprise Backup• Anteriormente “InnoDB Hot Backup”• Online, non-locking backup & recovery • Tables, Indexes • Server, database, ou object-level• Backups Lógico e Físico• Backups Completos ou Incrementais• Point-in-time recovery• Backups Comprimidos• Também oferece backup e recuperação para MyISAM• Multi-plataforma (Windows, Linux, Unix)• Certificado para Oracle Secure Backup (SBT 2.0)
  39. 39. BackupsBackups são até 3.5x mais rápidos do que mysqldump
  40. 40. Restores Restore é até 16x mais rápido do que mysqldump- mysqldump performance não é linear (mais tables/indexes impacta na performance)- MySQL Enterprise performance é quase linear
  41. 41. Compressão do BackupO tamanho do Backup é reduzido de 65% até 93%
  42. 42. MySQL Workbenchhttp://www.mysql.com/products/workbench/
  43. 43. Questões Difíceis, Soluções Reais… problemas de performance? … servidores down?• MySQL Enterprise Scalability • Oracle Premier 7x24 Support• MySQL Enterprise Monitor, Advisors, Query Analyzer • MySQL Enterprise Monitor, Advisors• MySQL Consultative Support • MySQL Enterprise High Availability… queries lentas, custosas? … política de segurança, muda?• MySQL Enterprise Monitor, Query Analyzer • MySQL External Authentication… onde, quando, como “tunar”? • MySQL Enterprise Monitor, Security Advisor• MySQL Enterprise Monitor, Advisors, Query Analyzer• MySQL Consultative Support … produtividade de desenv./QA? • MySQL Workbench SE • MySQL Enterprise Monitor, Query Analyzer… problemas de replicação?• MySQL Enterprise Monitor, Replication Monitor … qual versão do MySQL rodar?• Oracle Premier 7x24 Support • Oracle Premier 7x24 Support… os sistemas escalarão? … posso recuperar?• MySQL Enterprise Scalability • MySQL Enterprise Backup• MySQL Enterprise Monitor, Advisors, Query Analyzer• MySQL Consultative Support
  44. 44. Obrigado / Gracias!MySQL na América Latina ( En Español ) Kattia.Fallas@Oracle.com Manuel.Contreras@Oracle.com Pedro.Andrade@Oracle.com @mysql_espanol @mysql_br @mysql ( Official English )

×