Sei sulla pagina 1di 60

<Insert Picture Here>

MySQL no Windows implementao eficiente de novas aplicaes

Marcos Trujillo
marcos.trujillo@oracle.com

Airton Lastori
airton.lastori@oracle.com
mai-2012

INVESTIMENTOS INIGUALVEIS
MELHORIAS DE PERFORMANCE
REPLICAO

InnoDB
EMBARCADO

CLOUD

WINDOWS

CENTENAS DE ESPECIALISTAS

ESTRATGICO

SUPORTE DE PRIMEIRA CLASSE

WEB
MySQL ENTERPRISE EDITION

MySQL CLUSTER
NoSQL
LINUX

MAIORES TIMES DE ENGENHARIA DO MySQL & ORGANIZAO2DE SUPORTE

Mais Lanamentos de Produtos do que Nunca Liderando a Inovao do MySQL


MySQL Enterprise Monitor 2.2 MySQL Cluster 7.1 MySQL Cluster Manager 1.0
MySQL Workbench 5.2 MySQL Database 5.5 MySQL Enterprise Backup 3.5 MySQL Enterprise Monitor 2.3 MySQL Cluster Manager 1.1 Todos em GA! MySQL Enterprise Backup 3.7 Oracle VM Template for MySQL Enterprise Edition MySQL Cluster 7.2: GA!

MySQL Enterprise Oracle Certifications


MySQL Windows Installer MySQL Enterprise Commercial Extensions Todos em GA! MySQL Database 5.6 DMR* MySQL Cluster 7.2 DMR e MySQL Labs!
mais cedo e com mais frequncia

Um MySQL Melhor
*Development Milestone Release
2010 2011 2012 Q1

Portfolio Open Source (GPL)


MySQL Database (Community Server)
5.5.24 GA e 5.6.5 DMR

MySQL Cluster (NDB Community) 7.2.6 GA MySQL Workbench Community Edition 5.2.40 GA MySQL Utilities (em Python) MySQL Connectors
ODBC, Java, .Net, C, C++, PHP, OpenOffice

MySQL Proxy 0.8.2 Alpha Documentao: livre para uso, no coberto pela GPL Forums
dev.mysql.com/downloads
4

O MySQL est em todo lugar!

Web & Enterprise

OEM & ISVs

Cloud
5

MySQL no Windows Voc sabia?


O Windows a plataforma de desenvolvimento #1 para MySQL

O Windows a plataforma #1 de implantao para usurios da MySQL Community Edition

forums.mysql.com
6

Agenda
Por que MySQL no Windows? MySQL 5.5 = Performance, Confiabilidade, Facilidade de Uso Integrao com Ambientes Windows Existentes Segurana, Escalabilidade, Alta Disponibilidade Ferramentas para Desenvolvedores e DBAs Suporte Tcnico

Por que MySQL no Windows?


Menor TCO Performance

Multi-Plataforma

Facilidade de Uso

Por que MySQL no Windows?


Menor TCO Performance

Multi-Plataforma

Facilidade de Uso

MySQL vs Microsoft SQL Server


At 96% de economia no Custo Total de Propriedade
$1.600.000 $1.400.000 $1.200.000 $1.000.000 $800.000 $600.000 $400.000 $200.000 $0
MySQL Enterprise Edition Microsoft SQL Server 2008 Enterprise Microsoft SQL Server Edition 2012 Enterprise Edition
Configurao de Hardware: - Servidores Intel x86_64: 4, CPUs/Servidor: 4, Cores/CPU: 8

$1.539.776

$769.860

$60.000

mysql.com/tcosavings
10

MySQL Database
Performance, Confiabilidade, Facilidade de Uso
Suporte s mais conhecidas plataformas/linguagens de desenvolvimento Gerenciamento eficiente e multithread de sesses

Parsing completo DML+DDL, otimizador, baseado em custo, caching de queries e resultados

Vrias opes de Storage Engine para necessidades especficas das aplicaes Opes flexveis de logging e armazenamento fsico 11

Comparao da Arquitetura do MySQL


Mecanismo MySQL
InnoDB data cache InnoDB log cache MyISAM key cache Dictionary cache Query Cache User caches

Microsoft SQL Server


