• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
MySQL para Desenvolvedores de Produto
 

MySQL para Desenvolvedores de Produto

on

  • 82 views

Dentro do ciclo de desenvolvimento de um produto há várias atividades que vão desde a seleção da melhor tecnologia até boas práticas de manutenção em ambiente produtivo. Nesta apresentação ...

Dentro do ciclo de desenvolvimento de um produto há várias atividades que vão desde a seleção da melhor tecnologia até boas práticas de manutenção em ambiente produtivo. Nesta apresentação mostramos algumas novidades do MySQL que ajudarão nestas tarefas associadas ao desenvolvimento de um excelente produto.

Statistics

Views

Total Views
82
Views on SlideShare
81
Embed Views
1

Actions

Likes
0
Downloads
3
Comments
0

1 Embed 1

http://www.slideee.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    MySQL para Desenvolvedores de Produto MySQL para Desenvolvedores de Produto Presentation Transcript

    • MySQL para Desenvolvedores de Produto Julho 2014 Airton Lastori airton.lastori@oracle.com
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.2 Objetivos  Entender como o MySQL pode ajudá-lo com seu produto  Conhecer as novidades do universo MySQL que podem ajudar na construção ou migração de um produto/aplicação
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.3 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.5 Por que MySQL?  MySQL como parte integral do seu produto  Oracle como Parceira  Investimento Oracle no MySQL  Casos de sucesso  Devo migrar para MySQL? Visão de Negócios
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.9 Oracle MySQL para ISV e OEM MySQL Community Edition – Distribuído ao cliente final empacotado com código aberto de seu produto – Uso Interno, SaaS, Cloud MySQL Enterprise Edition – Uso Interno, SaaS, Cloud MySQL Comercial (OEM) – Distribuído ao cliente final empacotado com código proprietário Sem suporte e ferramentas Enterprise Licença perpétua + 19% de suporte anual Suporte Oracle via Parceiro Subscrição Anual Suporte direto da Oracle
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.10 Tomas Ulin  [video] youtube.com/watch?v=8stNlpJm_nA  [slides] mysql.com/why- mysql/presentations/raising-the- mysql-bar VP de Engenharia do MySQL na Oracle
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.11 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.11 COMPONENTES da pilha MySQL: Aplicações Web da próxima geração On-Premises, na Nuvem, Aplicações Distribuídas
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.12 Elevando o nível Novamente, um melhor MySQL para vocês
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.13 s
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.15 Compromisso Oracle com MySQL https://blogs.oracle.com/MySQL/entry/mysql_connect_keynotes_and_news
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.16 Bem-vindo, WebScaleSQL!  Branch do MySQL 5.6, com patches para uso em Escala Web  Investimentos de gigantes da Web para melhorar o MySQL  Ótima notícia para a comunidade e novos desenvolvedores  Ainda mais fácil a cooperação entre Oracle e as gigantes da Web Facebook, Google, LinkedIn & Twitter!
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.17 Alguns clientes MySQL
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.18 Motivos para migração  otimizar custos e reduzir riscos – licenciamento, suporte  aumentar faturamento – expandir base, mudar modelo de negócios / distribuição  outras soluções já não atendem mais tecnicamente (ex. flat file)  portabilidade  facilidade de uso e flexibilidade  escalabilidade e alta-disponibilidade Quando custos+riscos da migração são compensados pelos ganhos?
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.19 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.20 Qual Banco de Dados devo usar?  Quais as principais características técnicas?  Quem, por que e onde está usando?  Onde posso usar no meu contexto?  Qual o futuro da tecnologia?  Continua em desenvolvimento? Escolher a tecnologia correta de acordo com requisitos
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.21 Fonte: http://db-engines.com/en/ranking_trend (maio/14)
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.22 Características técnicas do MySQL Lista mais abrangente no site, aqui abordaremos apenas algumas mysql.com/products/enterprise/techspec.html
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.23 Onde o MySQL geralmente se encaixa • Novas aplicações e aplicações customizadas Ad-hoc • principalmente arquitetura Web (ex. LAMP stack) • arquiteturas inovadoras, NoSQL (versão 5.6 e Cluster 7.2) • Aplicações híbridas • expansão de sistemas legados • MySQL como front-end e Oracle DB como back-end • Online, SaaS e Mobile • E-commerce/OLTP e pagamentos digitais • Gerenciamento de Conteúdo (CMS) • Redes Sociais, mensagens e colaboração • Games Sociais e MMO • SMS, e-marketing • Datamarts e Relatórios Departamentais • Embarcadas, Infra Telecom, Infra TI
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.24 Call Detail Records (CDR) para suportar Billing, gestão de dispositivos, troubleshooting de redes, provisionamento e telemetria. Transaction Detail Records que é uma variante do CDRs com foco em troubleshooting. Recomendações Online – Cross-promotion. Coleta várias informações sobre as preferências do cliente toda vez que ele é “tocado” pela operadora. Traditional E-Commerce – Carrinho de compra, etc. D2C (Demand-to-Close) – Essencialmente um workflow que rastreia um “lead” no ciclo de vida até que ele vire um negócio (cliente). Call Center Queueing – Normalmente uma aplicação em cima do software do call center da empresa para gerir o tempo de espera dos seus clientes (McDonalds, Apple, etc) Customer Care Intranet - O caso da Verizon Outros usos em Telco
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.25 Desafio Fornecer uma plataforma para os funcionários onde eles poderiam trabalhar em redes sociais, visualizar e hostear microsites, live streaming de vídeos, blog e divulgar as últimas notícias. TI decidiu usar o LAMP stack para suportar seu portal 24x7 de missão crítica (Vzweb, Vzwiki e Vztube), com o Drupal como front-end e MySQL no Linux como o backend, e alguns outros sites internos também em MySQL. Acessível aos 78.000 funcionários SLA 99,985% https://blogs.oracle.com/MySQL/entry/verizon_wireless_supports_its_mission Solução MySQL 5.5 in 2011 InnoDB store engine MySQL Enteprise Thread Pooling Resultado "MySQL é um componente chave em nosso portal, disse Shivinder Singh, DBA sênior da Verizon Wireless. “Alcançamos uma melhoria de desempenho de 1400% ao passar do store engine de MyISAM para InnoDB, atualizando para a última versão GA MySQL 5.5, e usando o MySQL Thread Pool para suportar um alto número de conexões simultâneas. MySQL tornou-se parte de nossa infra-estrutura de TI"
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.26 Desafio Como em qualquer sistema de processamento de pagamentos financeiros, a construção de um sistema altamente confiável com disponibilidade 24x7 é a primeira prioridade. A Paggo não pode dar ao luxo de perda de dados. Perda de dados resulta em perda de negócios. A Paggo teve de construir um sistema que poderia crescer e performar conforme novos comerciantes e compradores cresciam, aumentando as transações. Em cima disso, Paggo é uma startup com um orçamento limitado, então tivemos que começar pequeno, com a capacidade de escalar a infra-estrutura incrementalmente, sem custos iniciais enormes. 40.000 comerciantes, 1.2 milhões de assinantes e 750.000 transações financeiras/mês 99,999% uptime Solução MySQL Cluster Resultado "Paggo não teria sido possível sem o MySQL Cluster. Nenhum outro produto poderia nos dar a capacidade de começar pequeno, escalar rapidamente e fornecer para o nosso sistema de pagamento financeiro 24x7 disponibilidade." Cícero Torteli Fundador, Paggo http://www.mysql.com/why-mysql/case-studies/paggo-mysql-cluster-java-financial-transactions-over-telecom/
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.27 MySQL Enterprise Monitor 2.2 MySQL Cluster 7.1 MySQL Cluster Manager 1.0 MySQL Workbench 5.2 MySQL Database 5.5 MySQL Enterprise Backup 3.5 MySQL Enterprise Monitor 2.3 MySQL Cluster Manager 1.1 MySQL Enterprise Backup 3.7 All GA! Oracle VM Template for MySQL Oracle Products Certifications MySQL Windows Installer MySQL Enterprise Security MySQL Enterprise Scalability MySQL Cluster 7.2 MySQL Cluster Manager 1.3 MySQL Utilities 1.0.6 MySQL Workbench 6.0 All GA! MySQL Enterprise Backup 3.10 MySQL Enterprise Audit MySQL Windows Tools MySQL Database 5.6 MySQL Cluster 7.3 MySQL Workbench 6.1 MySQL Fabric 1.4 RC MySQL Database 5.7 DMR *Development Milestone Release All GA! Available Now! Breve histórico: 2010 - 2014
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.28 5.7 DMR 1 Abril 2013 DMR 2 Set 2013 DMR 3 Dez 2013 DMR 4 Novas funcionalidades labs.mysql.com Disponível Agora! ... 5.6 GA Fev 2013 Anunciado o MySQL 5.7 DMR 4
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.31 MySQL 5.7: DMR 4  InnoDB: melhor throughput transacional, disponibilidade, IO  Replication: melhor escalabilidade e disponibilidade  Utilities: facilidades para automação e DevOps  Performance Schema: melhores métricas e diagnósticos  Optimizer: melhores tempos nas queries, EXPLAINs, buffering e particionamento  Connections: taxas mais altas, sessões mais eficientes O MySQL 5.7 é o MySQL 5.6 + melhorias! Saiba mais: slideshare.net/MySQLBR/novidades-do-universo-mysql-maioi-2014
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.32 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.33 MySQL é adequado para o meu produto?  Quais conceitos fundamentais para uso correto do MySQL?  Quais plataformas e linguagens posso utilizar?  Quais os limites da tecnologia?  Quais recursos de alta-disponibilidade (HA) e escalabilidade?  Quais recursos de segurança? Dúvidas técnicas, requisitos não funcionais
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.34 Aplicação + Connector JDBC, ODBC, .Net, PHP, Python, Perl, Ruby, Native C API… MySQL Database mysqld Cliente-Servidor Gerenciamento mysql / monitor / backup
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.35 Aplicação + MySQL Database libmysqld libmysqld
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.36 Client-server vs libmysqld client-server (embedded, SaaS, Web, etc.) • Comunica com a aplicação usando MySQL Connectors ou APIs • Executado como services/daemons ou via linha de comando • Deve ser incluído como parte da instalação da aplicação • A instalação e manutenção pode ser invisível ao usuário final libmysqld (deeply embedded) • Comunicação restrita a chamadas diretas em C • Linkado diretamente na aplicação • Não requer instalação (services/daemons) • Uso em aplicações com banco de dados auto-contido • Algumas limitações: mais footprint de memória, sem replicação, UDFs, core dumps, traces, etc.
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.37 Plataformas suportadas  Hardware – 32 e 64 bit x86 – SPARC  Sistemas Operacionais – Windows – Linux – MacOS – FreeBSD – Solaris Maior portabilidade, mais liberdade de escolha mysql.com/support/supportedplatforms/database.html
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.38 Amplo suporte a várias linguagens Várias opções de conectores e APIs Oracle • Connector/ODBC • Connector/Net (ADO.NET) • Connector/Python • Connector/J (JDBC) • Connector/C (C API) • Connector/C++ (C++ API) • Memcached API • MySQL for Excel Comunidade • PHP • Perl • Ruby • TCL • Eiffel • Arduino • … dev.mysql.com/doc/refman/5.6/en/connectors-apis.html
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.39 Enterprise Management Services and Utilities Backup & Recovery Monitor Workbench Utilities Connection Pool, SQL Interface, Parser, Optimizer, Caches Clients & Connectors Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl mysqld Clients and Apps Arquitetura MySQL Server Storage Engines InnoDB, MyISAM, Memory, Archive, Cluster (NDB API), etc… Filesystems, Files & Logs Data, Index, Logs…
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.40 Cluster Data Nodes NDB NDB Connection Pool, SQL Interface, Parser, Optimizer, Caches Enterprise Management Services and Utilities Backup & Recovery Monitor Workbench Utilities Clients & Connectors Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl Arquitetura MySQL Cluster Storage Engines InnoDB, MyISAM, Memory, Archive, Cluster (NDB API), etc… Filesystems, Files & Logs Data, Index, Logs… mysqld Clients and Apps ndbd mgm_ndbd Management
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.41 Storage Engines MyISAM InnoDB NDB Cluster Transações ✖ ✔ ✔ Nível de Lock Tabela Linha Linha Replicação Assíncrona ou Semi-síncrona Assíncrona ou Semi-síncrona, crash-safe Síncrona, Multi-master, crash-safe sem SPOF Foreign Keys ✖ ✔ ✔ Full-text indexes ✔ ✔ ✖ Compressão de dados somente Leitura ✔ ✖ Caches somente Índices Dados e Índices Dados e Índices Suporte Geoespacial Tipos de Dados e Índices Somente Tipos de Dados somente Tipos de Dados Limite de armazenamento 256TB 64TB 384EB (~3TB em RAM) dev.mysql.com/doc/refman/5.6/en/storage-engines.html
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.42 Default Storage Engine InnoDB
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.43 Acesso chave-valor ao InnoDB Via Memcached API Usa clients Memcached existentes Sem SQL parsing, ultra-rápido Acesso SQL e NotOnlySQL Operações chave-valor mas também queries SQL, JOINs, FKs, etc. Memcached com Persistência no InnoDB Método transparente para persistir os dados em memória volátil Memcached plug-in no mysqld , mapeado à API nativa do InnoDB Shared process para baixa latência SQL (MySQL Client) InnoDB Storage Engine MySQL Server Memcached plugin Application/Client NoSQL (Memcached Prot.) mysqld http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached.html Flexibilidade MySQL 5.6: InnoDB NoSQL com Memcached
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.44 2008 até 4 CPU MySQL 5.0 MySQL AB até 16 CPU MySQL 5.1 Sun até 32 CPU MySQL 5.5 Oracle até 48 CPU MySQL 5.6 Evolução da escalabilidade do MySQL 2009 2010 2013 Atualize o MySQL e use InnoDB.
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.45 MySQL 5.6: GA há 17 meses •Performance: +234% para Leituras e +151% para Escritas, SSD •Escalabilidade: 48 cores •Flexibilidade: Memcached API, Full Text •Disponibilidade: mudanças online no schema, export/import tablespaces InnoDB •Performance: até centenas de vezes mais rápido em alguns cenários, estatísticas persistentes •Instrumentação: EXPLAINS com traces e para UPDATES e DELETES Otimizador •Performance: ganhos de 2x a 5x com paralelismo e group commit •Flexibilidade: novas topologias e rastreabilidade com GTIDs •Disponibilidade: automatização de failover e recovery Replicação •PERFORMANCE_SCHEMA mais completaInstrumentação •Segurança •Facilidade de uso •Flexibilidade •...E MAIS... Outras melhorias dev.mysql.com/tech-resources/articles/mysql-5.6-rc.html
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.46  PERFORMANCE_SCHEMA  Novas configurações padrão, mais adequadas ao hardware atual  Particionamento melhorado  import/export  mais capacidade e performance  seleção explícita  Backup remoto do Binlog  Slaves com atraso programado  Identificador único universal para servidor (server UUID)  TIME/TIMESTAMP/DATETIME  precisão de fração de segundo, CURRENT_TIMESTAMP default /auto update, TIMESTAMP nullable por padrão  GIS: operações espaciais precisas  E MAIS... Outras melhorias no MySQL 5.6 Mais facilidade de uso e flexibilidade mysql.com/why-mysql/white-papers/whats-new-mysql-5-6
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.47 MySQL 5.5.28 MySQL 5.6.7 +234% Ganhos de Performance 0 2.000 4.000 6.000 8.000 10.000 12.000 14.000 16.000 18.000 32 64 128 256 512 TransaçõesporSegundo Conexões MySQL 5.6 vs. 5.5 - Leituras (Linux) Oracle Linux 6 Intel(R) Xeon(R) E7540 x86_64 MySQL leveraging: - 48 of 96 available CPU threads - 2 GHz, 512GB RAM Performance MySQL 5.6: InnoDB SysBench Benchmarks
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.48 MySQL 5.5.28 MySQL 5.6.7 +151% Ganhos de Performance 0 2.000 4.000 6.000 8.000 10.000 12.000 32 64 128 256 512 TransaçõesporSegundo Conexões MySQL 5.6 vs. 5.5 – Escritas+Leituras (Linux) Oracle Linux 6 Intel(R) Xeon(R) E7540 x86_64 MySQL leveraging: - 48 of 96 available CPU threads - 2 GHz, 512GB RAM Performance MySQL 5.6: InnoDB SysBench Benchmarks
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.49  Thread Pool Plug-In • Adiciona mais inteligência ao modelo padrão de gerenciamento de threads – agrupa e reutiliza • Modelo padrão, sem Thread Pool: 1 thread por conexão, performance excelente, mas limita a escalabilidade ao crescer o número de conexões de usuários • Com Thread Pool: reúso de threds, escala o número de conexões de usuários mantendo os mesmos níveis de performance • Implementado utilizando Thread Pool API Assegura desempenho melhor e sustentável, mesmo quando o número de usuários continua crescendo. MySQL Enterprise Scalability
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.50 60x Melhor Escalabilidade comThread Pool MySQL 5.6.11 Oracle Linux 6.3, Unbreakable Kernel 2.6.32 4 sockets, 24 cores, 48 Threads Intel(R) Xeon(R) E7540 2GHz CPUs 512GB DDR3 RAM Thread Pool habilitado/desabilitado
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.51 18x Melhor Escalabilidade com Thread Pool Thread Pool habilitado/desabilitado MySQL 5.6.11 Oracle Linux 6.3, Unbreakable Kernel 2.6.32 4 sockets, 24 cores, 48 Threads Intel(R) Xeon(R) E7540 2GHz CPUs 512GB DDR3 RAM
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.52 Referências de Escala Social Network Small Medium Large Extra Large Queries/Second <500 <5,000 10,000+ 25,000+ Transactions/Second <100 <1,000 10,000+ 25,000+ Concurrent Read Users <100 <5,000 10,000+ 25,000+ Concurrent Write Users <10 <100 1,000+ 2,500+ Database Size Sessions <2 GB <10 GB 20+ GB 40+ GB eCommerce <2 GB <50 GB 50+ GB 200+ GB Analytics (Multi-Structured Data) <10 GB <1TB 10+ TB 100+ TB Content Management (Meta-Data) <10 GB <500 GB 1+ TB 2+ TB Saiba mais: slideshare.net/MySQLBR/arquiteturas-de-referncia-mysql
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.53 MySQL 5.7 Sysbench Benchmark Sysbench Point Select Intel(R) Xeon(R) CPU X7560 x86_64 5 sockets x 8 cores-HT (80 CPU threads) 2.27GHz, 256G RAM Oracle Linux 6.5 2X mais rápido que o MySQL 5.6 Mais de 3X mais rápido que o MySQL 5.5 630,000 QPS
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.54 MySQL 5.7: InnoDB Memcached Contribuição do Facebook Intel(R) Xeon(R) CPU X7560 x86_64 8 sockets x 6 cores-HT (96 CPU threads) 2000Mhz, 256G RAM Oracle Linux 6.2 6x mais rápido que o MySQL 5.6 1,150,000 QPS 0 200000 400000 600000 800000 1000000 1200000 1400000 8 16 32 64 128 256 512 1024 QueriesperSecond Concurrent User Sessions 5.7.3 5.6
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.55 MySQL é adequado para o meu produto?  Quais conceitos fundamentais para uso correto do MySQL?  Quais plataformas e linguagens posso utilizar?  Quais os limites da tecnologia?  Quais recursos de alta-disponibilidade (HA) e escalabilidade?  Quais recursos de segurança? Dúvidas técnicas, requisitos não funcionais
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.56 Aplicação Master Slave • Modelo assíncrono (padrão) • Modelo semi-síncrono (a partir da versão 5.5) Escritas & Leituras Replicação MySQL
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.57 Aplicação Master Slave • Master down • Slave promovido para Master Escritas & Leituras MySQL failover
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.58 Replicação MySQL: escalando LEITURAS • Divisão de leituras e escritas (R/W Split) • É possível adicionar mais slaves, dividir a carga Leituras Aplicação Master Slave Escritas & Leituras Slave … Leituras
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.59 Multi-Source Replication  Consolida updates de múltiplos Masters em um Slave – Visão consolidada – Novas topologias – Ponto centralizado de backup – Relatórios mais fáceis  Compatível com Semi-Synchronous Replication & Multi-Thread Slaves  Master-specific slave filters  Aplicação continua responsável por manter data sets não-conflitantes entre as diversas fontes Binlog Master 1 Binlog Master 2 … … Binlog Master N IO 1 Relay 1 Coordinator W1 W2 … WX IO 2 Relay 2 Coordinator W1 W2 … WX … … Coordinator W1 W2 … WX IO N Relay N Coordinator W1 W2 … WX Slave labs.mysql.com
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.60 MySQL Fabric 1.4 GA (MySQL Utilities 1.4.3)  Alta disponibilidade: – Monitoramento do Server com failover automático e transparente para aplicação  Conectores devem ser “Fabric-aware”: – Java, PHP, Python  Sem Proxy, sem latencia extra e SPoF  Escalabilidade de escrita com sharding: – Aplicação define a shard key (Range ou Hash) – Ferramentas para re-sharding – Tabelas globais & global updates Alta-disponibilidade + escalabilidade de escrita com sharding MySQL Fabric Connector Application Read-slaves SQL Master group Read-slaves Master group
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.61 API Nodes Arquitetura MySQL Cluster Data Nodes ndbd ndbd Management mgm_ndbd Clients Application Layer Data Layer ndbd ndbd
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.62 MySQL Cluster 7.4  Ganho de Performance sobre v7.3 – 47% (Read-Only) – 38% (Read-Write) Melhor performance e simplicidade operacional labs.mysql.com  Restarts mais rápidos dos nós – Recovering nodes rejoin the cluster faster
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.63 Soluções de HA homologadas pela Oracle MySQL Replication MySQL Fabric Oracle VM Template Solaris Cluster Windows Cluster DRBD MySQL Cluster Clustering Mode Master + Slaves Master + Slaves Active/Pass ive Active/Pass ive Active/Passi ve Active/Pa ssive Multi- Master App Auto-Failover ✖ ✔ ✔ ✔ ✔ ✔ ✔ Data Layer Auto-Failover ✖ ✔ ✔ ✔ ✔ ✔ ✔ Zero Data Loss MySQL 5.7 ✔ ✔ ✔ ✔ ✔ ✔ Failover Time N/A Secs Secs + Secs + Secs + Secs + < 1 Sec Scale-out Reads ✔ ✖ ✖ ✖ ✖ ✔ Cross-shard operations N/A ✖ N/A N/A N/A N/A ✔ Transparent routing ✖ For HA ✔ ✔ ✔ ✔ ✔ Shared Nothing ✔ ✔ ✖ ✖ ✖ ✔ ✔ Storage Engine InnoDB InnoDB InnoDB InnoDB InnoDB InnoDB NDB Single Vendor Support ✔ ✔ ✔ ✔ ✖ ✔ ✔ Platform Support All All Linux Solaris Windows Linux All
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.64  PAM (Pluggable Authentication Modules) Plug-In • Autenticação externa via métodos externos • Interface padrão, funciona com Unix, LDAP, Kerberos, outros • Proxy-users – mapeamento grupos de usuários para 1 usuário  Windows Plug-In • Acesso nativo via serviços do Windows • Autentica usuários já logados no Windows (Single Sign On) • Grupos/usuários do Windows Active Directory com Proxy-users Integra o MySQL com a infraestrutura de segurança existente e SOPs. Mais produtividade na gestão de usuários. MySQL Enterprise Security External Authentication Plug-Ins
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.65 Authenticate CREATE USER win_joe IDENTIFIED WITH authentication_windows AS ‘joe'; LDAP/AD PAM / Windows Auth Usuário/senha definidos no diretório Privilégios definidos no MySQL e mapeados para usuários/grupos do diretório MySQL Enterprise Security External Authentication Plug-Ins
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.66 MySQL Enterprise Audit  Audit Plug-In • Registro de conexões, logins, queries dos servidores MySQL • Políticas definidas pelo DBA para filtragem e rotação de logs • Habilitado ou desabilitado dinamicamente, sem reiniciar o servidor • Log em XML de acordo com especificação padrão Oracle Audit • Requer MySQL 5.5.28 ou superior • Implementado através MySQL 5.5 Audit API Adiciona conformidade regulatória em aplicações MySQL: HIPAA, Sarbanes-Oxley, PCI, etc.
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.67 2. Usuário conecta-se e executa queries MySQL Enterprise Audit 1. DBA habilita no Server1 Server1 3. Conexões e queries dos usuários aparecem no log
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.68 Saiba mais...  Manual de Referência http://dev.mysql.com/doc/refman/5.6/en/index.html  Whitepapers, webinars, artigos... http://www.mysql.com/why-mysql/  Livros – MySQL, Fifth Edition by Paul DuBois <- mais para desenvolvedores – High Performance MySQL, 3rd Edition <- mais para dba’s – MySQL High Availability <- desenvolvedores e dba’s – etc, etc, etc...  Benchmarks, Capacity Planning, Stress Testing – Ferramentas de benchmark http://dev.mysql.com/doc/refman/5.6/en/mysql-benchmarks.html – Benchmarks expert http://dimitrik.free.fr/blog/ Conhecimento técnico em MySQL
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.69 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.70 Usando o MySQL  Como montar o ambiente de desenvolvimento?  Ferramentas para o desenvolvimento  Ferramentas para Qualidade  Suporte ao desenvolvedor  Onde buscar mais conhecimento? Hello World, ferramentas e mais conhecimento
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.71 Instalação  No Windows – Installer ou Web Installer – Next, next, finish  No Linux e demais SO’s – Prefira os binários pré-compilados da sua distribuição – Repositórios YUM e APT disponíveis Baixe e instale em menos de 15 minutos  Download – Community: dev.mysql.com/downloads ou dev.mysql.com/downloads/repo – Comercial: edelivery.oracle.com (trial)
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.72 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.73 Prefira os binários pré-compilados
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.74 Repositórios YUM e APT para MySQL  Maneira simples e conveniente de instalar e atualizar produtos MySQL  Suporta as distribuições Enterprise Linux – RedHat Enterprise/Oracle Linux – Fedora – Em breve: Debian/Ubuntu  Inclui os pacotes mais atuais – MySQL Database – MySQL Workbench – MySQL Connector/ ODBC – MySQL Connector/Python – MySQL Utilities Benefícios para Usuários Finais e Distribuições Linux Também disponível via NuGet para desenvolvedores .NET Mais de 50% dos downloads para Fedora/RedHat já são feitos do repositório nuget.org/profiles/MySQL www.alastori.com.br/2014/05/tutorial-de- instalacao-do-mysql-56-e.html
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.75 Iniciar ou Parar o servidor MySQL no Windows …ou via MySQL Notifier
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.76 Iniciar ou Parar o servidor MySQL no Linux /usr/local/mysql/bin> mysqld_safe --defaults-file=/etc/my.cnf & /usr/local/mysql/bin> mysqladmin shutdown Parar: Iniciar: dev.mysql.com/doc/refman/5.6/en/mysqld-safe.html
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.77 Primeira conexão C:Program FilesMySQLMySQL Server 5.6bin>mysql -uroot -p Enter password: **** Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 8 Server version: 5.6.14 MySQL Community Server (GPL) Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.78 Teste via MySQL Workbench 1/2
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.79 Teste via MySQL Workbench 2/2
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.80 Crie rapidamente seu protótipo Hello World em Java C:>set CLASSPATH CLASSPATH=.;C:Program Files (x86)Javajre6libextQTJava.zip;C:Program FilesMySQLmysql-connector-java-5.1.22mysql-connector-java-5.1.22-bin.jar Confira: Adicione o Connector ao classpath:
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.81 HelloMysql.java 1/2 import java.sql.*; public class HelloMysql { public static void main(String args[]){ System.out.println("Tentando conectar ao MySQL..."); try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/mysql"; String usuario = "root"; String senha = "root"; Connection con = DriverManager.getConnection(url, usuario, senha); System.out.println("URL: " + url); System.out.println("Connection: " + con); Continua…
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.82 HelloMysql.java 2/2 Statement stmt = con.createStatement(); //objeto Statement ResultSet rs; //objeto ResultSet rs = stmt.executeQuery("SELECT * FROM world.country"); System.out.println("Ola mundo!"); while(rs.next()){ String nomePais = rs.getString("Name"); System.out.print(nomePais + ", "); }//end while con.close(); } catch( Exception e ) { e.printStackTrace(); }//end catch }//end main }//end class HelloMysql PRONTO!
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.83 java HelloMysql C:tutorial>javac HelloMysql.java C:tutorial>java HelloMysql Tentando conectar ao MySQL... URL: jdbc:mysql://localhost:3306/mysql Connection: com.mysql.jdbc.JDBC4Connection@ed07f45 Ola mundo! Aruba, Afghanistan, Angola, Anguilla, Albania, Andorra, Netherlands Antilles, Un ited Arab Emirates, Argentina, Armenia, American Samoa, Antarctica, French South ern territories, Antigua and Barbuda, Australia, Austria, Azerbaijan, Burundi, B elgium, Benin, Burkina Faso, Bangladesh, Bulgaria, Bahrain, Bahamas, Bosnia and Herzegovina, Belarus, Belize, Bermuda, Bolivia, Brazil, Barbados, Brunei, Bhutan … ietnam, Vanuatu, Wallis and Futuna, Samoa, Yemen, Yugoslavia, South Africa, Zamb ia, Zimbabwe,
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.84 MySQL for Visual Studio  Design Time Support  Query Designer  Stored Routine Debugging  Entity Framework Integração total com a plataforma .Net mysql.com/why-mysql/windows/visualstudio
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.86 MySQL Workbench 6 Para Windows, Linux, Solaris, Apple Mac OS…  MySQL Database IDE  Milhões de downloads  Desenvolvedores e DBA’s
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.87 MySQL Workbench 6 Configurações do Servidor Árvore de objetos e esquemas no Servidor Área de Queries Barras laterais com informações do contexto atual e biblioteca de Snipets Respostas e Histórico
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.88 MySQL Workbench 6.1 Dashboards: Performance & Status Analyze hotspots, costly SQL statements, wait times, locks, InnoDB stats, and more Network, Server, InnoDB
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.89 MySQL Enterprise Monitor 3.0  Análise de gargalos e queries  Encontre e corrija problemas visualmente  Monitoramento em tempo real da performance e disponibilidade  Monitore discos e faça capacity planning  Arquitetura que não exige agentes  Agente remoto monitora SO  Comece a monitorar em 10 minutos
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.90
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.91
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.92 Explain Query
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.93 QRTi Query Response Time Index
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.94 Capacity Planning
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.95  Revisão de queries lentas  Revisão e auxílio na modelagem  Auxílio na definição de estratégias de particionamento  Performance tuning  Revisão de código (Triggers, Procedures, Functions, UDFs)  Entre outros... Suporte consultivo MySQL Engenheiros MySQL como parte do seu time Saiba mais: mysql.com/support/consultative.html
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.96 MySQL for Beginners Ed 3 MySQL for Database Administrators Ed 3.1 MySQL Performance Tuning MySQL High Availability MySQL Cluster MySQL DBA Introduction to MySQL 5.5 MySQL Developers Techniques MySQL for Beginners Ed 3 MySQL and PHP Developing Dynamic Web Applications MySQL for Developers Ed 2 MySQL Advanced Stored Procedures MySQLDeveloper education.oracle.com/mysql Opcional Necessário Treinamentos e certificações Oracle Certified Professional, MySQL 5.6 DBA Oracle Certified Expert, MySQL Cluster DBA Certificações Oracle Certified Professional, MySQL 5.6 Developer
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.97 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.98 Como distribuir meu produto com MySQL?  Cloud: SaaS  On-Premise: Embarcado  Como embarcar? Modelos e métodos de distribuição
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.99 Como embarcar Opções de distribuição embedded e deeply embedded client-server (embedded) • Inclua os binários com sua aplicação e execute via linha de comando -- ou também -- • No Windows • use silent installation, MySQL installer • Demais SO’s • instale e configure usando TARs ou RPMs libmysqld (deeply embedded) • 5 passos: • desenvolva aplicações em C com chamadas para iniciar ou parar o 'servidor' • compile normalmente • link com libmysqld • configure um arquivo my.cnf ou my.ini • distribua a aplicação normalmente
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.100 Como embarcar  roda o MySQL sem necessidade de instalação  pode-se colocar em um subdiretório da aplicação  Parâmetros importantes: --port= porta em que o MySQL escuta conexões --defaults-file= localização do arquivo de configurações my.ini ou my.cnf --datadir= localização dos arquivos de dados --skip-networking restringe conexões TCP/IP liberando apenas socket file (Linux) ou named-pipes (Windows) --socket= localização do Unix socket file para conexões locais Client-server via linha de comando mysqld.exe --port=3306 --defaults-file="C:mysqlmy.ini" --datadir="C:mysqldata” Exemplo de execução:
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.101 Saiba mais...  Silent Installation (Windows) http://dev.mysql.com/doc/refman/5.6/en/mysql-installer.html  Usando TAR (Linux) http://dev.mysql.com/doc/refman/5.6/en/binary-installation.html http://dev.mysql.com/doc/refman/5.6/en/automatic-start.html  Usando RPM (Linux) http://dev.mysql.com/doc/refman/5.6/en/linux-installation-rpm.html  Exemplo de aplicação com libmysqld http://dev.mysql.com/doc/refman/5.6/en/libmysqld-example.html Como embarcar
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.102 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.104  Acesso direto 24 x 7 x 365  Número ilimitado de incidentes  Base de conhecimento  Suporte Consultivo  Tradução para o Português  Hot Fixes para Bugs  Releases de manutenção do MySQL  Maior time de especialistas MySQL no mundo  Suportados pelos próprios Desenvolvedores do MySQL "The rep that assisted me was simply outstanding. He immediately recognized the cause of my problem and provided the resolution.” mysql.com/support/quotes Oracle Premier Support para MySQL Engenheiros MySQL como parte do seu time
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.105 MySQL Enterprise Backup  Backup online para InnoDB  Backups completos, incrementais, parciais (automatizados via script)  Compressão, Criptografia  Opções de Recovery: Point in Time, Completo, Parcial  Metadados de status, progresso e histórico  Tamanho ilimitado do BD  Multi-Plataforma: Windows, Linux, Unix  Compatível SBT, Oracle Secure Backup  Suporte Cloud (Amazon S3) MEB Backup Files MySQL Database Files mysqlbackup Backup e Recovery mais rápidos e online.
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.106 MySQL Enterprise Backup Menor tempo em backups e restores, menos downtime
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.107
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.108
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.109
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.110
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.111
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.112 Eventos
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.113
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.114
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.115
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.116 Advisors
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.117
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.118
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.119
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.120
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.121 Atualizações / Upgrades  Binária – substitua os binários, suba o servidor e rode mysql_upgrade – obedeça a ordem 5.0 > 5.1 > 5.5 > 5.6  mysqldump – faça o dump dos databases e restaure numa nova instalação  Workbench – Migration Wizard / Schema Transfer Wizard  Replicação – de um Master numa versão mais antiga para um Slave mais novo Possíveis estratégias dev.mysql.com/doc/refman/5.6/en/upgrading.html
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.122 MySQL Workbench 6  Fácil Migração – Microsoft SQL Server – PostgreSQL – Sybase ASE – Sybase SQL Anywhere – SQLite, MS Access  Next, Next, Finish  Migra estrutura e dados  Não migra procedures Migration Wizard dev.mysql.com/doc/workbench/en/wb-migration-overview-steps.html
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.123 Migração para MySQL Onde faz sentido migrar, migre. Do contrário, não migre. Aplicação… Método de migração Complexidade Usa Standard SQL Ferramenta MySQL Workbench ou CSV dumps Baixa: migre, teste e pronto! Usa intensamente Stored Procedures, Triggers Ferramentas de terceiros (SQLWays) Média: dependendo da complexidade das procedures, pode ser fácil Usa funcionalidade especializada do BD e não nativa do MySQL Ferramentas de terceiros ou re-arquitetura Alta: pode ser fácil, mas também pode ser muito difícil Empacotada ou desenvolvida e mantida por fornecedor que não certifica para MySQL Acordo com o fornecedor Não recomendado migrar sem ajuda do fornecedor, raras exceções
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.124 Oracle para MySQL  Exporting Data from Oracle – Oracle SQL Developer – SQL*Plus – Using PL/SQL: UTL FILE package  Importing Data into MySQL – LOAD ... INFILE – CSV storage engine  Migration Tools – Golden Gate, Pentaho, Convert-in, SQLWays Possíveis estratégias support.oracle.com/epmos/faces/DocumentDisplay?id=1477151.1
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.125 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.126 MySQL Enterprise Edition Suporte + Backup + Monitor + Workbench + Plug-ins Plug-ins Suporte Backup Monitor & Workbench Escalabilidade Segurança Auditoria
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.127 Sumário  O MySQL é o banco de dados ideal para muitos casos de uso, atendendo muito bem requisitos de: segurança, performance, escalabilidade, confiabilidade, robustez, disponibilidade, portabilidade, operacionalização (DevOps), etc.  Baixe, instale, crie protótipos ou migre em poucos minutos!  A Oracle pode ajudá-lo a adotar e distribuir o MySQL com menor risco e com vantagens econômicas para seu negócio
    • Copyright © 2014, Oracle and/or its affiliates. All rights reserved.128 @MySQLBR meetup.com/MySQL-BR facebook.com/MySQLBR Obrigado!
    • MySQL para Desenvolvedores de Produto Perguntas?