Beruflich Dokumente
Kultur Dokumente
Julho 2014
Airton Lastori
airton.lastori@oracle.com
Objetivos
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
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
Sem suporte e
ferramentas
Enterprise
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
COMPONENTES
da pilha
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
s
13
https://blogs.oracle.com/MySQL/entry/mysql_connect_keynotes_and_news
15
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
17
aumentar faturamento
expandir base, mudar modelo de negcios / distribuio
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
20
Continua em desenvolvimento?
21
mysql.com/products/enterprise/techspec.html
22
Aplicaes hbridas
expanso de sistemas legados
MySQL como front-end e Oracle DB como back-end
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
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
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
All GA!
27
All GA!
All GA!
Available Now!
DMR 3
Dez 2013
DMR 2
Set 2013
5.7 DMR 1
Abril 2013
5.6 GA
Fev 2013
28
e particionamento
Connections: taxas mais altas, sesses mais eficientes
Saiba mais: slideshare.net/MySQLBR/novidades-do-universo-mysql-maioi-2014
31
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
33
Cliente-Servidor
Aplicao + Connector
JDBC, ODBC, .Net, PHP, Python, Perl, Ruby, Native C API
34
Gerenciamento
MySQL Database
mysqld
libmysqld
Aplicao
+
MySQL Database
libmysqld
35
Client-server vs libmysqld
36
client-server
libmysqld
(deeply embedded)
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
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
mysqld
39
mysqld
ndbd
NDB
40
mgm_ndbd
Management
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
256TB
64TB
Transaes
Nvel de Lock
Replicao
Suporte Geoespacial
Limite de armazenamento
dev.mysql.com/doc/refman/5.6/en/storage-engines.html
41
42
Application/Client
SQL
NoSQL
(MySQL Client)
(Memcached Prot.)
mysqld
MySQL Server
Memcached plugin
http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached.html
43
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
Otimizador
Replicao
Instrumentao
Outras melhorias
Segurana
Facilidade de uso
Flexibilidade
...E MAIS...
dev.mysql.com/tech-resources/articles/mysql-5.6-rc.html
45
mysql.com/why-mysql/white-papers/whats-new-mysql-5-6
46
MySQL 5.6.7
MySQL 5.5.28
32
64
128
Conexes
256
512
Oracle Linux 6
Intel(R) Xeon(R) E7540 x86_64
MySQL leveraging:
- 48 of 96 available CPU threads
- 2 GHz, 512GB RAM
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
Oracle Linux 6
Intel(R) Xeon(R) E7540 x86_64
MySQL leveraging:
- 48 of 96 available CPU threads
- 2 GHz, 512GB RAM
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
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
<10 GB
<1TB
10+ TB
100+ TB
<10 GB
<500 GB
1+ TB
2+ TB
630,000 QPS
1,150,000 QPS
1400000
1200000
1000000
800000
5.7.3
600000
5.6
400000
200000
0
8
16
32
64
128
256
Concurrent User Sessions
512
1024
55
Replicao MySQL
Aplicao
Master
Slave
MySQL failover
Aplicao
Master
Master down
Slave promovido para Master
57
Slave
Leituras
Leituras
Master
Slave
Slave
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
WX
Slave
59
Application
Connector
SQL
MySQL Fabric
60
Read-slaves
Read-slaves
Master group
Master group
Hash)
Ferramentas para re-sharding
Tabelas globais & global updates
API Nodes
Application Layer
Management
mgm_ndbd
Data Nodes
Data Layer
ndbd
61
ndbd
ndbd
ndbd
labs.mysql.com
faster
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
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
Platform Support
All
All
Linux
Solaris
Windows
Linux
All
Clustering Mode
63
Windows Plug-In
LDAP/AD
Authenticate
65
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
Server1
Saiba mais...
Conhecimento tcnico em MySQL
Manual de Referncia
http://dev.mysql.com/doc/refman/5.6/en/index.html
Livros
MySQL, Fifth Edition by Paul DuBois <- mais para desenvolvedores
High Performance MySQL, 3rd Edition <- mais para dbas
68
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
Usando o MySQL
Hello World, ferramentas e mais conhecimento
70
Suporte ao desenvolvedor
Instalao
Baixe e instale em menos de 15 minutos
No Windows
Installer ou Web Installer
Download
Community: dev.mysql.com/downloads ou
dev.mysql.com/downloads/repo
Comercial: edelivery.oracle.com (trial)
71
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
73
MySQL Database
MySQL Workbench
MySQL Connector/ ODBC
MySQL Connector/Python
MySQL Utilities
www.alastori.com.br/2014/05/tutorial-deinstalacao-do-mysql-56-e.html
74
75
Parar:
/usr/local/mysql/bin> mysqladmin shutdown
dev.mysql.com/doc/refman/5.6/en/mysqld-safe.html
76
Primeira conexo
C:\Program Files\MySQL\MySQL Server 5.6\bin>mysql -uroot -p
Enter password: ****
Welcome to the MySQL monitor.
77
78
79
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
HelloMysql.java 1/2
import java.sql.*;
Continua
81
HelloMysql.java 2/2
Statement stmt = con.createStatement();
ResultSet rs;
//objeto Statement
//objeto ResultSet
}//end while
con.close();
} catch( Exception e ) {
e.printStackTrace();
}//end catch
}//end main
}//end class HelloMysql
82
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
Query Designer
Stored Routine Debugging
Entity Framework
mysql.com/why-mysql/windows/visualstudio
84
MySQL Workbench 6
86
MySQL Workbench 6
Configuraes
do Servidor
rea de Queries
rvore de objetos e
esquemas no Servidor
Respostas e
Histrico
87
88
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
90
91
Explain Query
92
QRTi
Query Response Time Index
93
Capacity Planning
94
95
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
Beginners Ed 3
MySQL Performance
Tuning
Oracle Certified
Professional, MySQL 5.6
Developer
Oracle Certified Expert,
MySQL Cluster DBA
MySQL Cluster
MySQL Developers
Techniques
MySQL Advanced Stored
Procedures
96
Opcional
Necessrio
education.oracle.com/mysql
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
98
Cloud: SaaS
On-Premise: Embarcado
Como embarcar?
Como embarcar
Opes de distribuio embedded e deeply embedded
client-server
libmysqld
(embedded)
(deeply embedded)
Demais SOs
instale e configure usando TARs
ou RPMs
99
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)
Exemplo de execuo:
mysqld.exe
100
--port=3306
--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
101
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
104
106
107
108
109
110
111
Eventos
112
113
114
115
Advisors
116
117
118
119
120
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
MySQL Workbench 6
Migration Wizard
Fcil Migrao
Microsoft SQL Server
PostgreSQL
Sybase ASE
Sybase SQL Anywhere
SQLite, MS Access
dev.mysql.com/doc/workbench/en/wb-migration-overview-steps.html
122
Complexidade
Ferramenta MySQL
Workbench ou CSV dumps
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
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
Migration Tools
Golden Gate, Pentaho, Convert-in, SQLWays
support.oracle.com/epmos/faces/DocumentDisplay?id=1477151.1
124
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
Escalabilidade
Segurana
Auditoria
Plug-ins
Backup
Monitor &
Workbench
126
Sumrio
127
@MySQLBR
facebook.com/MySQLBR
meetup.com/MySQL-BR
128
Obrigado!
Perguntas?