guia essencial para embarcar o mysql em seu produto

92
Guia essencial para embarcar o MySQL em seu produto Airton Lastori mar-2014

Upload: mysql-brasil

Post on 17-Dec-2014

1.212 views

Category:

Technology


5 download

DESCRIPTION

Entenda como o MySQL pode ajudá-lo com seu produto e obtenha informações essenciais para o uso correto do MySQL na construção ou migração de um produto/aplicação, principalmente como Banco de Dados embarcado.

TRANSCRIPT

Page 1: Guia essencial para embarcar o MySQL em seu produto

Guia essencial para embarcar o MySQL em seu produto

Airton Lastori mar-2014

Page 2: Guia essencial para embarcar o MySQL em seu produto

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

Objetivos

Entender como o MySQL pode ajudá-lo com seu produto

Informações essenciais para o uso correto do MySQL na

construção ou migração de um produto/aplicação,

principalmente como Banco de Dados embarcado

Page 3: Guia essencial para embarcar o MySQL em seu 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: Guia essencial para embarcar o MySQL em seu produto

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

Por que MySQL?

MySQL como parte integral do seu produto

Oracle como Parceira

Tipos de Solução Usando MySQL, casos de sucesso

Investimento Oracle no MySQL

Visão de Negócios

Page 5: Guia essencial para embarcar o MySQL em seu produto

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

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 6: Guia essencial para embarcar o MySQL em seu produto

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

Identificação do Mercado e Modelo de Negócios Livro: Business Model Generation

Page 7: Guia essencial para embarcar o MySQL em seu produto

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

Identificação do Mercado e Modelo de Negócios Canvas

Page 8: Guia essencial para embarcar o MySQL em seu produto

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

Page 9: Guia essencial para embarcar o MySQL em seu 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 10: Guia essencial para embarcar o MySQL em seu produto

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

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 da migração são compensados pelos ganhos

Page 11: Guia essencial para embarcar o MySQL em seu produto

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

Alguns clientes MySQL

Page 12: Guia essencial para embarcar o MySQL em seu produto

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

MySQL é estratégico para Oracle Soluções Completas

#1 em todos os níveis da pilha

Cloud e On Premise

MySQL: Web, Mobile & Embedded

Investimentos na Engenharia do MySQL

Page 13: Guia essencial para embarcar o MySQL em seu produto

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

Compromisso Oracle com MySQL

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

Page 14: Guia essencial para embarcar o MySQL em seu produto

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

MySQL é adequado para o meu produto?

Quais as principais características técnicas do MySQL?

Quais plataformas e linguagens posso utilizar?

Quais recursos de segurança, alta-disponibilidade (HA) e

escalabilidade?

Como embarcar?

Quais vantagens no desenvolvimento e produção?

Como atualizar ou migrar?

Dúvidas Técnicas

Page 15: Guia essencial para embarcar o MySQL em seu produto

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

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: Guia essencial para embarcar o MySQL em seu produto

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

Aplicação + Connector JDBC, ODBC, .Net, PHP, Python, Perl, Ruby, Native C API…

MySQL Database mysqld

Cliente-Servidor

Gerenciamento mysql / monitor / backup

Page 17: Guia essencial para embarcar o MySQL em seu produto

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

Aplicação

+

MySQL Database libmysqld

libmysqld

Page 18: Guia essencial para embarcar o MySQL em seu produto

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

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 19: Guia essencial para embarcar o MySQL em seu produto

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

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 20: Guia essencial para embarcar o MySQL em seu produto

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

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)

Comunidade

• PHP

• Perl

• Ruby

• TCL

• Eiffel

• …

dev.mysql.com/doc/refman/5.6/en/connectors-apis.html

Page 21: Guia essencial para embarcar o MySQL em seu produto

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

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 22: Guia essencial para embarcar o MySQL em seu produto

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

Default Storage Engine InnoDB