Buffer cache SQL cache Misc caches (lock, connection, workspace, etc.)

Memory Caches

Redo/Undo Logs

InnoDB Undo Space InnoDB Logs Binary Log


Tablespaces Table/Index Files Format files Cost-based

TempDB (2005+) Transaction Logs


Filegroups Files Cost-based

Data Storage

Optimizer

12

Comparao das funcionalidades core


Funcionalidade
ndices padres Heap Tables e B-Tree Tabelas/ndices Particionados Suporte Transaes ACID Row-Level Locking, MVCC (leituras no bloqueiam escritas) Integridade Referencial Garantidas pelo Servidor Indexao Avanada (Clustered, Full-Text) Suporte robusto a vrios tipos de dados (BLOBs, varchar, datetime, numerics, etc.)

MySQL

Microsoft

Replicao
Stored Procedures, Triggers, Functions, Cursors, Updateable Views Banco de dados em Cluster para Alta Disponibilidade Otimizador baseado em custo Backup Online com Point-in-Time Recovery Suporta Datasets com Terabytes em tamanho Open Source

13

Por que MySQL no Windows?


Menor TCO Performance

Multi-Plataforma

Facilidade de Uso

14

MySQL 5.5: a melhor release at hoje!


InnoDB o Storage Engine padro
Transaes ACID, FKs, Crash Recovery

Performance Melhorada
Melhorias no MySQL Server Melhorias no InnoDB + 360% sobre 5.1 no Linux + 1500% sobre 5.1 no Windows

Mais Disponibilidade
Replicao Semi-sncrona Replicao Heartbeat

Melhor Usabilidade
SIGNAL/RESIGNAL Mais Opes de Particionamento Novo PERFORMANCE_SCHEMA
> 95% de todas aplicaes MySQL rodam no InnoDB

15

Otimizaes especficas no MySQL 5.5 para Windows


Melhorias de Performance:
RW-locks substitudos no MySQL Server pelos RWlocks nativos do Windows (Windows 7, Windows 2008R2 e posteriores). Variveis condicionais no MySQL Server substitudas por variveis condicionais do Windows. Incrementos estatsticos substitudos com mutexes para fazer uso dos incrementos atmicos nativos do Windows. Uso de variveis condicionais nativas do Windows Vista e posteriores no InnoDB.
16

MySQL Database
SysBench Benchmarks - Windows

MySQL 5.5.6
(Default InnoDB)

MySQL 5.1.50
(InnoDB Plug-in)

MySQL 5.1.50
(InnoDB built-in)

540% ganho de performance


para MySQL 5.5 sobre 5.1.50
17

Intel x86_64

4 CPU x 2 Cores/CPU
3.166 GHz, 8GB RAM Windows Server 2008

MySQL Database
SysBench Benchmarks - Windows

MySQL 5.5.6
(Default InnoDB)

MySQL 5.1.50
(InnoDB Plug-in)

MySQL 5.1.50
(InnoDB built-in)

1560% ganho de performance


para MySQL 5.5 sobre 5.1.50
18

Intel x86_64

4 CPU x 2 Cores/CPU
3.166 GHz, 8GB RAM Windows Server 2008

MySQL 5.6: um MySQL melhor

Novo!

MySQL 5.6 criado a partir do MySQL 5.5 atravs de melhorias:


Otimizador para melhor Performance, Escalabilidade Performance Schema para melhor instrumentao InnoDB para melhor throughput transacional Replicao para maior disponibilidade, integridade de dados Opes NotOnlySQL para maior flexibilidade

Teste agora mesmo: dev.mysql.com/downloads/mysql


19

Por que MySQL no Windows?


Menor TCO Performance

Multi-Plataforma

Facilidade de Uso

20

MySQL Flexibilidade Multi-Plataforma


Suporte para 20+ Plataformas Sem lock-in de fornecedor Desenvolva/Teste no Windows, implante no LAMP OEM/ISVs podem embarcar o MySQL e distribuir em mais mercados, oferecendo mais flexibilidade aos usurios finais

21

Verses Windows para MySQL


Arquiteturas x86 32 bit e 64 bit Verses Windows 2008 Windows 2008 RC Windows 7 Windows Vista Windows 2003 Server Windows XP

22

