Upload
mysql-brasil
View
2.310
Download
0
Embed Size (px)
DESCRIPTION
Por que MySQL no Windows?Ambiente de desenvolvimento em 5 minutosMySQL com alta-disponibilidade no Windows
Citation preview
<Insert Picture Here>
Marcos Trujillo [email protected]
Airton Lastori [email protected]
nov-2011
MySQL no Windows
Agenda
• Por que MySQL no Windows?
• Ambiente de desenvolvimento em 5 minutos
• MySQL com alta-disponibilidade no Windows
Por que MySQL no Windows?
Alguns clientes
fonte: alexa.com/topsites 17-ago-2011
Top websites
Quem usa MySQL – Top 10 Websites
1.Google
2.Facebook
3.Youtube
4.Yahoo!
5.Blogger.com
6.Baidu.com
7.Wikipedia
8.Windows Live
9.Twitter
10.QQ.com
fonte: alexa.com/topsites 17-ago-2011
Foco MySQL – Áreas
Investimento Oracle no MySQL Inovação Acelerada
Fazer o MySQL um Melhor MySQL • #1 BD Open Source para Web Applications
• LAMP Stack mais completo do mercado
• Telecom, Embedded & Windows
Desenvolver, Promover e Suportar o MySQL • Melhorias na Engenharia, Suporte e Consultoria
• Suporte Oracle 24x7 de alto-nível
MySQL Community Edition • Releases do código-fonte e binários
• GPL
Cross-Platform
Lower TCO Performance
Ease of Use
4 motivos para investir MySQL+Windows
MySQL vs Microsoft SQL Server
- Term: 3 Years
- Users: Unlimited (web)
- Servers: 4
- Hardware: Intel x86
- CPUs/Server: 4
- Cores/CPU: 4
- MySQL: MySQL Enterprise Edition
- Microsoft: SQL Server Enterprise Edition
MySQL 5.5 on Windows
MySQL 5.1.50
(InnoDB built-in)
MySQL 5.1.50
(InnoDB Plug-in)
MySQL 5.5.6
(New InnoDB)
SysBench Benchmark
Intel x86_64
4 CPU x 2 Cores/CPU
3.166 GHz, 8GB RAM
Windows Server 2008
540% performance gain
for MySQL 5.5 over 5.1.50; at scale
MySQL 5.5 on Windows
MySQL 5.1.50
(InnoDB built-in)
MySQL 5.1.50
(InnoDB Plug-in)
MySQL 5.5.6
(New InnoDB)
SysBench Benchmark
Intel x86_64
4 CPU x 2 Cores/CPU
3.166 GHz, 8GB RAM
Windows Server 2008
1560% performance gain
for MySQL 5.5 over 5.1.50; at scale
Flexibilidate Multi-Plataforma MySQL
• Suporte para 20+ plataformas
• Sem lock-in de fornecedores
• Permite uso de LAMP stack em aplicações Web
• OEM/ISVs embarcando MySQL em mais mercados
com mais flexibilidade para o usuário final
http://mysql.com/support/supportedplatforms/database.html
Facilidade de Uso & Administração
• Desenhado para ser fácil de usar (ex. regra 15min)
• Mais de 2.000 OEM/ISVs distribuem o MySQL como
“BD Embarcado Zero Admin”
• Integração com ambiente Windows nos RDBMS,
conectores e ferramentas
• Tipicamente não requer time exclusivo de DBAs
• Popularidade do MySQL: conhecimento disseminado
• Suporte e Ferramentas Enterprise:
• MySQL Workbench SE
• MySQL Enterprise Monitor
• MySQL Query Analyzer
• MySQL Enterprise Backup
Subscrições MySQL V
alo
r A
gre
gad
o
Cluster
Enterprise +
• Cluster Manager
Enterprise
Edition
Standard +
• Plug-Ins
• Enterprise Monitor
• Enterprise Backup
Standard
Edition
• MySQL Database
• Premier Support
• Workbench SE
Subscrições MySQL V
alo
r A
gre
gad
o
Cluster
Enterprise +
• Cluster Manager
Enterprise
Edition
Standard +
• Plug-Ins
• Enterprise Monitor
• Enterprise Backup
Standard
Edition
• MySQL Database
• Premier Support
• Workbench SE
Oracle Suporte para o MySQL
* MySQL Premier Support – 5 anos, começando pelo GA
Suporte Consultivo MySQL
DBA e
Desenvolvedores
Subscrições MySQL V
alo
r A
gre
gad
o
Cluster
Enterprise +
• Cluster Manager
Enterprise
Edition
Standard +
• Plug-Ins
• Enterprise Monitor
• Enterprise Backup
Standard
Edition
• MySQL Database
• Premier Support
• Workbench SE
Extensões Comerciais
• Enterprise Security • Plug-In: MySQL External Authentication
• Enterprise Scalability • Plug-In: MySQL Thread Pool
Windows Authentication: Exemplo
Connector
Connect as
1. MyDomain\joe faz login
na aplicação com senha
Windows
Connected
Authenticate
CREATE USER win_joe
IDENTIFIED WITH authentication_windows
AS ‘joe';
App
LDAP/AD Windows
Auth
Connect as
2. MyDomain\joe é
autenticado via
LDAP/AD Connect as
4. Tokens são verificados, o
usuário win_joe é autenticado
com Windows login, porém
com privilégios do MySQL.
Connect as
3. A aplicação conecta-se
ao MySQL com usuário
win_joe.
Com Thread Pooling Habilitado
Sysbench OLTP: Read Only
Performance
0
2000
4000
6000
8000
10000
12000
14000
16000
16 32 64 128 256 512 1,0242,0484,096
Simultaneous Database Connections
Tra
nsacti
on
s P
er
Seco
nd
Without Thead Pool
With Thead Pool
• MySQL 5.5.7
• Oracle Linux 5, Unbreakable Kernel
2.6.32
• 4 sockets, 48 cores, 4 X 12-core
AMD Opteron 6172 “Magny-Cours”
2.1GHz CPUs
• 64 GB DDR2 RAM
• 2 X Intel X25E SSD Drives
Com Thread Pooling Habilitado
Sysbench OLTP: Read / Write
Performance
0
2000
4000
6000
8000
10000
16 32 64 128 256 512 1,0242,0484,096
Simultaneous Database Connections
Tra
nsacti
on
s P
er
Seco
nd
Without Thead Pool
With Thead Pool
• MySQL 5.5.7
• Oracle Linux 5, Unbreakable Kernel
2.6.32
• 4 sockets, 48 cores, 4 X 12-core
AMD Opteron 6172 “Magny-Cours”
2.1GHz CPUs
• 64 GB DDR2 RAM
• 2 X Intel X25E SSD Drives
• Visão única e consolidada em todo o ambiente MySQL
• Auto-descoberta dos servidores MySQL, topologias de replicação
• Regras personalizáveis de monitorização e alertas
• Identificação de problemas antes que eles ocorram
• Reduz o risco de inatividade
• Facilita “scale out” sem exigir mais DBAs
Assistente virtual do DBA MySQL!
MySQL Enterprise Monitor
http://mysql.com/trials/
MySQL Enterprise Monitor: Query Analyzer
MySQL Enterprise Backup
• Anteriormente “InnoDB Hot Backup”
• Online, non-locking backup & recovery • Tables, Indexes
• Server, database, ou object-level
• Backups Lógico e Físico
• Backups Completos ou Incrementais
• Point-in-time recovery
• Backups Comprimidos
• Também oferece backup e recuperação para MyISAM
• Multi-plataforma (Windows, Linux, Unix)
http://mysql.com/trials/
Backups
Backups são até 3.5x mais rápidos do que mysqldump
Restores
Restore é até 16x mais rápido do que mysqldump
- mysqldump performance não é linear (mais tables/indexes impacta na performance)
- MySQL Enterprise performance é quase linear
Compressão do Backup
O tamanho do Backup é reduzido de 65% até 93%
Subscrições MySQL V
alo
r A
gre
gad
o
Cluster
Enterprise +
• Cluster Manager
Enterprise
Edition
Standard +
• Plug-Ins
• Enterprise Monitor
• Enterprise Backup
Standard
Edition
• MySQL Database
• Premier Support
• Workbench SE
Como o MySQL Cluster Manager Ajuda?
Examplo: Upgrade do MySQL Cluster 6.3 to 7.1
• 1 x verificação preliminar do estado do Cluster
• 8 x comandos ssh por servidor
• 8 x comandos stop por processo
• 4 x edições dos arquivos de configuaração (2 x
mgmd & 2 x mysqld)
• 8 x comandos start por processo
• 8 x verificações do processo start e re-joined
• 8 x verificações de processos completos
• 1 x verificação de todo o cluster.
• Reedição manual de cada arquivo de configuração.
Total: 46 comandos – 2h30min. de interação
Sem MySQL Cluster Manager Com MySQL Cluster Manager
upgrade cluster --package=7.1 mycluster;
Total: 1 Comando
Resultados Redução de overhead e simplificação de
administração.
Reduz risco de downtime por erro do
administrador.
Ambiente de
desenvolvimento em
5 minutos
dev.mysql.com/downloads
MySQL Installer
Plataformas Windows para MySQL
Arquitetura x86 32 & 64 bit:
• Windows 2008
• Windows 2008 RC
• Windows 7
• Windows Vista
• Windows 2003 Server
• Windows XP
Windows Connectors
Desenvolvidos pela Oracle
• Connector/NET ADO.NET
• Connector/ODBC ODBC
• Connector/J JDBC
• Connector/C C API
• Connector/C++ C++ API
Comunidade
• PHP
• Perl
• Python
• Ruby
Suporte à diversas linguagens
www.mysql.com/products/connector
Windows Connectors
Desenvolvidos pela Oracle
• Connector/NET ADO.NET
• Connector/ODBC ODBC
• Connector/J JDBC
• Connector/C C API
• Connector/C++ C++ API
Comunidade
• PHP
• Perl
• Python
• Ruby
Suporte Windows
www.mysql.com/products/connector
MySQL Connector/ODBC
Connector/NET
• Crie aplicações .NET facilmente
• C#,
• ASP.NET
• VB.net
• Connector/Net
• Implementa interfaces ADO.NET
• Integra com ferramentas ADO.NET aware
• Driver ADO.NET totalmente gerenciado
• Open Source, escrito 100% em C#
Integração Visual Studio + MySQL
Tables Views
Columns Stored Procs & Functions
Indexes Triggers
Foreign Keys User-Defined Functions (UDF)
Column & Table Properties Cloning Database Objects
Using ADO.NET Entity Framework
MySQL SQL Editor
DDL T4 Template Macro MySQL Website Configuration Tool
Integração Visual Studio + MySQL
editando objetos do BD
Links Connector/NET
• Visual Studio integration http://dev.mysql.com/doc/refman/5.5/en/connector-net-visual-studio.html
• Connector/NET download http://www.mysql.com/downloads/connector/net/
• Exploring MySQL in the Microsoft .NET Environment http://dev.mysql.com/tech-resources/articles/dotnet/index.html
• Using MySQL With .NET/C#/Visual Basic/Powershell http://dev.mysql.com/usingmysql/dotnet/
MySQL para DBAs SQL Server
MySQL Users, Databases & Schemas são gerenciados
de modo similar ao SQL Server
Particionamento e outros recursos avançados
presentes tanto na edição Community quanto Enterprise
Replicação e alta-disponibilidade em poucos minutos
para implementar e com fácil manutenção
MySQL para DBAs SQL Server
Online “Hot” Backup com MySQL Enterprise Backup
Data Types & Stored Procedures
Datatypes
MySQL com
alta-disponibilidade no
Windows
% 9 9 9 9 35 dias 4 days 50 min 5 min 8 horas
Replicação
Clustering &
Virtualização
Clustering &
Redundância
Geográfica
ISPs &
Corporativo
On-Line
Services
eCommerce
Telecoms
Militar
. 9 .
4 dias
Cu
sto
& C
om
ple
xid
ad
e
Alta disponibilidade
% 9 9 9 9 35 dias 4 days 50 min 5 min 8 horas
Replicação
ISPs &
Corporativo
On-Line
Services
eCommerce
Telecoms
Militar
.
Replication
9 . 4 dias
Cu
sto
& C
om
ple
xid
ad
e
Alta disponibilidade
Writes & Reads Reads Reads
• Escreva para 1 Master
• Leia de vários Slaves, adicione mais quando necessário
• Perfeito para aplicações de leitura intensiva
Aplicação
Replicação MySQL
Load Balancer
Replicação possibilita escalabilidade
% 9 9 9 9 35 dias 4 days 50 min 5 min 8 horas
Clustering &
Redundância
Geográfica
ISPs &
Corporativo
On-Line
Services
eCommerce
Telecoms
Militar
. 9 .
4 dias
Cu
sto
& C
om
ple
xid
ad
e
Alta disponibilidade
MySQL Cluster
Alta Performance escalabilidade de escrita & baixíssima latência
Disponibilidade 99,999%
Flexibilidade vários métodos de acesso à dados (SQL+NoSQL)
Baixo TCO open source + hardware commodity
Data Nodes
Node Group 1
F1
F3
F3
F1
No
de
1
No
de
2
Node Group 2
F2
F4
F4
F2
No
de
3
No
de
4
Application Nodes
Cluster
Mgmt
Cluster
Mgmt
LDAP REST
MySQL Cluster Application Nodes
NDB API
Arquitetura MySQL Cluster
Data Nodes
Node Group 1
F1
F3
F3
F1
No
de
1
No
de
2
Node Group 2
F2
F4
F4
F2
No
de
3
No
de
4
Application Nodes
Cluster
Mgmt
Cluster
Mgmt
LDAP REST
MySQL Cluster Application Nodes
NDB API
Arquitetura MySQL Cluster
MySQL Cluster 7.1 Benchmarks
Performance +4 Milhões de Queries por Segundo! • 8 servidores Intel commodity
• CPU 2.93GHz, 6 core Intel
• 24GB RAM cada
• 2 Data Nodes por servidor
Escalabilidade horizontal em hardware commodity • Com 16 servidores, chegou-se a
6,82 Milhões QPS
• baixo TCO
Resultados confirmados • mikaelronstrom.blogspot.com
• Iniciativa independente
• 2 dias de testes
% 9 9 9 9 35 dias 4 days 50 min 5 min 8 horas
Clustering &
Virtualização
ISPs &
Corporativo
On-Line
Services
eCommerce
Telecoms
Militar
. 9 .
4 dias
Cu
sto
& C
om
ple
xid
ad
e
Alta disponibilidade
App
Virtual IP
Data Bin
Slave App App
Vote
MySQL e Windows Clustering
Pré-requisitos
• MySQL 5.5 & InnoDB devem
ser usados como BD (MyISAM
não é crash-safe e o failover
pode resultar em um BD
corrompido)
• Windows Server 2008 R2
• Conexões de rede
reduntantes para hosts e
storage
• WSFC cluster validation
deve passar com sucesso
• iSCSI ou FCAL SAN deve
ser usado como storage
compartilhado
Passo 1/7
Configure iSCSI via software (opcional)
Passo 2/7
Habilite a opção Windows Failover
Clustering
Passo 3/7
Instale o MySQL como serviço em
ambos servidores
Passo 4/7
Migre binários MySQL binaries &
dados para shared storage
1. Pare os serviços MySQL
2. Modifique as pastas no arquivo de configuração
3. Copie os dados e binários para o drive compartilhado
De Para
C:\Program Files\MySQL\MySQL Server 5.5 F:\MySQL Server 5.5
C:\ProgramData\MySQL\MySQL Server 5.5\data F:\MySQL Data
Passo 5/7
Crie o Windows Failover Cluster
Passo 6/7
Crie Cluster de MySQL Servers com
Windows Cluster
Passo 7/7
Teste o Windows Cluster
1. conecte a aplicação
pelo Virtual IP Address
2. durante a migração ou
failover, o WSFC vai
alternar o Virtual IP
entre os servidores
3. a aplicação deve
gerenciar a falha das
transações em curso
ws3 ws1
ws2
slave
192.168.2.4
192.168.2.6
192.168.5.1
192.168.2.6
192.168.2.4
192.168.2.1
192.168.5.3
192.168.5.2
VIP 192.168.2.1
8
192.168.2.1
Links MySQL + Windows Clustering
• MySQL with Windows Server 2008 R2 Failover Clustering www.clusterdb.com/mysql/mysql-with-windows-server-2008-r2-failover-
clustering
• White-paper Windows Failover Clustering www.mysql.com/why-mysql/white-
papers/mysql_wp_windows_failover_clustering.php
Mais sobre MySQL
MySQL Treinamento e Certificação
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
http://education.oracle.com
Treinamentos
Certificações
Opcional
Necessário
07-dez-2011
Registre-se: http://bit.ly/usLQoD
Conclusão
• Windows é uma plataforma estratégica para
Oracle/MySQL.
• MySQL Server 5.5 provê alta-performance, escalabilidade,
flexibilidade, facilidade de uso, baixo custo e é uma ótima
alternativa ao SQL Server ou MS-Access.
• MySQL Cluster 7.1 também é suportado no Windows.
• Linhas de produtos MySQL suportam os desenvolvedores
Windows:
• Windows Installer (Server + Workbench + Connectors & Drivers);
• Monitoramento, Tunning Performance, otimização de Queries;
• Backup & Recovery;
• Cluster Manager.
• Windows Cluster certificado para Win2008 R2.
Obrigado!
Time MySQL Brasil
[email protected] [email protected] [email protected] [email protected]
@MySQLBR meetup.com/MySQL-BR