Sei sulla pagina 1di 121

MySQL para Desenvolvedores de Produto

Julho 2014

Airton Lastori
airton.lastori@oracle.com

Objetivos

Entender como o MySQL pode ajud-lo com seu produto

Conhecer as novidades do universo MySQL que podem

ajudar na construo ou migrao de um


produto/aplicao

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

Ciclo evolutivo do produto/aplicao


1
6

Identificao do Mercado e
Modelo de Negcios

Anlise e Especificao
de Requisitos

Empacotamento e
Distribuio

Arquitetura e
Prototipagem

Implementao e Testes

Manuteno
Correes e atualizaes/migraes

n iteraes

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

Ciclo evolutivo do produto/aplicao


1
6

Identificao do Mercado e
Modelo de Negcios

Anlise e Especificao
de Requisitos

Empacotamento e
Distribuio

Arquitetura e
Prototipagem

Implementao e Testes

Manuteno
Correes e atualizaes/migraes

n iteraes

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

Por que MySQL?


Viso de Negcios

MySQL como parte integral do seu produto


Oracle como Parceira
Investimento Oracle no MySQL
Casos de sucesso
Devo migrar para MySQL?

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

Oracle MySQL para ISV e OEM


MySQL Community Edition
Distribudo ao cliente final empacotado

com cdigo aberto de seu produto

Sem suporte e
ferramentas
Enterprise

Uso Interno, SaaS, Cloud

MySQL Enterprise Edition


Uso Interno, SaaS, Cloud

MySQL Comercial (OEM)


Distribudo ao cliente final empacotado

com cdigo proprietrio

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

Subscrio Anual
Suporte direto da Oracle

Licena perptua +
19% de suporte anual
Suporte Oracle via Parceiro

Tomas Ulin
VP de Engenharia do MySQL na Oracle

[video]
youtube.com/watch?v=8stNlpJm_nA

[slides]
mysql.com/whymysql/presentations/raising-themysql-bar

10

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

COMPONENTES
da pilha

MySQL: Aplicaes Web da prxima gerao


On-Premises, na Nuvem, Aplicaes Distribudas
11

Copyright
2014,
Oracle
and/or
affiliates.
rights
reserved.
Copyright
2013,
Oracle
and/or
its its
affiliates.
AllAll
rights
reserved.

Elevando o nvel
Novamente, um melhor MySQL para vocs

12

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

s
13

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

Compromisso Oracle com MySQL

https://blogs.oracle.com/MySQL/entry/mysql_connect_keynotes_and_news
15

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

Bem-vindo, WebScaleSQL!
Facebook, Google, LinkedIn & Twitter!
Branch do MySQL 5.6, com patches para uso em Escala Web
Investimentos de gigantes da Web para melhorar o MySQL
tima notcia para a comunidade e novos desenvolvedores
Ainda mais fcil a cooperao entre Oracle e as gigantes da Web

16

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

Alguns clientes MySQL

17

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

Motivos para migrao


otimizar custos e reduzir riscos
licenciamento, suporte

aumentar faturamento
expandir base, mudar modelo de negcios / distribuio

outras solues j no atendem mais tecnicamente (ex. flat file)


portabilidade

facilidade de uso e flexibilidade


escalabilidade e alta-disponibilidade

Quando custos+riscos da migrao so


compensados pelos ganhos?
18

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

Ciclo evolutivo do produto/aplicao


1
6

Identificao do Mercado e
Modelo de Negcios

Anlise e Especificao
de Requisitos

Empacotamento e
Distribuio

Arquitetura e
Prototipagem

Implementao e Testes

Manuteno
Correes e atualizaes/migraes

n iteraes

19

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

Qual Banco de Dados devo usar?


Escolher a tecnologia correta de acordo com requisitos

20

Quais as principais caractersticas tcnicas?

Quem, por que e onde est usando?

Onde posso usar no meu contexto?

Qual o futuro da tecnologia?

Continua em desenvolvimento?

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.

Caractersticas tcnicas do MySQL


Lista mais abrangente no site, aqui abordaremos apenas algumas

mysql.com/products/enterprise/techspec.html
22

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

Onde o MySQL geralmente se encaixa


Novas aplicaes e aplicaes customizadas Ad-hoc
principalmente arquitetura Web (ex. LAMP stack)
arquiteturas inovadoras, NoSQL (verso 5.6 e Cluster 7.2)

