MySQL OTN Day
          <Insert Picture Here>               Brasil 7 Dezembro 2011
                                              3:00 pm
                                              Sheraton WTC
                                              Sao Paulo, Brasil




MySQL + Java – Nova vida a Sakila & Duke com a Oracle

Kattia.Fallas@Oracle.com - Contas Corporativas, MySQL Amércia Latina
Manuel.Contreras@Oracle.com – Especialista Técnico, MySQL América Latina
Pedro.Andrade@Oracle.com – Contas Estratégicas, MySQL América Latina
MySQL+Java: Nova vida a Sakila & Duke com a
                      Oracle

MySQL na América Latina ( En Español )
  Kattia.Fallas@Oracle.com
  Manuel.Contreras@Oracle.com
  Pedro.Andrade@Oracle.com
              @mysql_espanol

MySQL 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
OTN MySQL User Forum – Brasil ~ Introdução




México e Brasil - rivais no futebol ?
OTN MySQL User Forum – Brasil ~ Introdução




Nã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 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.
Oracle: nova vida a Duke & Sakila
Open source software com suporte Enterprise
- Em 1995 Sun microsystems cria Java uma linguagem de programação
multiplataforma, 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ão
de dólares pelo OSS.


- Em 2010, Oracle Inc adquire a Sun microsystems, a proposta: oferecer soluções
desde o disco até as aplicações, fortalecendo sua oferta open source com Java e
MySQL.


- Dezembro de 2010, Oracle libera MySQL 5.5, considerado pela comunidade
como o melhor release de MySQL em sua historia.


- Julho de 2011, Java 7.0 é liberado, nova versão com melhorias no JVM hotspot
e o melhor desempenho para servidores Java.
Java
A plataforma de desenvolvimento
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 Process


http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html
Java 7.0 | O novo
Java 7.0 – potencializa o desempenho de Java nos
Servidores
 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
JDBC | Java Database Connectivity
Prá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 )
JDBC | Java Database Connectivity
Prá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...
JDBC | Java Database Connectivity
Práticas Recomendadas para Java Developers

                          Java Pool Connection
   Java                   ( DataSource)
   Application               - Connection1
                             - Connection2
                             - Connection3
                             - ConnectionN...



                                                Java EE 6
                                                Application Server
                                                Reference
                                                Implementation
JDBC | DataSource Glassfish




http://blogs.oracle.com/psterk/entry/criating_and_configuring_a_mysql
JDBC | Java Database Connectivity
Práticas Recomendadas para Java Developers

Java 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
MySQL
visão geral
MySQL - números interessantes

• 155 million


• 212 days

• 127 billion
                  Você sabe o que são
                  esses números?

• 24.9 trillion
MySQL - números interessantes

• 155 million


• 212 days

• 127 billion
                  Você sabe o que são
                  esses números?

• 24.9 trillion
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
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...
MySQL Enterprise Edition
Mais segura, escalável banco de dados MySQL, Backup
Online, 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
MySQL Database
Internals replicação

                                        MySQL Slave
   MySQL Master



updates      updates                          I/O Thread
selects

                                                            relay
                                                           binlog

                       Replication

                                          SQL Thread
 data

             index &
             binlogs



                                     binlog           data
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 slaves
C l i ent s




                                                 MySQL Replication


                                 Slaves                               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
   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ção

Melhora a confiança no FailOver
COMMIT no nodo master é reconhecido, somente quando ao menos um dos
nodos slaves tenha registrado o evento                          Master
Em caso de FailOver, não há perda de informação                  Slave




http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html
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 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

  Consulta Sepración ler e escrever operações
  com Java e MySQL




Passo 1) Importação de Livrarias




http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-connection.htm
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 Balancing




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

  Consulta Sepración ler e escrever operações
  com Java e MySQL

Passo 3) - configurações de conexão com o mestre e escravos
JDBC | Java Database Connectivity
  Práticas Recomendadas para Java Developers
Passo 4) - Insert Dados em Master ( Read Only False )
JDBC | Java Database Connectivity
  Práticas Recomendadas para Java Developers

Passo 6) - Select Dados em um dos Slaves ( Read Only True )
MySQL Enterprise Monitor
•   Monitor de Replicação
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
  DBAs
http://mysql.com/products/enterprise/monitor.html
MySQL Enterprise Monitor
• Java Connector plugin / Query Analyzer
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
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ência



Clientes 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)
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 - N

Clientes 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
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 CPUs

20x Melhor Escalabilidade comThread Pool        72GB DDR3 RAM
                                                2 X LSI SCSI Disk (MR9261-8i) (597GB)
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)
Backups




Backups 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 impacta na performance)
- MySQL Enterprise performance é quase linear
Compressão do Backup




O tamanho do Backup é reduzido de 65% até 93%
MySQL Workbench




http://www.mysql.com/products/workbench/
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
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 )