Por que MySQL no Windows?


Menor TCO Performance

Multi-Plataforma

Facilidade de Uso

23

MySQL Conectores/Drivers para Windows


Desenvolvido pela Oracle Connector/ODBC ODBC Connector/Net ADO.NET Connector/J JDBC Connector/C C API Connector/C++ C++ API Comunidade PHP Perl Python Ruby

Amplo suporte a vrias linguagens


mysql.com/products/connector
24

Migre de MS-Access para MySQL


Use Connector/ODBC MS-Access pode suportar um BD de apenas 2GB MySQL pode lidar com milhares de conexes simultneas MySQL tira vantagem de sistemas multi-cpu/core MySQL possui melhor segurana, proteo aos dados, backup, replicao e outras funcionalidades de SGBDs Acesse via MySQL Connector/ODBC Mesmo para outros produtos Microsoft Office
Whitepapers A Guide to Migrating From Microsoft Access to MySQL A Visual Guide to Microsoft Access Front-Ends with MySQL

mysql.com/windows
25

MySQL Connector/ODBC

26

MySQL Connector/Net
Desenvolva aplicativos corporativos no Windows

Crie aplicaes .NET facilmente C#, ASP.NET VB.net Connector/Net Implementa as interfaces ADO.NET Integra com ferramentas compatveis com ADO.NET Driver ADO.NET totalmente gerenciado Suporta Windows Authentication Open Source, escrito 100% em C#

27

MySQL Connector/Net
Desenvolva aplicativos corporativos no Windows

Compatvel com Visual Studio 2010 Suporte ao .Net 4.x (e anteriores desde 2.x) Desenvolvimento Model-First usando Entity Framework Editor nativo MySQL no Visual Studio Compatvel com assistentes do Visual Studio Novo modo MySQL Server especfico para mysql Integrao com Web site wizard Usado para criar websites ASP.NET com MySQL Server Traz vrios providers. Adiciona boto na barra de ferramentas para navegar nestes providers

28

MySQL Connector/Net
Desenvolva aplicativos corporativos no Windows

Ddlt4 template macro para configurao de website EF4 desenvolvimento model first Inicie com um modelo Depois crie o esquema de dados usando MySQL Templates (forward engineer) Habilite ou desabilite a coleta/anlise de queries em tempo de execuo integrado com MySQL Enterprise Monitor Query Analyzer Edite/crie Tabelas, colunas, ndices, FKs, views, Stored Procedures, Functions . Escopos de transao aninhados

29

MySQL Connector/Net 6.5


Suporte a partial trust

Novo!

Polticas de segurana MySQL agora equivalem s do SQL Server. Permite aplicaes MySQL rodar sem problemas em ambientes com partial/medium trust (hosting/cloud, on-premise).

SQL auto-complete no editor Visual Studio Suporte command injection


Permite sobrescrever commands importante para testes, debug, etc.

Suporte intercepo de Exceptions


Permite desenvolvedores capturar facilmente excees de aplicaes para tratamento automtico ou debug.

30

Materiais sobre Connector/Net


Integrao com Visual Studio
http://dev.mysql.com/doc/refman/5.5/en/connector-net-visual-studio.html

Download do Connector/Netat:
http://www.mysql.com/downloads/connector/net/

Explorando MySQL no ambiente Microsoft .NET


http://dev.mysql.com/tech-resources/articles/dotnet/index.html

MySQL com .NET/C#/Visual Basic/Powershell


http://dev.mysql.com/usingmysql/dotnet/

31

MySQL Installer for Windows

nico arquivo para download e instalao Interface amigvel para Windows

Verifica pr-requisitos automaticamente


Faz atualizaes Configura produtos includos

Do download ao desenvolvimento em 3 minutos!


32

MySQL Installer for Windows


Interface grfica nativa do Windows Todos produtos MySQL para desenvolvimento em UM nico pacote

MySQL Database
MySQL Connectors MySQL Workbench e exemplos de modelos

Exemplos de bancos de dados


Documentao

Alta integrao de produtos, download sob demanda, funcionalidades de atualizao


33

MySQL Installer for Windows


Selecione

Atualize

Configure

mysql.com/downloads
34

