Guia essencial para embarcar o MySQL em seu produto
Airton Lastori mar-2014
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
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
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
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
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 6
Identificação do Mercado e Modelo de Negócios Livro: Business Model Generation
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 7
Identificação do Mercado e Modelo de Negócios Canvas
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 8
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 9
Oracle MySQL para ISV e OEM MySQL Community Edition
– Distribuído ao cliente final empacotado
com código aberto de seu produto
– Uso Interno, SaaS, Cloud
MySQL Enterprise Edition
– Uso Interno, SaaS, Cloud
MySQL Comercial (OEM)
– Distribuído ao cliente final empacotado
com código proprietário
Sem suporte e ferramentas Enterprise
Licença perpétua +
19% de suporte anual Suporte Oracle via Parceiro
Subscrição Anual Suporte direto da Oracle
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 10
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
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 11
Alguns clientes MySQL
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
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
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
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
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
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 17
Aplicação
+
MySQL Database libmysqld
libmysqld
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.
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
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
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…
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 22
Default Storage Engine InnoDB
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
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.
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
aç
õ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
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
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
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
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
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
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
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
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
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 ✔ ✖ ✔ ✔ ✔ ✔
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
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
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.
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
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)
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
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 41
Prefira os binários pré-compilados
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 42
Iniciar ou Parar o servidor MySQL no Windows
…ou via MySQL Notifier
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
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>
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 45
Teste via MySQL Workbench 1/2
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 46
Teste via MySQL Workbench 2/2
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:
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…
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!
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,
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
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
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
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
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
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
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
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
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 60
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 61
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 62
Explain Query
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 63
QRTi Query Response Time Index
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 64
Capacity Planning
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
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
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:
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
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
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
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.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 72
MySQL Enterprise Backup Menor tempo em backups e restores, menos downtime
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 73
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 74
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 75
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 76
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 77
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 78
Eventos
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 79
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 80
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 81
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 82
Advisors
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 83
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 84
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 85
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 86
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
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
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
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 91
@MySQLBR
meetup.com/MySQL-BR
facebook.com/MySQLBR
Obrigado!
Guia essencial para embarcar o MySQL em seu produto
Perguntas?
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
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