View
931
Download
2
Category
Preview:
DESCRIPTION
Quando utilizar MySQL e quando utilizar Oracle Database? Nesta apresentação discutimos os tipos de aplicação e mercados onde o MySQL se destaca e vimos alguns casos de uso onde ambos SGBDs são combinados para complementar a camada de banco de dados.
Citation preview
11 de Agosto de 2012 no Hotel Blue Tree Morumbi, São Paulo - SP
MySQL + Oracle = Complementares Airton Lastori
<Insert Picture Here>
4
Oracle ou MySQL?
Foco MySQL – Áreas
6
MySQL em Aplicações Enterprise
Corporativo Departamental
Imp
ort
an
cia
/Co
mp
lex
idad
e
Majority of New
DB Applications
Innovation &
Change
Ease of Use &
Low Costs
Paramount
Aplicações Corporativas de Missão Crítica
Aplicações Operacionais
Aplicações Críticas para o Negócio
Finanças Globais, ERP, SCM, CRM, HR
De suporte, Departamentais
Impacto no negócio, Interdepartamentais
7
Resumo: onde o MySQL se encaixa
• Novas aplicações e aplicações customizadas Ad-hoc
• principalmente arquitetura Web (ex. LAMP stack)
• arquiteturas inovadoras, NoSQL (versão 5.6 e Cluster 7.2)
• Aplicações híbridas
• expansão de sistemas legados
• MySQL como front-end e Oracle DB como back-end
• Online e SaaS
• E-commerce/OLTP e pagamentos digitais
• Gerenciamento de Conteúdo (CMS)
• Redes Sociais, mensagens e colaboração
• Games Sociais e MMO
• Gerenciamento de Sessão e Autenticação do usuário
• Datamarts e Relatórios Departamentais
• SMS, e-marketing, Infra Telecom, Infra TI
• Embarcadas
8
Cloud
Web & Enterprise OEM & ISVs
Alguns clientes
10
Por que o MySQL é a escolha
destas e de milhares de outras
empresas?
11
Portfolio Open Source (GPL)
• MySQL Database (Community Server) 5.5.27 GA e 5.6.6 DMR
• MySQL Cluster (NDB Community) 7.2.7 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
• Documentação: livre para uso, não coberto pela GPL
• Forums
dev.mysql.com/downloads
12
Oracle Premier Support
Oracle Product Certifications
MySQL Enterprise High Availability
MySQL Enterprise Security
MySQL Enterprise Scalability
MySQL Enterprise Backup
MySQL Enterprise Monitor/Query Analyzer
MySQL Workbench
MySQL Enterprise Edition. Indicado para empresas ou pessoas físicas que pretendem
aumentar produtividade, diminuir riscos e explorar mais a
fundo as capacidades do MySQL.
13
Tipos de aplicação
0%
10%
20%
30%
40%
50%
60%
70%
Enterprise
Community
14
INVESTIMENTOS INIGUALÁVEIS
CENTENAS DE ESPECIALISTAS
MAIORES TIMES DE ENGENHARIA DO MySQL &
ORGANIZAÇÃO DE SUPORTE
LINUX
WINDOWS
NoSQL
InnoDB
REPLICAÇÃO
MySQL CLUSTER
MySQL ENTERPRISE EDITION
MELHORIAS DE PERFORMANCE
SUPORTE DE PRIMEIRA CLASSE WEB
CLOUD
EMBARCADO
ESTRATÉGICO
15
Evolução do MySQL
Monty, David e Allan:
UNIREG,MyISAM e mSQL.
Interface SQL com
Arquitetura Plugável.
Surge a MySQL AB.
Mais performance,
drivers, engines.
GPL, LAMP Stack.
Cresce o ecossistema.
Versão 3.
Logo e website.
InnoDB para
transações ACID.
Vale do Silício.
Versão 4.
MySQL Cluster é
adquirido da Alzato-Ericsson
pela MySQL AB.
Versão 5.
InnoBase OY é adquirida pela
Oracle.
MySQL AB é adquirida pela
Sun Microsystems.
Ferramentas Enterprise.
Sun Microsystems é adquirida pela
Oracle.
Versão 5.5 e Cluster 7.1.
’85…
…’94
’95…
…’96 ’97…
…’00
’01…
…’02
’03…
…’04
’05…
…’09
’10…
…’11
16
Mais Lançamentos de Produtos do que Nunca
2010 2011
• 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!
Um MySQL Melhor
2012 1o semestre
• MySQL Enterprise Monitor 2.2
• MySQL Cluster 7.1
• MySQL Cluster Manager 1.0
• MySQL Enterprise Backup 3.7
• Oracle VM Template for
MySQL Enterprise Edition
• MySQL Enterprise Oracle
Certifications
• MySQL Windows Installer
•MySQL Enterprise Commercial
Extensions
*Development Milestone Release
• MySQL Database 5.6 DMR*
• MySQL Cluster 7.2 DMR
e MySQL Labs!
“mais cedo e com mais frequência”
Liderando a
Inovação do MySQL
Todos em GA!
• MySQL Cluster 7.2: GA!
• Migration Tool
• MySQL Enterprise
Backup 3.8
Por que MySQL é muito utilizado?
1. MySQL: projetado em tempos de Web
2. baixo TCO
3. performance & escalabilidade
4. confiabilidade & disponibilidade
5. LAMP stack
6. facilidade de uso & administração
7. a melhor escolha para SaaS & cloud
8. MySQL Cluster para serviços Web de escala
9. MySQL Enterprise Edition da Oracle
10. MySQL & NoSQL
http://www.mysql.com/why-mysql/white-papers/mysql-wp-top10-webbased-apps.php
O MySQL é robusto?
19
MySQL Database Performance, Confiabilidade, Facilidade de Uso
Suporte às mais
conhecidas
plataformas/linguagens
de desenvolvimento
Gerenciamento
eficiente e multi-
thread de sessões
Parsing completo
DML+DDL,
otimizador,
baseado em custo,
caching de queries
e resultados
Várias opções de
Storage Engine
para necessidades
específicas das
aplicações
Opções flexíveis de
logging e
armazenamento
físico
InnoDB no MySQL
- Storage Engine mais utilizado
- aplicações Web 2.0
- aplicações de varejo
- aplicações de entretenimento & mídia
- ACID, transacional
- Crash recovery
- Integridade referencial
- Suporta altos níveis de usuários concorrentes
- No MySQL versão 5.5
- padrão
- otimizado para hardware multi-core, multi-thread e SOs
Confiabilidade: Segurança
- Autenticação e autorização com altra granularidade
- Capacidade de bloquear usuários por cliente
- Framework de privilégios por objetos do schema
- Suporte SSH e SSL
- Funções de criptografia
- Ferramentas de Backup & Recovery
- mysqldump
- MySQL Enterprise Backup
Confiabilidade: Robustez
- Oracle QA
- processo
- testes
- Modelo Open Source
- labs.mysql.com
- comunidade numerosa e atuante
- Oferta Enterprise
- Plug-ins de Escalabilidade e Segurança
- Monitoramento
- Hot Backup
- Workbench SE
- Suporte 24x7 técnico e CONSULTIVO
O MySQL é escalável?
26
Scale Out
• Adicionar mais servidores
para aumentar performance
• MySQL adota esta
abordagem em sistemas
altamente escaláveis em
hardware commodity (Intel /
AMD)
Scale Up
• Trocar por hardware mais
poderoso, adicionar
memória, CPU
• Outras soluções
normalmente usam
hardware proprietário
(SMP)
Escalabilidade: horizontal vs vertical
É possível combinar as duas abordagens
27
Escalabilidade horizontal
• Replicação MySQL • método mais simples e mais comum
• indicado para aplicações de LEITURA intensiva
• problemas com cache duplicado em aplicações com datasets grandes
• Particionamento Funcional • dividir a carga em múltiplos nós, com responsabilidades distintas
• os nós podem ter redundância via replicação para alta-disponibilidade
• normalmente não é transparente para a aplicação e também recorre ao
scale up para cada database funcional, o que impõe limites
• Data Sharding • método de maior sucesso para escalar aplicações MySQL de grande
porte hoje
• dados compartilhados em tabelas/caches globais, SOA
• difícil de adaptar aplicações legadas
28
Escalabilidade horizontal
• Replicação MySQL • método mais simples e mais comum
• indicado para aplicações de LEITURA intensiva
• problemas com cache duplicado em aplicações com datasets grandes
• Particionamento Funcional • dividir a carga em múltiplos nós, com responsabilidades distintas
• os nós podem ter redundância via replicação para alta-disponibilidade
• normalmente não é transparente para a aplicação e também recorre ao
scale up para cada database funcional, o que impõe limites
• Data Sharding • método de maior sucesso para escalar aplicações MySQL de grande
porte hoje
• dados compartilhados em tabelas/caches globais, SOA
• difícil de adaptar aplicações legadas
Aplicação
Replicação MySQL: como escalar 1/2
Master Slave
• Divisão de leituras e escritas (R/W Split)
• Modelo assíncrono (padrão)
• Modelo semi-síncrono (a partir da versão 5.5)
Escritas & Leituras Leituras
Replicação MySQL: como escalar 2/2
Leituras Leituras
• 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
Master Slave Slave
Escritas & Leituras
Benefício-chave
• O MySQL permite economias
significativas com custos de
hardware, adicionando novos
servidores commodity de
acordo com o necessário e de
maneira incremental
Por que MySQL? • Capacidade de escalar
conforme necessidade e de
maneira incremental
• Baixos custos e flexibilidade
Wikipedia
mysql.com/customers
Caso de sucesso
Topologias de Replicação
Single
Multiple
Chain Circular
Multi - Circular Multi - Master
• Backup
• diminuir carga servidor
• atraso programado
• Análise
• Data Mart
• Data Warehouse
• Integração e proximidade geográfica
• dataset completo
• dataset parcial
• Alta-disponibilidade
Outros usos da replicação
O MySQL vai estar
online 24x7?
Aplicação
Replicação para alta-disponibilidade 1/2
Master Slave
• Modelo Ativo-passivo
• Master: ativo
• Slave: passivo
Escritas & Leituras
Aplicação
Replicação para alta-disponibilidade 2/2
Master Slave
Escritas & Leituras
• Fail-over
• Master: down
• Slave: ativo
% 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
Clustering &
Virtualização
Clustering &
Redundância
Geográfica
ISPs &
Corporativo
On-Line
Services
eCommerce
Telecoms
Militar
.
Replicação
9 . 4 dias
3rd Party Solutions
Oracle Clusterware
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
F1
F3
Da
ta N
od
e
F2
F4
Da
ta N
od
e
Cluster
Mgmt
MySQL Cluster: como funciona 1/3
Aplicação
Auto-Sharding
SQ
L N
od
e
ndb ndb
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
MySQL Cluster: como funciona 2/3
Replicação
Síncrona
Node Group 1 Node Group 2
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
MySQL Cluster: como funciona 3/3
Replicação
Síncrona
Self-Healing Geo-Replicação
Node Group 1 Node Group 2
•2 milhões usuários, com 30.000
novos usuários por dia
•10.000 usuários concorrentes
•10.000 Transações Por Segundo
•99.999% uptime
“The MySQL support service
has been essential in helping us
for troubleshooting and giving
recommendations for the
production cluster.”
Carlos Morales (DBA), Playfulplay.com
blogs.oracle.com/MySQL/entry/mysql_cluster_powers_el_chavo
Caso de sucesso
O MySQL é um SGBD
ultrapassado?
45
• MySQL 5.6 criado a partir do MySQL 5.5 através
de melhorias:
• Replicação para maior disponibilidade, integridade de dados
• Otimizador para melhor Performance, Escalabilidade
• Performance Schema para melhor instrumentação
• InnoDB para melhor throughput transacional
• Opções “NotOnlySQL” para maior flexibilidade
MySQL 5.6: um MySQL melhor
Teste agora mesmo:
dev.mysql.com/downloads/mysql
Novo!
46
Benefícios-chave
• Propriedades ACID
• Solução comprovada por muitas
empresas ao longo de anos
• Por que MySQL? • Escalabilidade virtualmente infinita:
hoje com 20 milhões de usuários, 1
bilhão de Notes e 2 bilhões de
arquivos (fotos, documentos etc)
• Flexibilidade para crescer de
maneira incremental e com baixos
custos
Caso de sucesso
Evernote
blog.evernote.com/tech/2012/02/23/whysql
O MySQL é complicado?
Facilidade de uso e administração
- Regra dos 15min
- Ainda mais rápido com Windows Installer
- Disponível para diversas plataformas e linguagens
- Funcionalidades
- automatic space expansion
- auto-restart
- dynamic configuration
- Suporte Oracle Premier
- Ferramentas visuais
MySQL Database, Workbench,
Connectors, Exemplos…
MySQL Installer for Windows
dev.mysql.com/downloads
50
51
52
Um assistente virtual dos DBAs
MySQL Enterprise Monitor • Visão centralizada e global do
ambiente MySQL
• Monitoramento e alertas automatizados, baseados em regras (integra via SMTP, SNMP)
• Capturas de Query, análise para tuning correlacionadas com gráficos de monitoramento
• Monitoramento visual de aplicações/servidores mais importantes
• Monitoramento da replicação em tempo real, descoberta automática das topologias
• Integrado com My Oracle Support
53
• 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/
54
MySQL Enterprise Backup
• Anteriormente “InnoDB Hot Backup”
• Online, non-locking backup & recovery • Tabelas, Índices
• Níveis: servidor, database ou objeto
• Backups Lógico e Físico
• Backups Completos, Incrementais ou Parciais
• Point-in-time recovery
• Backups Comprimidos
• Também oferece backup e recuperação para MyISAM
• Multi-plataforma (Windows, Linux, Unix)
• Certificado para Oracle Secure Backup (SBT 2.0)
55
Como o MySQL Cluster Manager Ajuda?
Examplo: Upgrade do MySQL Cluster 6.3 to 7.2
• 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.2 mycluster;
Total: 1 Comando
Resultados Redução de overhead e simplificação de
administração.
Reduz risco de downtime por erro do
administrador.
56
Devo migrar para MySQL?
57
Relembrando: onde o MySQL se encaixa
• Novas aplicações e aplicações customizadas Ad-hoc
• principalmente arquitetura Web (ex. LAMP stack)
• arquiteturas inovadoras, NoSQL (versão 5.6 e Cluster 7.2)
• Aplicações híbridas
• expansão de sistemas legados
• MySQL como front-end e Oracle DB como back-end
• Online e SaaS
• E-commerce/OLTP e pagamentos digitais
• Gerenciamento de Conteúdo (CMS)
• Redes Sociais, mensagens e colaboração
• Games Sociais e MMO
• Gerenciamento de Sessão e Autenticação do usuário
• Datamarts e Relatórios Departamentais
• SMS, e-marketing, Infra Telecom, Infra TI
• Embarcadas
58
Oracle Premier Support
Oracle Product Certifications
MySQL Enterprise High Availability
MySQL Enterprise Security
MySQL Enterprise Scalability
MySQL Enterprise Backup
MySQL Enterprise Monitor/Query Analyzer
MySQL Workbench
MySQL Enterprise Edition
Capacidade de gerenciar BDs Oracle e MySQL com ferramentas/soluções Oracle que você já utiliza.
59
• Oracle Linux
• Oracle VM
• Oracle VM Template for
MySQL EE
• Oracle GoldenGate
• Oracle Secure Backup
• Oracle Database Firewall
• My Oracle Online Support
MySQL Enterprise Oracle Certifications
Capacidade de gerenciar BDs Oracle e MySQL com ferramentas/soluções Oracle que você já utiliza.
60
• 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 opção de Metadata Repository (em
progresso)
MySQL Enterprise Oracle Certifications
61
Enterprise Manager
Audit Vault
Secure Backup
DBAs
Sysadmins
Custo
mers
Web Servers
Application Servers
Distributed Caching
MySQL Cluster
MySQL (InnoDB)
MySQL (MyISAM)
Web Servers
Frontend
ETL/Data Integration Application Integration
ERP CRM
Intranet Apps
Oracle Exadata
Oracle RAC Oracle RAC
Oracle MySQL
Em
plo
yees
Suppl.
Ba
cke
nd
MySQL + Oracle
62
Benefícios-chave
• Sistema escalável, de baixo custo e
personalizado para atender
necessidades de gerenciamento de
sessão.
• Gerencia 4 bilhões de request por dia
numa razão 50/50 entre leituras e
escritas.
Por que MySQL+Oracle?
• Custo
• Performance: 13.000 TPS numa Sun
Fire x4100
• Escalabilidade: desenhado para
suportar crescimento futuro de 10x
• Transações realizadas pelo Oracle
Database
mysql.com/customers
Caso de sucesso
63
Benefícios-chave
• Ao migrar do Microsoft SQL Server
para MySQL+Oracle, foi possível
escalar 4 vezes mais e crescer a
base de usuários de 10 milhões para
100 milhões
Por que MySQL+Oracle?
• "At Ticketmaster, we use MySQL and Oracle to complement each other. The end result is a highly-distributed, optimal-performing database environment that powers one of the largest e-commerce and ticketing sites in the world.”
Ed Presz – Sr. Director Database Engineering
Ticketmaster/Live Nation Entertainment, Inc.
mysql.com/customers
Caso de sucesso
64
Mecanismo MySQL Microsoft SQL Server
Memory Caches • InnoDB data cache
• InnoDB log cache
• MyISAM key cache
• Dictionary cache
• Query Cache
• User caches
• Buffer cache
• SQL cache
• Misc caches (lock,
connection, workspace,
etc.)
Redo/Undo Logs • InnoDB Undo Space
• InnoDB Logs
• Binary Log
• TempDB (2005+)
• Transaction Logs
Data Storage • Tablespaces
• Table/Index Files
• Format files
• Filegroups
• Files
Optimizer • Cost-based
• Cost-based
Comparação da Arquitetura
65
Comparação das funcionalidades “core”
Funcionalidade MySQL Microsoft
Índices padrões Heap Tables e B-Tree
Tabelas/Índices Particionados
Suporte Transações ACID
Row-Level Locking, MVCC (leituras não bloqueiam escritas)
Integridade Referencial Garantidas pelo Servidor
Indexação Avançada (Clustered, Full-Text)
Suporte robusto a vários tipos de dados (BLOB’s, varchar,
datetime, numerics, etc.)
Replicação
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
66
• Wizard para migração de tabelas e dados:
• MS-SQL Server 2000, 2005, 2008 e 2012.
• SGBDs em geral via ODBC
• Mapeamento personalizado (opcional)
• Integrado ao Workbench open source e gratuito
MySQL Migration Tool
Download:
mysql.com/downloads
Documentação:
dev.mysql.com/doc/workbench/en/wb-migration.html
Novo!
67
68
Onde consigo mais
informação sobre MySQL?
69
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
education.oracle.com
Treinamentos
Certificações
Opcional
Necessário
70
Mais informação
mysql.com • MySQL Produtos e Edições
• TCO calculator – teste vários cenários!
• Artigos (White Papers)
• Histórias de clientes e casos de sucesso
dev.mysql.com • Downloads
• Documentação
• Fóruns
• Blog PlanetMySQL
edelivery.oracle.com • Trial 30 dias dos produtos comerciais MySQL
71
Time MySQL Brasil
marcos.trujillo@oracle.com airton.lastori@oracle.com ana.guiselini@oracle.com
@MySQLBR meetup.com/MySQL-BR facebook.com/MySQLBR
72
sumário
O portfólio MySQL evolui de maneira acelerada, com diversas
melhorias tanto em produtos Community quanto Enterprise.
Estas melhorias reforçam o compromisso Oracle com MySQL e
com a estratégia Open Source como modelo de negócio.
Combinar MySQL com Oracle Database está cada vez mais fácil
para você aproveitar o que há de melhor nos dois SGBDs.
O MySQL é o Banco de Dados Open Source mais popular do
mundo e a Oracle está trabalhando para um MySQL ainda
melhor. Explore todas suas vantagens!
73
@MySQLBR meetup.com/MySQL-BR facebook.com/MySQLBR
Obrigado!
Recommended