Aplicaes hbridas
expanso 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 Contedo (CMS)

Redes Sociais, mensagens e colaborao


Games Sociais e MMO
SMS, e-marketing

Datamarts e Relatrios Departamentais


Embarcadas, Infra Telecom, Infra TI
23

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

Outros usos em Telco


Call Detail Records (CDR) para suportar Billing, gesto de dispositivos, troubleshooting de
redes, provisionamento e telemetria.
Transaction Detail Records que uma variante do CDRs com foco em troubleshooting.
Recomendaes Online Cross-promotion. Coleta vrias informaes sobre as preferncias 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 negcio (cliente).

Call Center Queueing Normalmente uma aplicao 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
24

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

Desafio
Fornecer uma plataforma para os funcionrios onde eles poderiam trabalhar em redes sociais, visualizar e hostear microsites,
live streaming de vdeos, blog e divulgar as ltimas notcias.
TI decidiu usar o LAMP stack para suportar seu portal 24x7 de misso crtica (Vzweb, Vzwiki e Vztube), com o Drupal como
front-end e MySQL no Linux como o backend, e alguns outros sites internos tambm em MySQL.
Acessvel aos 78.000 funcionrios
SLA 99,985%

Soluo
MySQL 5.5 in 2011
InnoDB store engine
MySQL Enteprise Thread Pooling

Resultado
"MySQL um componente chave em nosso portal, disse Shivinder Singh, DBA snior da Verizon Wireless. Alcanamos uma
melhoria de desempenho de 1400% ao passar do store engine de MyISAM para InnoDB, atualizando para a ltima verso GA
MySQL 5.5, e usando o MySQL Thread Pool para suportar um alto nmero de conexes simultneas. MySQL tornou-se parte
de nossa infra-estrutura de TI"

https://blogs.oracle.com/MySQL/entry/verizon_wireless_supports_its_mission
25

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

Desafio
Como em qualquer sistema de processamento de pagamentos financeiros, a construo de um sistema altamente confivel
com disponibilidade 24x7 a primeira prioridade. A Paggo no pode dar ao luxo de perda de dados. Perda de dados resulta em
perda de negcios. A Paggo teve de construir um sistema que poderia crescer e performar conforme novos comerciantes e
compradores cresciam, aumentando as transaes. Em cima disso, Paggo uma startup com um oramento limitado, ento
tivemos que comear pequeno, com a capacidade de escalar a infra-estrutura incrementalmente, sem custos iniciais enormes.
40.000 comerciantes, 1.2 milhes de assinantes e 750.000 transaes financeiras/ms
99,999% uptime

Soluo
MySQL Cluster

Resultado
"Paggo no teria sido possvel sem o MySQL Cluster. Nenhum outro produto poderia nos dar a capacidade de comear
pequeno, escalar rapidamente e fornecer para o nosso sistema de pagamento financeiro 24x7 disponibilidade."
Ccero Torteli
Fundador, Paggo

http://www.mysql.com/why-mysql/case-studies/paggo-mysql-cluster-java-financial-transactions-over-telecom/
26

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

Breve histrico: 2010 - 2014


MySQL Enterprise Monitor 2.2

Oracle VM Template for MySQL

MySQL Enterprise Backup 3.10

MySQL Cluster 7.1

Oracle Products Certifications

MySQL Enterprise Audit

MySQL Cluster Manager 1.0

MySQL Windows Installer

MySQL Windows Tools

MySQL Workbench 5.2

MySQL Enterprise Security

MySQL Database 5.6

MySQL Database 5.5

MySQL Enterprise Scalability

MySQL Cluster 7.3

MySQL Enterprise Backup 3.5

MySQL Cluster 7.2

MySQL Workbench 6.1

MySQL Enterprise Monitor 2.3

MySQL Cluster Manager 1.3

MySQL Cluster Manager 1.1

MySQL Utilities 1.0.6

MySQL Fabric 1.4 RC

MySQL Enterprise Backup 3.7

MySQL Workbench 6.0

MySQL Database 5.7 DMR

All GA!

27

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

All GA!

*Development Milestone Release

All GA!

Available Now!

Anunciado o MySQL 5.7 DMR 4


...
DMR 4
Novas funcionalidades
labs.mysql.com
Disponvel Agora!

DMR 3
Dez 2013

