121
MySQL para Desenvolvedores de Produto Julho 2014 Airton Lastori [email protected]

MySQL para Desenvolvedores de Produto

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: MySQL para Desenvolvedores de Produto

MySQL para Desenvolvedores de Produto

Julho 2014

Airton Lastori [email protected]

Page 2: MySQL para Desenvolvedores de Produto

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

Page 3: MySQL para Desenvolvedores de Produto

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ócios 1

Análise e Especificação

de Requisitos 2

Arquitetura e

Prototipagem 3

Implementação e Testes 4

Empacotamento e

Distribuição 5

Manutenção Correções e atualizações/migrações 6

n iterações

Page 4: MySQL para Desenvolvedores de Produto

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ócios 1

Análise e Especificação

de Requisitos 2

Arquitetura e

Prototipagem 3

Implementação e Testes 4

Empacotamento e

Distribuição 5

Manutenção Correções e atualizações/migrações 6

n iterações

Page 5: MySQL para Desenvolvedores de Produto

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

Page 6: MySQL para Desenvolvedores de Produto

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

Page 8: MySQL para Desenvolvedores de Produto

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

Page 9: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 12

Elevando o nível Novamente, um melhor MySQL para vocês

Page 10: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 13

s

Page 11: MySQL para Desenvolvedores de Produto

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

Page 12: MySQL para Desenvolvedores de Produto

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!

Page 13: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 17

Alguns clientes MySQL

Page 14: MySQL para Desenvolvedores de Produto

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?

Page 15: MySQL para Desenvolvedores de Produto

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ócios 1

Análise e Especificação

de Requisitos 2

Arquitetura e

Prototipagem 3

Implementação e Testes 4

Empacotamento e

Distribuição 5

Manutenção Correções e atualizações/migrações 6

n iterações

Page 16: MySQL para Desenvolvedores de Produto

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

Page 17: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 21 Fonte: http://db-engines.com/en/ranking_trend (maio/14)

Page 18: MySQL para Desenvolvedores de Produto

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

Page 19: MySQL para Desenvolvedores de Produto

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

Page 20: MySQL para Desenvolvedores de Produto

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

Page 21: MySQL para Desenvolvedores de Produto

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"

Page 22: MySQL para Desenvolvedores de Produto

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/

Page 23: MySQL para Desenvolvedores de Produto

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

Page 24: MySQL para Desenvolvedores de Produto

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

Page 25: MySQL para Desenvolvedores de Produto

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

Page 26: MySQL para Desenvolvedores de Produto

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ócios 1

Análise e Especificação

de Requisitos 2

Arquitetura e

Prototipagem 3

Implementação e Testes 4

Empacotamento e

Distribuição 5

Manutenção Correções e atualizações/migrações 6

n iterações

Page 27: MySQL para Desenvolvedores de Produto

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

Page 28: MySQL para Desenvolvedores de Produto

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

Page 29: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 35

Aplicação

+

MySQL Database libmysqld

libmysqld

Page 30: MySQL para Desenvolvedores de Produto

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.

Page 31: MySQL para Desenvolvedores de Produto

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

Page 32: MySQL para Desenvolvedores de Produto

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

Page 33: MySQL para Desenvolvedores de Produto

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…

Page 34: MySQL para Desenvolvedores de Produto

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

Page 35: MySQL para Desenvolvedores de Produto

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

Page 36: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 42

Default Storage Engine InnoDB

Page 37: MySQL para Desenvolvedores de Produto

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

Page 38: MySQL para Desenvolvedores de Produto

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.

Page 39: MySQL para Desenvolvedores de Produto

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 completa Instrumentação

•Segurança

•Facilidade de uso

•Flexibilidade

• ...E MAIS...

Outras melhorias

dev.mysql.com/tech-resources/articles/mysql-5.6-rc.html

Page 40: MySQL para Desenvolvedores de Produto

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

Page 41: MySQL para Desenvolvedores de Produto

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

Tra

ns

õe

s p

or

Se

gu

nd

o

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

Page 42: MySQL para Desenvolvedores de Produto

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 Tra

nsaçõ

es p

or

Seg

un

do

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

Page 43: MySQL para Desenvolvedores de Produto

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

Page 44: MySQL para Desenvolvedores de Produto

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

Page 45: MySQL para Desenvolvedores de Produto

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

Page 46: MySQL para Desenvolvedores de Produto

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

Page 47: MySQL para Desenvolvedores de Produto

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

Page 48: MySQL para Desenvolvedores de Produto

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

Qu

eri

es p

er

Seco

nd

Concurrent User Sessions

5.7.3

5.6

Page 49: MySQL para Desenvolvedores de Produto

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

Page 50: MySQL para Desenvolvedores de Produto

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

Page 51: MySQL para Desenvolvedores de Produto

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

Page 52: MySQL para Desenvolvedores de Produto

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

Page 53: MySQL para Desenvolvedores de Produto

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

Page 54: MySQL para Desenvolvedores de Produto

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

Page 55: MySQL para Desenvolvedores de Produto

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

Page 56: MySQL para Desenvolvedores de Produto

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

Page 57: MySQL para Desenvolvedores de Produto

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