Page 23: Guia essencial para embarcar o MySQL em seu produto

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

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 24: Guia essencial para embarcar o MySQL em seu produto

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

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 25: Guia essencial para embarcar o MySQL em seu produto

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

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 26: Guia essencial para embarcar o MySQL em seu produto

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

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 27: Guia essencial para embarcar o MySQL em seu produto

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

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 28: Guia essencial para embarcar o MySQL em seu produto

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

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 29: Guia essencial para embarcar o MySQL em seu produto

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

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 30: Guia essencial para embarcar o MySQL em seu produto

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

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 31: Guia essencial para embarcar o MySQL em seu produto

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

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 32: Guia essencial para embarcar o MySQL em seu produto

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

Aplicação

Master Slave

• Master down

• Slave promovido para Master

Escritas & Leituras

MySQL failover

Page 33: Guia essencial para embarcar o MySQL em seu produto

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

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 34: Guia essencial para embarcar o MySQL em seu produto

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

Soluções certificadas MySQL HA: resumo

mysql.com/why-mysql/white-papers/mysql_wp_ha_strategy_guide.php

MySQL 5.6

Replication

Windows

Cluster

Solaris

Cluster

Oracle VM

Template DRBD

MySQL

Cluster

Nível de disponibilidade 99.9% 99.95% 99.99% 99.99% 99.99% 99.999%

Auto-Failover ✔ ✔ ✔ ✔ ✔ ✔

Sem perda de dados durante

failover ✔

Semi-Sync ✔ ✔ ✔ ✔ ✔

Plataformas suportadas All Windows Solaris Linux Linux All

Modo de clusterização Master +

Slaves

Active /

Passive

Active /

Passive

Active /

Passive

Active /

Passive

Multi-

Master

Dispensa Shared Storage ✔ ✖ ✖ ✖ ✔ ✔

Ponto único de suporte ✔ ✖ ✔ ✔ ✔ ✔

Page 35: Guia essencial para embarcar o MySQL em seu produto

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

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 36: Guia essencial para embarcar o MySQL em seu produto

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

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 37: Guia essencial para embarcar o MySQL em seu produto

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

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 38: Guia essencial para embarcar o MySQL em seu produto

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

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 39: Guia essencial para embarcar o MySQL em seu produto

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

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

Baixe e instale em menos de 15 minutos

Donwload

– Community: dev.mysql.com/downloads

– Comercial: edelivery.oracle.com (trial)

Page 40: Guia essencial para embarcar o MySQL em seu produto

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

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 41: Guia essencial para embarcar o MySQL em seu produto

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

Prefira os binários pré-compilados

Page 42: Guia essencial para embarcar o MySQL em seu produto

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

Iniciar ou Parar o servidor MySQL no Windows

…ou via MySQL Notifier

Page 43: Guia essencial para embarcar o MySQL em seu produto

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

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 44: Guia essencial para embarcar o MySQL em seu produto

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

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 45: Guia essencial para embarcar o MySQL em seu produto

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

Teste via MySQL Workbench 1/2

Page 46: Guia essencial para embarcar o MySQL em seu produto

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

Teste via MySQL Workbench 2/2

Page 47: Guia essencial para embarcar o MySQL em seu produto

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

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 48: Guia essencial para embarcar o MySQL em seu produto

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

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 49: Guia essencial para embarcar o MySQL em seu produto

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

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 50: Guia essencial para embarcar o MySQL em seu produto

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

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 51: Guia essencial para embarcar o MySQL em seu produto

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

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 52: Guia essencial para embarcar o MySQL em seu produto

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

Saiba mais... Características técnicas do MySQL

mysql.com/products/enterprise/techspec.html

Page 53: Guia essencial para embarcar o MySQL em seu produto

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

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 54: Guia essencial para embarcar o MySQL em seu produto

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

MySQL Boot Camp

Accelerated

MySQL Performance

Tuning Boot Camp

Accelerated

MySQL for Begginers

MySQL for Database

Administrators

MySQL Performance

Tuning

MySQL High Availability

MySQL Cluster

MySQL DBA

MySQL Boot Camp

Accelerated

MySQL for Developers