Questes difceis
problemas de performance? queries lentas, custosas? onde, quando, como tunar? problemas de replicao? os sistemas escalaro? servidores down? poltica de segurana, muda? produtividade de desenv./QA?

qual verso do MySQL rodar?


posso recuperar?

gerenciar bases Oracle e MySQL?


35

Resposta: MySQL Enterprise Edition.


Desenvolvimento Visual BD MySQL, Monitoramento, Backup e servios Oracle de suporte tcnico Totalmente suportado nos sistemas Win 32, 64
Oracle Product Certifications MySQL Enterprise Backup MySQL Enterprise Security MySQL Enterprise High Availability

Oracle Premier Support


MySQL Enterprise Monitor/Query Analyzer MySQL Enterprise Scalability

MySQL Workbench

36

MySQL Enterprise Security


MySQL External Authentication Windows Acesse servios nativos do Windows Autenticao de usurios j logados no Windows (inclusive Windows Active Directory) PAM (Pluggable Authentication Modules) Acesse mtodos de autenticao externos Interfaces padronizadas (Unix, LDAP, Kerberos, outros) proxy users Pluggable Authentication API para plug-ins
Integra o MySQL com infra-estruturas de segurana existentes e SOPs.
37

Windows Authentication: Exemplo


Connect as

1. MyDomain\joe faz login na aplicao com senha Windows


Connect as

App Connector
Connect as

Connected

3. A aplicao conecta-se ao MySQL com usurio win_joe.


Connect as

2. MyDomain\joe autenticado via LDAP/AD 4. Tokens so verificados, o usurio win_joe autenticado com Windows login, porm Authenticate com privilgios do MySQL.

Windows Auth

LDAP/AD

CREATE USER win_joe IDENTIFIED WITH authentication_windows AS joe';

38

MySQL Enterprise Scalability


MySQL Thread Pool Gesto de threads padro do MySQL performance excelente, mas pode limitar a escalabilidade com o incremento de conexes simultneas MySQL Thread Pool plug-in melhora a escalabilidade sustentando a performance mesmo com o aumento de usurios e o inevitvel incremento do nmero de conexes simultneas Thread Pool API

Performance maior e mais sustentvel, acompanhando o crescimento da base de usurios.

39

Gesto Padro do Thread Pool


Clientes Externos Threads de Execuo para Conexes

Gesto Padro doThread Pool

Conexes / Statements atribudas aos Threads durante sua existncia Clientes Internos

Conexes so atribudas a 1 thread durante a existncia da Conexo. A mesma thread usada para todos statements (single threaded) Sem priorizao das threads e execuo dos statements Muitas conexes concorrentes = consumo excessivo de memria e overhead no tratamento de contexto, o que limita a escalabilidade
40

Com o Thread Pool Habilitado


Clientes Externos Thread Pool
Grupo Thread 1 Threads 1 - 4096 Grupo Thread 2 Threads 4097 - 8193 Grupo Thread N Threads 8194 - N Grupo Thread 1 Grupo Thread 2 Grupo Thread N

Execuo das Conexes das Threads

Clientes Internos

O pool contm uma quantidade configurvel de Grupo de Threads(default = 16), cada um gerencia at 4096 threads reusveis

Cada conexo atribuda ao grupo de thread via round robin


As threads so priorizadas, os statements so enfileirados para limitar as execues simultneas e a carga no servidor, melhorando a escalabilidade quando o volume de conexes cresce.

41

MySQL Enterprise Edition


MySQL 5.5 Sysbench OLTP Read/Write
8.000 7.000 Transactions Per Second 6.000 5.000 4.000 3.000 2.000 1.000 0

MySQL Enterprise Edition


Com Thread Pool

MySQL Community Server


Sem Thread Pool

Simultaneous Database Connections

20x Melhor Escalabilidade com Thread Pool


42

MySQL 5.5.16 Oracle Linux 6.1, Unbreakable Kernel 2.6.32 2 sockets, 24 cores, 2 X 12-core Intel(R) Xeon(R) X5670 2.93GHz CPUs 72GB DDR3 RAM 2 X LSI SCSI Disk (MR9261-8i) (597GB)

MySQL Enterprise Edition


MySQL 5.5 Sysbench OLTP Read Only
12.000 Transactions Per Second 10.000 8.000 6.000 4.000