DMR 2
Set 2013

5.7 DMR 1
Abril 2013

5.6 GA
Fev 2013

28

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

MySQL 5.7: DMR 4


O MySQL 5.7 o MySQL 5.6 + melhorias!
InnoDB: melhor throughput transacional, disponibilidade, IO
Replication: melhor escalabilidade e disponibilidade
Utilities: facilidades para automao e DevOps

Performance Schema: melhores mtricas e diagnsticos


Optimizer: melhores tempos nas queries, EXPLAINs, buffering

e particionamento
Connections: taxas mais altas, sesses mais eficientes
Saiba mais: slideshare.net/MySQLBR/novidades-do-universo-mysql-maioi-2014
31

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

Ciclo evolutivo do produto/aplicao


1
6

Identificao do Mercado e
Modelo de Negcios

Anlise e Especificao
de Requisitos

Empacotamento e
Distribuio

Arquitetura e
Prototipagem

Implementao e Testes

Manuteno
Correes e atualizaes/migraes

n iteraes

32

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

MySQL adequado para o meu produto?


Dvidas tcnicas, requisitos no funcionais

33

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 segurana?

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

Cliente-Servidor

Aplicao + Connector
JDBC, ODBC, .Net, PHP, Python, Perl, Ruby, Native C API

34

Gerenciamento

MySQL Database

mysql / monitor / backup

mysqld

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

libmysqld

Aplicao
+
MySQL Database
libmysqld

35

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

Client-server vs libmysqld

36

client-server

libmysqld

(embedded, SaaS, Web, etc.)

(deeply embedded)

Comunica com a aplicao usando


MySQL Connectors ou APIs
Executado como services/daemons
ou via linha de comando
Deve ser includo como parte da
instalao da aplicao
A instalao e manuteno pode
ser invisvel ao usurio final

Comunicao restrita a chamadas


diretas em C
Linkado diretamente na aplicao
No requer instalao
(services/daemons)
Uso em aplicaes com banco de
dados auto-contido
Algumas limitaes: mais footprint
de memria, sem replicao, UDFs,
core dumps, traces, etc.

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

Plataformas suportadas
Maior portabilidade, mais liberdade de escolha
Hardware
32 e 64 bit x86

SPARC

Sistemas Operacionais
Windows
Linux
MacOS

FreeBSD
Solaris

mysql.com/support/supportedplatforms/database.html
37

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

Amplo suporte a vrias linguagens


Vrias opes 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
38

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

Arquitetura MySQL Server


Clients & Connectors
Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl

Clients and Apps

mysqld

Connection Pool, SQL Interface, Parser, Optimizer, Caches


Enterprise Management
Services and Utilities
Storage Engines
InnoDB, MyISAM, Memory, Archive, Cluster (NDB API), etc

Filesystems, Files & Logs


Data, Index, Logs

39

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

Backup & Recovery


Monitor
Workbench
Utilities

Arquitetura MySQL Cluster


Clients and Apps

Clients & Connectors


Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl

mysqld
ndbd

Connection Pool, SQL Interface, Parser, Optimizer, Caches


Enterprise Management
Services and Utilities
Storage Engines
InnoDB, MyISAM, Memory, Archive, Cluster (NDB API), etc
Filesystems, Files & Logs
Data, Index, Logs
NDB

NDB

Cluster Data Nodes

40

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

mgm_ndbd
Management

Backup & Recovery


Monitor
Workbench
Utilities

Storage Engines
MyISAM

InnoDB

NDB Cluster

Tabela

Linha

Linha

Assncrona ou
Semi-sncrona

Assncrona ou
Semi-sncrona, crash-safe

Sncrona, Multi-master,
crash-safe sem SPOF

Foreign Keys

Full-text indexes

Compresso de dados

somente Leitura

Caches

somente ndices

Dados e ndices

Dados e ndices

Tipos de Dados e ndices

Somente Tipos de Dados

somente Tipos de Dados

256TB

64TB

384EB (~3TB em RAM)

Transaes
Nvel de Lock
Replicao

Suporte Geoespacial
Limite de armazenamento

dev.mysql.com/doc/refman/5.6/en/storage-engines.html
41

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

Default Storage Engine


InnoDB

42

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

Flexibilidade MySQL 5.6: InnoDB


NoSQL com Memcached

Application/Client
SQL
NoSQL
(MySQL Client)