Page 58: MySQL para Desenvolvedores de Produto

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

Page 59: MySQL para Desenvolvedores de Produto

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

Page 60: MySQL para Desenvolvedores de Produto

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.

Page 61: MySQL para Desenvolvedores de Produto

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

Page 62: MySQL para Desenvolvedores de Produto

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

Page 63: MySQL para Desenvolvedores de Produto

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ócios 1

Análise e Especificação

de Requisitos 2

Arquitetura e

Prototipagem 3

Implementação e Testes 4

Empacotamento e

Distribuição 5

Manutenção Correções e atualizações/migrações 6

n iterações

Page 64: MySQL para Desenvolvedores de Produto

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

Page 65: MySQL para Desenvolvedores de Produto

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)

Page 66: MySQL para Desenvolvedores de Produto

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ócios 1

Análise e Especificação

de Requisitos 2

Arquitetura e

Prototipagem 3

Implementação e Testes 4

Empacotamento e

Distribuição 5

Manutenção Correções e atualizações/migrações 6

n iterações

Page 67: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 73

Prefira os binários pré-compilados

Page 68: MySQL para Desenvolvedores de Produto

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

Page 69: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 75

Iniciar ou Parar o servidor MySQL no Windows

…ou via MySQL Notifier

Page 70: MySQL para Desenvolvedores de Produto

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

Page 71: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 77

Primeira conexão

C:\Program Files\MySQL\MySQL Server 5.6\bin>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>

Page 72: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 78

Teste via MySQL Workbench 1/2

Page 73: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 79

Teste via MySQL Workbench 2/2

Page 74: MySQL para Desenvolvedores de Produto

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)\Java\jre6\lib\ext\QTJava.zip;C:\Program

Files\MySQL\mysql-connector-java-5.1.22\mysql-connector-java-5.1.22-bin.jar

Confira:

Adicione o Connector ao classpath:

Page 75: MySQL para Desenvolvedores de Produto

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…

Page 76: MySQL para Desenvolvedores de Produto

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!

Page 77: MySQL para Desenvolvedores de Produto

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,

Page 78: MySQL para Desenvolvedores de Produto

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

Page 79: MySQL para Desenvolvedores de Produto

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

Page 80: MySQL para Desenvolvedores de Produto

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

Page 81: MySQL para Desenvolvedores de Produto

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

Page 82: MySQL para Desenvolvedores de Produto

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

Page 83: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 90

Page 84: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 91

Page 85: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 92

Explain Query

Page 86: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 93

QRTi Query Response Time Index

Page 87: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 94

Capacity Planning

Page 88: MySQL para Desenvolvedores de Produto

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

Page 89: MySQL para Desenvolvedores de Produto

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

Page 90: MySQL para Desenvolvedores de Produto

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ócios 1

Análise e Especificação

de Requisitos 2

Arquitetura e

Prototipagem 3

Implementação e Testes 4

Empacotamento e

Distribuição 5

Manutenção Correções e atualizações/migrações 6

n iterações

Page 91: MySQL para Desenvolvedores de Produto

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

Page 92: MySQL para Desenvolvedores de Produto

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

Page 93: MySQL para Desenvolvedores de Produto

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:\mysql\my.ini" --datadir="C:\mysql\data”

Exemplo de execução:

Page 94: MySQL para Desenvolvedores de Produto

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

Page 95: MySQL para Desenvolvedores de Produto

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ócios 1

Análise e Especificação

de Requisitos 2

Arquitetura e

Prototipagem 3

Implementação e Testes 4

Empacotamento e

Distribuição 5

Manutenção Correções e atualizações/migrações 6

n iterações

Page 96: MySQL para Desenvolvedores de Produto

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

Page 97: MySQL para Desenvolvedores de Produto

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.

Page 98: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 106

MySQL Enterprise Backup Menor tempo em backups e restores, menos downtime

Page 99: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 107

Page 100: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 108

Page 101: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 109

Page 102: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 110

Page 103: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 111

Page 104: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 112

Eventos

Page 105: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 113

Page 106: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 114

Page 107: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 115

Page 108: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 116

Advisors

Page 109: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 117

Page 110: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 118

Page 111: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 119

Page 112: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 120

Page 113: MySQL para Desenvolvedores de Produto

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

Page 114: MySQL para Desenvolvedores de Produto

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

Page 115: MySQL para Desenvolvedores de Produto

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

Page 116: MySQL para Desenvolvedores de Produto

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

Page 117: MySQL para Desenvolvedores de Produto

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ócios 1

Análise e Especificação

de Requisitos 2

Arquitetura e

Prototipagem 3

Implementação e Testes 4

Empacotamento e

Distribuição 5

Manutenção Correções e atualizações/migrações 6

n iterações

Page 118: MySQL para Desenvolvedores de Produto

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

Page 119: MySQL para Desenvolvedores de Produto

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

Page 120: MySQL para Desenvolvedores de Produto

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 128

@MySQLBR

meetup.com/MySQL-BR

facebook.com/MySQLBR

Obrigado!

Page 121: MySQL para Desenvolvedores de Produto

MySQL para Desenvolvedores de Produto

Perguntas?