MySQL Enterprise Edition


Com Thread Pool

MySQL Community Server


2.000 0
Sem Thread Pool

Simultaneous Database Connections

3x Melhor Escalabilidade com Thread Pool


43

MySQL 5.5.16 Oracle Linux 6.1, Unbreakable Kernel 2.6.32 2 sockets, 24 cores, 2 X 12-core Intel(R) Xeon(R) X5670 2.93GHz CPUs 72GB DDR3 RAM 2 X LSI SCSI Disk (MR9261-8i) (597GB)

MySQL Enterprise High Availability


Windows Server Failover Clustering
Windows Server 2008 R2, MySQL 5.5**
Quorum (3o voto), dados (InnoDB + schema) & binrios (opcional) em armazenamento compartilhado (teste com iSCSI & FCAL) Failover:
Manuteno planejada
Falha do servio MySQL Falhas de conectividade ou no host
Virtual IP
Slave App App App

Perda de servio = alguns segundos + tempo de recovery do InnoDB:


Aplicao v temporariamente uma perda de conexo e reconecta no mesmo IP
Slave na Replicao recupera-se automaticamente

Cluster gerenciado pela interface snap-in MS Failover Cluster Management

Vote

Data

Bin

Nenhum novo software ou script necessrio


** Suporte tcnico para Windows Server Failover Clustering deve ser adquirido da Microsoft.
44

MySQL Enterprise Backup


Backup online para InnoDB Backups completos, incrementais, parciais (automatizados via script) Compresso 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 Backup Files MySQL Database Files

Certificado para Oracle Secure Backup, compatvel SBT


Backup e Recovery mais rpidos e online.

45

MySQL Enterprise Monitor


Viso centralizada e global do ambiente MySQL Monitoramento e alertas automatizados, baseados em regras (integra via SMTP, SNMP) Capturas de Query, anlise para tuning correlacionadas com grficos de monitoramento Monitoramento visual de aplicaes/servidores mais importantes Monitoramento da replicao em tempo real, descoberta automtica das topologias Integrado com My Oracle Support
46

Um assistente virtual dos DBAs

Implantao do MySQL Enterprise Monitor

MEM Deployment Diagram

Suporta Win 7, Vista, 2003, 2008 Server, XP Pro, x86 32 e 64 bit


47

MySQL Advisors
MySQL Cluster
Monitors and Advises on status/ performance of MySQL Cluster Data Nodes.

Administration
Monitors and Advises on Optimal Configuration

Performance
Monitors and Advises on Optimal Performance Variable Settings

Custom
Built by DBA to Enforce Organization specific best practices.

Replication
Monitors and Advises on Master/Slave Latency.

Upgrade
Monitors and Advises on Bugs/Upgrades that affect current installation

Security
Monitors and Advises on Unplanned Security Changes/Loopholes

Schema
Monitors and Advises on Unplanned Schema Change

Memory Usage
Monitors and advises on optimal memory/cache settings

160+ Regras, 60+ Grficos do MySQL e do SO


Economize tempo escrevento, implantando, versionando e mantendo scripts customizados. Minimize riscos agindo em potenciais problemas pr-ativamente.
48

MySQL Query Analyzer


Monitoramento centralizado de queries lentas Dispensa o uso de Slow Query Log, SHOW PROCESSLIST Alimentado via Connectors Viso agregada das estatsticas de queries: counts, time, rows Navegao visual atravs dos grficos e histrico Rastreabilidade da query at o cdigo-fonte da aplicao Economize tempo minerando execues atmicas dos logs. Minimize riscos de sobrecarga encontrando e eliminando queries lentas.
49

Query Execution Drill Downs


Exemplo execuo de query com substituio de varivel Rastreamento do ponto de origem da query no cdigo-fonte

EXPLAIN da execuo

50

Monitoramento Automatizado da Replicao


Auto-deteco das topologias, agrupando Master/Slaves Verificao em tempo real e consolidada do status e sincronizao Notificaes no caso de problemas de sincronizao Pr-ativo vs reativo

Economize tempo monitorando e coletando dados de sincronizao automaticamente sem a necessidade de usar linha de comando no MySQL.

51