(Memcached Prot.)

mysqld
MySQL Server

Memcached plugin

InnoDB Storage Engine

http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached.html
43

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

Acesso chave-valor ao InnoDB


Via Memcached API
Usa clients Memcached existentes
Sem SQL parsing, ultra-rpido

Acesso SQL e NotOnlySQL


Operaes chave-valor mas tambm
queries SQL, JOINs, FKs, etc.

Memcached com Persistncia


no InnoDB
Mtodo transparente para persistir os
dados em memria voltil
Memcached plug-in no mysqld ,
mapeado API nativa do InnoDB
Shared process para baixa latncia

Evoluo da escalabilidade do MySQL

2008

2009

2010

2013

at 4 CPU
MySQL 5.0

at 16 CPU
MySQL 5.1

at 32 CPU
MySQL 5.5

at 48 CPU
MySQL 5.6

MySQL AB

Sun

Oracle

Atualize o MySQL e use InnoDB.


44

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

MySQL 5.6: GA h 17 meses


InnoDB

Performance: +234% para Leituras e +151% para Escritas, SSD


Escalabilidade: 48 cores
Flexibilidade: Memcached API, Full Text
Disponibilidade: mudanas online no schema, export/import tablespaces

Otimizador

Performance: at centenas de vezes mais rpido em alguns cenrios,


estatsticas persistentes
Instrumentao: EXPLAINS com traces e para UPDATES e DELETES

Replicao

Performance: ganhos de 2x a 5x com paralelismo e group commit


Flexibilidade: novas topologias e rastreabilidade com GTIDs
Disponibilidade: automatizao de failover e recovery

Instrumentao
Outras melhorias

PERFORMANCE_SCHEMA mais completa

Segurana
Facilidade de uso
Flexibilidade
...E MAIS...

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

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

Outras melhorias no MySQL 5.6


Mais facilidade de uso e flexibilidade
PERFORMANCE_SCHEMA
Novas configuraes padro, mais adequadas ao hardware atual
Particionamento melhorado
import/export

mais capacidade e performance


seleo explcita

Backup remoto do Binlog


Slaves com atraso programado

Identificador nico universal para servidor (server UUID)


TIME/TIMESTAMP/DATETIME
preciso de frao de segundo, CURRENT_TIMESTAMP default /auto update, TIMESTAMP nullable por padro

GIS: operaes espaciais precisas


E MAIS...

mysql.com/why-mysql/white-papers/whats-new-mysql-5-6
46

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

Performance MySQL 5.6: InnoDB


SysBench Benchmarks

Transaes por Segundo

MySQL 5.6 vs. 5.5 - Leituras (Linux)


18.000
16.000
14.000
12.000
10.000
8.000
6.000
4.000
2.000
0

MySQL 5.6.7

MySQL 5.5.28

32

64

128
Conexes

256

512

+234% Ganhos de Performance


47

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

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

Transaes por Segundo

MySQL 5.6 vs. 5.5 Escritas+Leituras (Linux)


12.000

MySQL 5.6.7

10.000
8.000
6.000

MySQL 5.5.28

4.000
2.000
0
32

64

128
Conexes

256

512

+151% Ganhos de Performance


48

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

Oracle Linux 6
Intel(R) Xeon(R) E7540 x86_64
MySQL leveraging:
- 48 of 96 available CPU threads
- 2 GHz, 512GB RAM

MySQL Enterprise Scalability


Thread Pool Plug-In

Adiciona mais inteligncia ao modelo padro de gerenciamento de


threads agrupa e reutiliza
Modelo padro, sem Thread Pool: 1 thread por conexo,
performance excelente, mas limita a escalabilidade ao crescer o
nmero de conexes de usurios
Com Thread Pool: reso de threds, escala o nmero de conexes
de usurios mantendo os mesmos nveis de performance
Implementado utilizando Thread Pool API

Assegura desempenho melhor e sustentvel, mesmo quando o


nmero de usurios continua crescendo.
49

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

Thread Pool habilitado/desabilitado

60x Melhor Escalabilidade comThread Pool


50

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

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

18x Melhor Escalabilidade com Thread Pool


51

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

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

Referncias 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


52

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

MySQL 5.7 Sysbench Benchmark


Sysbench Point Select

630,000 QPS

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 rpido que o MySQL 5.6


