Upload
airton-lastori
View
2.347
Download
2
Embed Size (px)
DESCRIPTION
MySQL e Oracle Database 11g complementam-se mutuamente. São produtos com histórias distintas e concebidos para adequar-se a diferentes casos de uso. Na verdade, muitos clientes da Oracle Database 11g já usam o MySQL. Nesta apresentação vamos explorar algumas das principais diferenças entre os dois SGBDs do ponto de vista de desenvolvedores, visitar alguns casos de uso e entender como utilizar o MySQL de maneira eficiente para complementar a camada de banco de dados.
Citation preview
<Insert Picture Here>
MySQL + Oracle = Complementares
visão do desenvolvedor
Airton Lastori [email protected]
jul-2012
<Insert Picture Here>
3
Cloud
Web & Enterprise OEM & ISVs
O MySQL está em todo lugar!
4
Portfolio Open Source (GPL)
• MySQL Database (Community Server) 5.5.25 GA e 5.6.5 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
5
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. • Desenvolvimento Visual BD MySQL, Monitoramento,
Backup e serviços Oracle de suporte técnico
• Totalmente suportado nos sistemas Win 32, 64
6
Tipos de aplicação
0%
10%
20%
30%
40%
50%
60%
70%
Enterprise
Community
7
Por que o MySQL é a escolha
destas e de milhares de outras
empresas?
8
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
9
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
10
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 Q1
• 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!
Foco MySQL – Áreas
Suporte Oracle ao Open Source/Standards
MySQL & InnoDB, Linux, PHP, Apache, GlassFish, Eclipse, Berkeley DB, NetBeans, VirtualBox, Xen…
http://www.oracle.com/us/technologies/open-source
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?
15
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 em:
- aplicações Web 2.0
- aplicações de varejo
- aplicações de entretenimento & mídia
- ACID
- Crash recovery
- Integridade referencial
- Suporta altos níveis de usuários concorrentes
- Na versão MySQL 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
• Direto da Fonte
• Maior time de especialistas MySQL
• Contato com MySQL Developers
• Hot Fixes
• Realeases de manutenção
• Suporte MySQL em 29 línguas
• Acesso direto aos engenheiros de suporte MySQL
• 24x7x365
• Número ilimitado de tickets
• Knowledge Base
• Suporte Consultivo MySQL
Oracle Premier Support para MySQL Conte com Os Experts, obtenha benefícios singulares
"The eng that assisted me was
simply outstanding. He immediately
recognized the cause of my problem
and provided the resolution."
-- (July 27, 2011)
mysql.com/support/quotes.html
Somente com
a Oracle
O MySQL é escalável?
1. Operação de Escrita
Aplicação
2. Mudanças
escritas no binlog
Replicação MySQL: como funciona 1/3
4. SQL Thread
aplica mudanças
do relaylog para o
MySQL
3. I/O Thread copia
mudanças do binlog
para relaylog
Master Slave
• Recurso nativo do MySQL
• Slave adiciona carga mínima ao Master
Aplicação
Replicação MySQL: como funciona 2/3
Master Slave
• Modelo Ativo-passivo
• Master: ativo
• Slave: passivo
Escritas & Leituras
Aplicação
Replicação MySQL: como funciona 3/3
Master Slave
Escritas & Leituras
• Fail-over
• Master: down
• Slave: ativo
• Backup
• diminuir carga servidor
• atraso programado
• Análise
• Data Mart
• Data Warehouse
• Integração
• dataset completo
• dataset parcial
• Escalabilidade
• leitura intensiva (mais comum)
• escrita intensiva com particionamento ou outras topologias
Outros usos da replicação
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
O MySQL vai estar
online 24x7?
% 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
Node Group 1
F1
F3
Da
ta N
od
e
Node Group 2
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
“MySQL Cluster 7.1 gave us
the perfect combination of
extreme levels of transaction
throughput, low latency &
carrier-grade availability,
while reducing TCO”
Phani Naik, Pyro Group
mysql.com/customers
Caso de sucesso
O MySQL é um SGBD
ultrapassado?
39
• MySQL 5.6 criado a partir do MySQL 5.5 através
de melhorias:
• Opções “NotOnlySQL” para maior flexibilidade
• Replicação para maior disponibilidade, integridade de dados
• Otimizador para melhor Performance, Escalabilidade
• Performance Schema para melhor instrumentação
• InnoDB para melhor throughput transacional
MySQL 5.6: um MySQL melhor
Teste agora mesmo:
dev.mysql.com/downloads/mysql
Novo!
40
Mais flexibilidade, menor complexidade NoSQL com MySQL 5.6
• Memcached daemon plug-in to mysqld
• Memcached protocol mapped to the native InnoDB API
• Shared process space for ultra-low latency
InnoDB Storage Engine
MySQL Server Memcached
plugin
Application
SQL
MySQL Client
NoSQL
Memcached Protocol
mysqld
41
MySQL Cluster 7.2
Os mesmos dados
podem ser acessados
simultaneamente via
SQL & NoSQL
Mais Flexibilidade
O MySQL é complicado?
Facilidade de uso e administração
- Regra dos 15min
- Ainda mais rápido com Windows Installer
- Funcionalidades
- automatic space expansion
- auto-restart,
- dynamic configuration
- Ferramentas visuais
- Arquitetura flexível
- convite à experimentação
- permite inovação acelerada através de customizações
- Disponível para diversas plataformas e linguagens
MySQL Database, Workbench,
Connectors, Exemplos…
MySQL Installer for Windows
dev.mysql.com/downloads
47
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 várias linguagens
mysql.com/products/connector
48
MySQL Workbench Database Design
• Modelagem Visual
• Engenharia reversa e geração do banco
a partir do modelo
• Validação e documentação automática
do Schema
SQL Development
• SQL Editor - Color Syntax Highlighting
• Objetos - Import/Export, Browse/Edit
• Connections - Wizard, SSH Tunnel
Database Administration
• Status, Configuração, Start/Stop
• Usuários, Segurança, Sessions
• Import/Export Dump Files
Scripts & Plug-ins
Interface similar ao VS 2010
Economize tempo no desenv. e gestão de aplicações com MySQL
49
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
50
MySQL Query Analyzer
• Monitoramento centralizado de
queries lentas
• Dispensa o uso de Slow Query
Log, SHOW PROCESSLIST
• Alimentado via Connectors
• Visão agregada das estatísticas
de queries: counts, time, rows
• Navegação visual através dos
gráficos e histórico
• Rastreabilidade da query até o
código-fonte da aplicação
Economize tempo minerando execuções atômicas dos logs. Minimize riscos de sobrecarga encontrando e eliminando queries lentas.
51
Query Execution Drill Downs Exemplo execução de query com substituição de variável
Rastreamento do ponto de origem da query no código-fonte
EXPLAIN da execução
52
• Auto-detecção das topologias, agrupando Master/Slaves
• Verificação em tempo real e consolidada do status e sincronização
• Notificações no caso de problemas de sincronização
• Pró-ativo vs reativo
Monitoramento Automatizado da Replicação
Economize tempo monitorando e coletando dados de sincronização automaticamente sem a necessidade de usar linha de comando no MySQL.
53
Devo migrar para MySQL?
54
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.
55
• 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
56
• 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.
57
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 do MySQL
58
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
59
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
60
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
61
Onde consigo mais
informação sobre MySQL?
62
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
64
Time MySQL Brasil
[email protected] [email protected] [email protected]
@MySQLBR meetup.com/MySQL-BR facebook.com/MySQLBR
65
Obrigado!