MySQL Workbench SE
Database Design Scripts & Plug-ins
Modelagem Visual Interface similar ao VS 2010 Engenharia reversa e gerao do banco Economize tempo no desenv. e a partir do modelo gesto de aplicaes com MySQL Validao e documentao automtica do Schema

SQL Development
SQL Editor - Color Syntax Highlighting Objetos - Import/Export, Browse/Edit Connections - Wizard, SSH Tunnel

Database Administration
Status, Configurao, Start/Stop Usurios, Segurana, Sessions Import/Export Dump Files

52

MySQL Enterprise Edition


Capacidade de gerenciar BDs Oracle e MySQL com ferramentas/solues Oracle que voc j utiliza.

Oracle Product Certifications


MySQL Enterprise Backup MySQL Enterprise Security MySQL Enterprise High Availability

Oracle Premier Support


MySQL Enterprise Monitor/Query Analyzer MySQL Enterprise Scalability

MySQL Workbench

53

MySQL Enterprise Oracle Certifications


WebLogic Server Database Adapter for Oracle SOA Suite ** Oracle Business Process Management ** Oracle Virtual Directory Oracle Data Integrator Oracle Enterprise Performance Management ** Oracle Identity Analytics Open SSO STS, Open SSO Fedlet

Todos j incluem MySQL 5.x JDBC driver ** MySQL como opo de Metadata Repository (em progresso)

54

MySQL Enterprise Oracle Certifications


Oracle Linux Oracle VM Oracle VM Template for MySQL EE Oracle GoldenGate Oracle Secure Backup Oracle Database Firewall My Oracle Online Support
Capacidade de gerenciar BDs Oracle e MySQL com ferramentas/solues Oracle que voc j utiliza.

55

Oracle Premier Support para MySQL


Conte com Os Experts, obtenha benefcios singulares Direto da Fonte Maior time de especialistas MySQL Contato com MySQL Developers Somente com Hot Fixes a Oracle Realeases de manuteno Suporte MySQL em 29 lnguas Acesso direto aos engenheiros de suporte MySQL 24x7x365 "The eng that assisted me was simply outstanding. He immediately Nmero ilimitado de tickets recognized the cause of my problem and provided the resolution." -- (July 27, 2011) Knowledge Base mysql.com/support/quotes.html Suporte Consultivo MySQL
56

Questes difceis, solues reais


problemas de performance?
MySQL Enterprise Scalability MySQL Enterprise Monitor, Advisors, QUAN MySQL Consultative Support

servidores down?

queries lentas, custosas?

Oracle Premier 7x24 Support MySQL Enterprise Monitor, Advisors MySQL Enterprise High Availability

MySQL Enterprise Monitor, Query Analyzer MySQL Enterprise Monitor, Advisors, QUAN MySQL Consultative Support

onde, quando, como tunar? problemas de replicao? os sistemas escalaro?

poltica de segurana, muda?


MySQL External Authentication MySQL Enterprise Monitor, Security Advisor
MySQL Workbench SE MySQL Enterprise Monitor, Query Analyzer

produtividade de desenv./QA?

MySQL Enterprise Monitor, Replication Monitor Oracle Premier 7x24 Support MySQL Enterprise Scalability MySQL Enterprise Monitor, Advisors, QUAN MySQL Consultative Support

qual verso do MySQL rodar?


Oracle Premier 7x24 Support

posso recuperar?
MySQL Enterprise Backup

gerenciar bases Oracle e MySQL?


Oracle Product Certifications 57

Histrias de Clientes

mysql.com/customers
58

Mais informao
mysql.com
MySQL Produtos e Edies

TCO calculator teste vrios cenrios!


Artigos (White Papers) Histrias de clientes e casos de sucesso mysql.com/why-mysql/windows PARADA OBRIGATRIA! ;)

dev.mysql.com
Downloads Documentao Fruns Blog PlanetMySQL

edelivery.oracle.com
Trial 30 dias dos produtos comerciais MySQL
59

Obrigado!
Time MySQL Brasil

marcos.trujillo@oracle.com

ana.guiselini@oracle.com

airton.lastori@oracle.com

@MySQLBR

facebook.com/MySQLBR

meetup.com/MySQL-BR

60

Potrebbero piacerti anche