Mais de 3X mais rpido que o MySQL 5.5
53

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

MySQL 5.7: InnoDB Memcached


Contribuio do Facebook

1,150,000 QPS

1400000

Queries per Second

1200000
1000000
800000
5.7.3

600000

5.6

400000
200000
0
8

16

32

64
128
256
Concurrent User Sessions

512

1024

6x mais rpido que o MySQL 5.6


54

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

Intel(R) Xeon(R) CPU X7560 x86_64


8 sockets x 6 cores-HT (96 CPU threads)
2000Mhz, 256G RAM
Oracle Linux 6.2

MySQL adequado para o meu produto?


Dvidas tcnicas, requisitos no funcionais

Quais conceitos fundamentais para uso correto do MySQL?

Quais plataformas e linguagens posso utilizar?


Quais os limites da tecnologia?

55

Quais recursos de alta-disponibilidade (HA) e escalabilidade?

Quais recursos de segurana?

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

Replicao MySQL
Aplicao

Escritas & Leituras

Master

Slave

Modelo assncrono (padro)


Modelo semi-sncrono (a partir da verso 5.5)
56

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

MySQL failover
Aplicao

Escritas & Leituras

Master

Master down
Slave promovido para Master
57

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

Slave

Replicao MySQL: escalando LEITURAS


Aplicao

Escritas & Leituras

Leituras

Leituras

Master

Slave

Slave

Diviso de leituras e escritas (R/W Split)


possvel adicionar mais slaves, dividir a carga
58

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

Multi-Source Replication
Master 1

Master 2

Master N

Binlog

Binlog

Binlog

labs.mysql.com
Consolida updates de mltiplos

Masters em um Slave
Viso consolidada
Novas topologias
Ponto centralizado de backup

IO 1

IO 2

IO N

Relay 1

Relay 2

Relay N

Coordinator

Coordinator

Coordinator

Coordinator

W1

W2

WX

W1

W2

WX

W1

W2

WX

W1

W2

Relatrios mais fceis

WX

Compatvel com Semi-Synchronous

Replication & Multi-Thread Slaves


Master-specific slave filters
Aplicao continua responsvel por

Slave
59

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

manter data sets no-conflitantes


entre as diversas fontes

MySQL Fabric 1.4 GA (MySQL Utilities 1.4.3)


Alta-disponibilidade + escalabilidade de escrita com sharding
Alta disponibilidade:

Application

Monitoramento do Server com failover

Connector

automtico e transparente para aplicao

SQL

MySQL Fabric

Conectores devem ser Fabric-aware:


Java, PHP, Python

Sem Proxy, sem latencia extra e SPoF

Escalabilidade de escrita com sharding:


Aplicao define a shard key (Range ou

60

Read-slaves

Read-slaves

Master group

Master group

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

Hash)
Ferramentas para re-sharding
Tabelas globais & global updates

Arquitetura MySQL Cluster


Clients

API Nodes

Application Layer
Management
mgm_ndbd

Data Nodes

Data Layer
ndbd

61

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

ndbd

ndbd

ndbd

MySQL Cluster 7.4

labs.mysql.com

Melhor performance e simplicidade operacional

Ganho de Performance sobre v7.3 Restarts mais rpidos dos ns


47% (Read-Only)
38% (Read-Write)
62

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

Recovering nodes rejoin the cluster

faster

Solues de HA homologadas pela Oracle


MySQL
Replication

MySQL
Fabric

Oracle VM
Template

Solaris
Cluster

Windows
Cluster

DRBD

MySQL
Cluster

Master +
Slaves

Master +
Slaves

Active/Pass
ive

Active/Pass
ive

Active/Passi
ve

Active/Pa
ssive

MultiMaster

App Auto-Failover

Data Layer Auto-Failover

MySQL 5.7

N/A

Secs

Secs +

Secs +

Secs +

Secs +

< 1 Sec

Reads

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

Clustering Mode

Zero Data Loss


Failover Time
Scale-out
Cross-shard operations

63

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

MySQL Enterprise Security


External Authentication Plug-Ins
PAM (Pluggable Authentication Modules) Plug-In

Autenticao externa via mtodos externos


Interface padro, funciona com Unix, LDAP, Kerberos, outros
Proxy-users mapeamento grupos de usurios para 1 usurio

Windows Plug-In

Acesso nativo via servios do Windows