MySQL + Java - Manuel Contreras

  • 1.
    MySQL OTN Day <Insert Picture Here> Brasil 7 Dezembro 2011 3:00 pm Sheraton WTC Sao Paulo, Brasil MySQL + Java – Nova vida a Sakila & Duke com a Oracle Kattia.Fallas@Oracle.com - Contas Corporativas, MySQL Amércia Latina Manuel.Contreras@Oracle.com – Especialista Técnico, MySQL América Latina Pedro.Andrade@Oracle.com – Contas Estratégicas, MySQL América Latina
  • 2.
    MySQL+Java: Nova vidaa Sakila & Duke com a Oracle MySQL na América Latina ( En Español ) Kattia.Fallas@Oracle.com Manuel.Contreras@Oracle.com Pedro.Andrade@Oracle.com @mysql_espanol MySQL 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.
    OTN MySQL UserForum – Brasil ~ Introdução México e Brasil - rivais no futebol ?
  • 4.
    OTN MySQL UserForum – Brasil ~ Introdução Não.... México e Brasil são sempre amigos!
  • 5.
    ​ ¿Por queusar 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.
  • 7.
    Oracle: nova vidaa Duke & Sakila Open source software com suporte Enterprise - Em 1995 Sun microsystems cria Java uma linguagem de programação multiplataforma, 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ão de dólares pelo OSS. - Em 2010, Oracle Inc adquire a Sun microsystems, a proposta: oferecer soluções desde o disco até as aplicações, fortalecendo sua oferta open source com Java e MySQL. - Dezembro de 2010, Oracle libera MySQL 5.5, considerado pela comunidade como o melhor release de MySQL em sua historia. - Julho de 2011, Java 7.0 é liberado, nova versão com melhorias no JVM hotspot e o melhor desempenho para servidores Java.
  • 8.
    Java A plataforma dedesenvolvimento
  • 9.
    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 Process http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html
  • 10.
    Java 7.0 |O novo Java 7.0 – potencializa o desempenho de Java nos Servidores 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
  • 11.
    JDBC | JavaDatabase Connectivity Prá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 )
  • 12.
    JDBC | JavaDatabase Connectivity Prá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...
  • 13.
    JDBC | JavaDatabase Connectivity Práticas Recomendadas para Java Developers Java Pool Connection Java ( DataSource) Application - Connection1 - Connection2 - Connection3 - ConnectionN... Java EE 6 Application Server Reference Implementation
  • 14.
    JDBC | DataSourceGlassfish http://blogs.oracle.com/psterk/entry/criating_and_configuring_a_mysql
  • 15.
    JDBC | JavaDatabase Connectivity Práticas Recomendadas para Java Developers Java 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
  • 16.
  • 17.
    MySQL - númerosinteressantes • 155 million • 212 days • 127 billion Você sabe o que são esses números? • 24.9 trillion
  • 18.
    MySQL - númerosinteressantes • 155 million • 212 days • 127 billion Você sabe o que são esses números? • 24.9 trillion
  • 19.
    MySQL - númerosinteressantes • 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
  • 20.
    Questões difíceis … problemasde 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...
  • 21.
    MySQL Enterprise Edition Maissegura, escalável banco de dados MySQL, Backup Online, 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
  • 22.
    MySQL Database Internals replicação MySQL Slave MySQL Master updates updates I/O Thread selects relay binlog Replication SQL Thread data index & binlogs binlog data
  • 23.
    MySQL, Replicação - Melhortempo 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 slaves C l i ent s MySQL Replication Slaves Master
  • 24.
    Estudos de Caso: MySQL– Replicação Master – Slave
  • 25.
    MySQL Replicação semi-syncNovo 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ção Melhora a confiança no FailOver COMMIT no nodo master é reconhecido, somente quando ao menos um dos nodos slaves tenha registrado o evento Master Em caso de FailOver, não há perda de informação Slave http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html
  • 26.
    JDBC | JavaDatabase 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 Slaves http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication- connection.html
  • 27.
    JDBC | JavaDatabase Connectivity Prácticas Recomendadas para Java Developers Consulta Sepración ler e escrever operações com Java e MySQL Passo 1) Importação de Livrarias http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-connection.htm
  • 28.
    JDBC | JavaDatabase 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 Balancing http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-replication-connection.html
  • 29.
    JDBC | JavaDatabase Connectivity Prácticas Recomendadas para Java Developers Consulta Sepración ler e escrever operações com Java e MySQL Passo 3) - configurações de conexão com o mestre e escravos
  • 30.
    JDBC | JavaDatabase Connectivity Práticas Recomendadas para Java Developers Passo 4) - Insert Dados em Master ( Read Only False )
  • 31.
    JDBC | JavaDatabase Connectivity Práticas Recomendadas para Java Developers Passo 6) - Select Dados em um dos Slaves ( Read Only True )
  • 32.
    MySQL Enterprise Monitor • Monitor de Replicação
  • 33.
    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 DBAs http://mysql.com/products/enterprise/monitor.html
  • 35.
    MySQL Enterprise Monitor •Java Connector plugin / Query Analyzer
  • 37.
    MySQL ~ ExtensõesComerciais ✔ 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
  • 38.
    Gestão Padrão doThread 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ência Clientes 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)
  • 39.
    Com o ThreadPool 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 - N Clientes 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
  • 40.
    Comparativo com/sem ThreadPool 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 CPUs 20x Melhor Escalabilidade comThread Pool 72GB DDR3 RAM 2 X LSI SCSI Disk (MR9261-8i) (597GB)
  • 41.
    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)
  • 42.
    Backups Backups são até3.5x mais rápidos do que mysqldump
  • 43.
    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
  • 44.
    Compressão do Backup Otamanho do Backup é reduzido de 65% até 93%
  • 45.
  • 46.
    Questões Difíceis, SoluçõesReais … 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
  • 47.
    Obrigado / Gracias! MySQLna 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 )