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
Próximos SlideShares
Carregando em…5
×

MySQL + Java - Manuel Contreras

1.983 visualizações

Publicada em

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

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.983
No SlideShare
0
A partir de incorporações
0
Número de incorporações
51
Ações
Compartilhamentos
0
Downloads
64
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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 )

×