Autentica usurios j logados no Windows (Single Sign On)
Grupos/usurios do Windows Active Directory com Proxy-users

Integra o MySQL com a infraestrutura de segurana existente e


SOPs. Mais produtividade na gesto de usurios.
64

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

MySQL Enterprise Security


External Authentication Plug-Ins
Usurio/senha definidos no diretrio
Privilgios definidos no MySQL e
mapeados para usurios/grupos do diretrio
PAM /
Windows Auth

LDAP/AD
Authenticate

CREATE USER win_joe


IDENTIFIED WITH authentication_windows
AS joe';

65

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

MySQL Enterprise Audit


Audit Plug-In
Registro de conexes, logins, queries dos servidores MySQL
Polticas definidas pelo DBA para filtragem e rotao de logs
Habilitado ou desabilitado dinamicamente, sem reiniciar o

servidor
Log em XML de acordo com especificao padro Oracle Audit
Requer MySQL 5.5.28 ou superior
Implementado atravs MySQL 5.5 Audit API

Adiciona conformidade regulatria em aplicaes MySQL:


HIPAA, Sarbanes-Oxley, PCI, etc.
66

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

MySQL Enterprise Audit


3. Conexes e queries dos
usurios aparecem no log

1. DBA habilita no Server1

Server1

2. Usurio conecta-se e executa queries


67

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

Saiba mais...
Conhecimento tcnico em MySQL
Manual de Referncia
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 dbas

MySQL High Availability <- desenvolvedores e dbas


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/

68

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

Ciclo evolutivo do produto/aplicao


1
6

Identificao do Mercado e
Modelo de Negcios

Anlise e Especificao
de Requisitos

Empacotamento e
Distribuio

Arquitetura e
Prototipagem

Implementao e Testes

Manuteno
Correes e atualizaes/migraes

n iteraes

69

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

Usando o MySQL
Hello World, ferramentas e mais conhecimento

70

Como montar o ambiente de desenvolvimento?

Ferramentas para o desenvolvimento

Ferramentas para Qualidade

Suporte ao desenvolvedor

Onde buscar mais conhecimento?

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

Instalao
Baixe e instale em menos de 15 minutos
No Windows
Installer ou Web Installer

Next, next, finish

No Linux e demais SOs


Prefira os binrios pr-compilados da sua distribuio
Repositrios YUM e APT disponveis

Download
Community: dev.mysql.com/downloads ou

dev.mysql.com/downloads/repo
Comercial: edelivery.oracle.com (trial)
71

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

Ciclo evolutivo do produto/aplicao


1
6

Identificao do Mercado e
Modelo de Negcios

Anlise e Especificao
de Requisitos

Empacotamento e
Distribuio

Arquitetura e
Prototipagem

Implementao e Testes

Manuteno
Correes e atualizaes/migraes

n iteraes

72

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

Prefira os binrios pr-compilados

73

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

Repositrios YUM e APT para MySQL


Benefcios para Usurios Finais e Distribuies Linux
Maneira simples e conveniente de instalar e atualizar produtos MySQL
Suporta as distribuies 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

Mais de 50% dos


downloads para
Fedora/RedHat j so
feitos do repositrio

www.alastori.com.br/2014/05/tutorial-deinstalacao-do-mysql-56-e.html

Tambm disponvel via


NuGet para
desenvolvedores .NET
nuget.org/profiles/MySQL

74

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

Iniciar ou Parar o servidor MySQL no Windows

ou via MySQL Notifier

75

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

Iniciar ou Parar o servidor MySQL no Linux


Iniciar:
/usr/local/mysql/bin> mysqld_safe --defaults-file=/etc/my.cnf &

Parar:
/usr/local/mysql/bin> mysqladmin shutdown

dev.mysql.com/doc/refman/5.6/en/mysqld-safe.html
76

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

Primeira conexo
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>

77

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

Teste via MySQL Workbench 1/2

78

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

Teste via MySQL Workbench 2/2

79

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

Crie rapidamente seu prottipo


Hello World em Java
Adicione o Connector ao classpath:

Confira:
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

80

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

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
81

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

HelloMysql.java 2/2
Statement stmt = con.createStatement();
ResultSet rs;

//objeto Statement

//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
82

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

PRONTO!

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,

83

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

MySQL for Visual Studio


Integrao total com a plataforma .Net
Design Time Support