MySQL Performance

Tuning Boot Camp

Accelerated

MySQL for Begginers

MySQL and PHP

Developing Dynamic

Web Applicationg

MySQL Advanced Stored

Procedures

MySQLDeveloper

mysql.com/training

Certificações

Opcional

Necessário

Treinamentos e certificações

Page 55: Guia essencial para embarcar o MySQL em seu produto

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

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 56: Guia essencial para embarcar o MySQL em seu produto

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

MySQL Workbench 6 Para Windows, Linux, Solaris, Apple Mac OS…

MySQL Database IDE

Milhões de downloads

Desenvolvedores e DBA’s

Page 57: Guia essencial para embarcar o MySQL em seu produto

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

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 58: Guia essencial para embarcar o MySQL em seu produto

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

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 59: Guia essencial para embarcar o MySQL em seu produto

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

Page 60: Guia essencial para embarcar o MySQL em seu produto

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

Page 61: Guia essencial para embarcar o MySQL em seu produto

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

Explain Query

Page 62: Guia essencial para embarcar o MySQL em seu produto

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

QRTi Query Response Time Index

Page 63: Guia essencial para embarcar o MySQL em seu produto

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

Capacity Planning

Page 64: Guia essencial para embarcar o MySQL em seu produto

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

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 65: Guia essencial para embarcar o MySQL em seu produto

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

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 66: Guia essencial para embarcar o MySQL em seu produto

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

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 67: Guia essencial para embarcar o MySQL em seu produto

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

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 68: Guia essencial para embarcar o MySQL em seu 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 69: Guia essencial para embarcar o MySQL em seu produto

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

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 70: Guia essencial para embarcar o MySQL em seu produto

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

MySQL Enterprise Backup

Backup online para InnoDB

Backups completos, incrementais, parciais (automatizados via script)

Compressão

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

Certificado para Oracle Secure Backup, compatível SBT

MEB Backup

Files

MySQL Database

Files

mysqlbackup

Backup e Recovery mais rápidos e online.

Page 71: Guia essencial para embarcar o MySQL em seu produto

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

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

Page 72: Guia essencial para embarcar o MySQL em seu produto

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

Page 73: Guia essencial para embarcar o MySQL em seu produto

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

Page 74: Guia essencial para embarcar o MySQL em seu produto

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

Page 75: Guia essencial para embarcar o MySQL em seu produto

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

Page 76: Guia essencial para embarcar o MySQL em seu produto

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

Page 77: Guia essencial para embarcar o MySQL em seu produto

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

Eventos

Page 78: Guia essencial para embarcar o MySQL em seu produto

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

Page 79: Guia essencial para embarcar o MySQL em seu produto

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

Page 80: Guia essencial para embarcar o MySQL em seu produto

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

Page 81: Guia essencial para embarcar o MySQL em seu produto

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

Advisors

Page 82: Guia essencial para embarcar o MySQL em seu produto

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

Page 83: Guia essencial para embarcar o MySQL em seu produto

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

Page 84: Guia essencial para embarcar o MySQL em seu produto

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

Page 85: Guia essencial para embarcar o MySQL em seu produto

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

Page 86: Guia essencial para embarcar o MySQL em seu produto

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

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 87: Guia essencial para embarcar o MySQL em seu produto

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

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 88: Guia essencial para embarcar o MySQL em seu produto

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

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 89: Guia essencial para embarcar o MySQL em seu produto

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

@MySQLBR

meetup.com/MySQL-BR

facebook.com/MySQLBR

Obrigado!

Page 90: Guia essencial para embarcar o MySQL em seu produto

Guia essencial para embarcar o MySQL em seu produto

Perguntas?

Page 91: Guia essencial para embarcar o MySQL em seu produto

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

MySQL Enterprise Edition Suporte + Backup + Monitor + Workbench + Plug-ins

Plug-ins

Suporte

Backup

Monitor & Workbench

Escalabilidade

Segurança

Auditoria

Page 92: Guia essencial para embarcar o MySQL em seu produto

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

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