Query Designer
Stored Routine Debugging
Entity Framework

mysql.com/why-mysql/windows/visualstudio
84

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

MySQL Workbench 6

Para Windows, Linux, Solaris, Apple Mac OS

MySQL Database IDE


Milhes de downloads
Desenvolvedores e DBAs

86

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

MySQL Workbench 6
Configuraes
do Servidor

rea de Queries

Barras laterais com


informaes do
contexto atual e
biblioteca de
Snipets

rvore de objetos e
esquemas no Servidor
Respostas e
Histrico

87

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

MySQL Workbench 6.1


Dashboards: Performance & Status
Network, Server, InnoDB
Analyze hotspots, costly SQL statements, wait
times, locks, InnoDB stats, and more

88

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

MySQL Enterprise Monitor 3.0


Anlise de gargalos e queries
Encontre e corrija problemas

89

visualmente
Monitoramento em tempo real da
performance e disponibilidade
Monitore discos e faa capacity
planning
Arquitetura que no 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.

Explain Query

92

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

QRTi
Query Response Time Index

93

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

Capacity Planning

94

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

Suporte consultivo MySQL


Engenheiros MySQL como parte do seu time

Reviso de queries lentas


Reviso e auxlio na modelagem
Auxlio na definio de estratgias de particionamento
Performance tuning
Reviso de cdigo (Triggers, Procedures, Functions, UDFs)
Entre outros...
Saiba mais: mysql.com/support/consultative.html

95

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

Treinamentos e certificaes
MySQL DBA

MySQLDeveloper

Certificaes

MySQL for
Beginners Ed 3

Introduction to
MySQL 5.5

Oracle Certified
Professional, MySQL 5.6
DBA

MySQL for Database


Administrators Ed 3.1

MySQL for
Beginners Ed 3

MySQL Performance
Tuning

MySQL and PHP


Developing Dynamic
Web Applications

MySQL High Availability

Oracle Certified
Professional, MySQL 5.6
Developer
Oracle Certified Expert,
MySQL Cluster DBA

MySQL for Developers


Ed 2

MySQL Cluster

MySQL Developers
Techniques
MySQL Advanced Stored
Procedures

96

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

Opcional
Necessrio

education.oracle.com/mysql

Ciclo evolutivo do produto/aplicao


1
6

Identificao do Mercado e
Modelo de Negcios

Anlise e Especificao
de Requisitos

Empacotamento e
Distribuio

Arquitetura e
Prototipagem

Implementao e Testes

Manuteno
Correes e atualizaes/migraes

n iteraes

97

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

Como distribuir meu produto com MySQL?


Modelos e mtodos de distribuio

98

Cloud: SaaS

On-Premise: Embarcado

Como embarcar?

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

Como embarcar
Opes de distribuio embedded e deeply embedded
client-server

libmysqld

(embedded)

(deeply embedded)

Inclua os binrios com sua


aplicao e execute via linha de
comando
-- ou tambm - No Windows
use silent installation, MySQL
installer

Demais SOs
instale e configure usando TARs
ou RPMs

99

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

5 passos:
desenvolva aplicaes 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 aplicao normalmente

Como embarcar
Client-server via linha de comando
roda o MySQL sem necessidade de instalao
pode-se colocar em um subdiretrio da aplicao
Parmetros importantes:
--port= porta em que o MySQL escuta conexes
--defaults-file= localizao do arquivo de configuraes my.ini ou my.cnf
--datadir= localizao dos arquivos de dados
--skip-networking restringe conexes TCP/IP liberando apenas socket file (Linux) ou named-pipes (Windows)

--socket= localizao do Unix socket file para conexes locais

Exemplo de execuo:
mysqld.exe

100

--port=3306

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

--defaults-file="C:\mysql\my.ini" --datadir="C:\mysql\data

Saiba mais...
Como embarcar
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 aplicao com libmysqld


http://dev.mysql.com/doc/refman/5.6/en/libmysqld-example.html

101

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

Ciclo evolutivo do produto/aplicao


1
6

Identificao do Mercado e
Modelo de Negcios

Anlise e Especificao
de Requisitos

Empacotamento e
Distribuio

Arquitetura e
Prototipagem

Implementao e Testes

Manuteno
Correes e atualizaes/migraes

n iteraes

102

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

Oracle Premier Support para MySQL


Engenheiros MySQL como parte do seu time

104

Acesso direto 24 x 7 x 365


"The rep that assisted me was simply
outstanding. He immediately
Nmero ilimitado de incidentes
recognized the cause of my problem
Base de conhecimento
and provided the resolution.
Suporte Consultivo
mysql.com/support/quotes
Traduo para o Portugus
Hot Fixes para Bugs
Releases de manuteno do MySQL
Maior time de especialistas MySQL no mundo
Suportados pelos prprios Desenvolvedores do MySQL
Copyright 2014, Oracle and/or its affiliates. All rights reserved.

MySQL Enterprise Backup

Backup online para InnoDB


Backups completos, incrementais, parciais (automatizados via script)
Compresso, Criptografia
Opes de Recovery: Point in Time, Completo, Parcial
Metadados de status, progresso e histrico
mysqlbackup
Tamanho ilimitado do BD
Multi-Plataforma: Windows, Linux, Unix
MEB
MySQL
Backup
Database
Files
Files
Compatvel SBT, Oracle Secure Backup
Suporte Cloud (Amazon S3)

Backup e Recovery mais rpidos e online.


105

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

MySQL Enterprise Backup


Menor tempo em backups e restores, menos downtime

106

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.

Eventos

112

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.

Advisors

116

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.

Atualizaes / Upgrades
Possveis estratgias
Binria
substitua os binrios, suba o servidor e rode mysql_upgrade
obedea a ordem 5.0 > 5.1 > 5.5 > 5.6

mysqldump
faa o dump dos databases e restaure numa nova instalao

Workbench
Migration Wizard / Schema Transfer Wizard

Replicao
de um Master numa verso mais antiga para um Slave mais novo

dev.mysql.com/doc/refman/5.6/en/upgrading.html
121

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

MySQL Workbench 6
Migration Wizard
Fcil Migrao
Microsoft SQL Server

PostgreSQL
Sybase ASE
Sybase SQL Anywhere

SQLite, MS Access

Next, Next, Finish


Migra estrutura e dados
No migra procedures

dev.mysql.com/doc/workbench/en/wb-migration-overview-steps.html
122

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

Migrao para MySQL


Onde faz sentido migrar, migre. Do contrrio, no migre.
Aplicao

Complexidade

Usa Standard SQL

Ferramenta MySQL
Workbench ou CSV dumps

Baixa: migre, teste e pronto!

Usa intensamente Stored


Procedures, Triggers

Ferramentas de terceiros
(SQLWays)

Mdia: dependendo da
complexidade das procedures,
pode ser fcil

Usa funcionalidade
especializada do BD e no
nativa do MySQL

Ferramentas de terceiros ou
re-arquitetura

Alta: pode ser fcil, mas


tambm pode ser muito difcil

Acordo com o fornecedor

No recomendado migrar
sem ajuda do fornecedor,
raras excees

Empacotada ou desenvolvida
e mantida por fornecedor que
no certifica para MySQL

123

Mtodo de migrao

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

Oracle para MySQL


Possveis estratgias
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

support.oracle.com/epmos/faces/DocumentDisplay?id=1477151.1
124

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

Ciclo evolutivo do produto/aplicao


1
6

Identificao do Mercado e
Modelo de Negcios

Anlise e Especificao
de Requisitos

Empacotamento e
Distribuio

Arquitetura e
Prototipagem

Implementao e Testes

Manuteno
Correes e atualizaes/migraes

n iteraes

125

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

MySQL Enterprise Edition


Suporte + Backup + Monitor + Workbench + Plug-ins
Suporte

Escalabilidade
Segurana
Auditoria

Plug-ins

Backup

Monitor &
Workbench

126

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

Sumrio

127

O MySQL o banco de dados ideal para muitos casos de uso,


atendendo muito bem requisitos de: segurana, performance,
escalabilidade, confiabilidade, robustez, disponibilidade,
portabilidade, operacionalizao (DevOps), etc.

Baixe, instale, crie prottipos ou migre em poucos minutos!

A Oracle pode ajud-lo a adotar e distribuir o MySQL com menor


risco e com vantagens econmicas para seu negcio

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

@MySQLBR

facebook.com/MySQLBR

meetup.com/MySQL-BR

128

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

Obrigado!

MySQL para Desenvolvedores de Produto

Perguntas?

Potrebbero piacerti anche