64
<Insert Picture Here> MySQL + Oracle = Complementares visão do desenvolvedor Airton Lastori [email protected] jul-2012

MySQL e Oracle para Desenvolvedores

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

Page 1: MySQL e Oracle para Desenvolvedores

<Insert Picture Here>

MySQL + Oracle = Complementares

visão do desenvolvedor

Airton Lastori [email protected]

jul-2012

Page 2: MySQL e Oracle para Desenvolvedores

<Insert Picture Here>

Page 4: MySQL e Oracle para Desenvolvedores

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

Page 5: MySQL e Oracle para Desenvolvedores

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

Page 6: MySQL e Oracle para Desenvolvedores

6

Tipos de aplicação

0%

10%

20%

30%

40%

50%

60%

70%

Enterprise

Community

Page 7: MySQL e Oracle para Desenvolvedores

7

Por que o MySQL é a escolha

destas e de milhares de outras

empresas?

Page 8: MySQL e Oracle para Desenvolvedores

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

Page 9: MySQL e Oracle para Desenvolvedores

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

Page 10: MySQL e Oracle para Desenvolvedores

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!

Page 11: MySQL e Oracle para Desenvolvedores

Foco MySQL – Áreas

Page 12: MySQL e Oracle para Desenvolvedores

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

Page 13: MySQL e Oracle para Desenvolvedores

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

Page 14: MySQL e Oracle para Desenvolvedores

O MySQL é robusto?

Page 15: MySQL e Oracle para Desenvolvedores

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

Page 16: MySQL e Oracle para Desenvolvedores

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

Page 17: MySQL e Oracle para Desenvolvedores

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

Page 18: MySQL e Oracle para Desenvolvedores

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

Page 19: MySQL e Oracle para Desenvolvedores

• 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

Page 20: MySQL e Oracle para Desenvolvedores

O MySQL é escalável?

Page 21: MySQL e Oracle para Desenvolvedores
Page 22: MySQL e Oracle para Desenvolvedores
Page 23: MySQL e Oracle para Desenvolvedores

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

Page 24: MySQL e Oracle para Desenvolvedores

Aplicação

Replicação MySQL: como funciona 2/3

Master Slave

• Modelo Ativo-passivo

• Master: ativo

• Slave: passivo

Escritas & Leituras

Page 25: MySQL e Oracle para Desenvolvedores

Aplicação

Replicação MySQL: como funciona 3/3

Master Slave

Escritas & Leituras

• Fail-over

• Master: down

• Slave: ativo

Page 26: MySQL e Oracle para Desenvolvedores

• 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

Page 27: MySQL e Oracle para Desenvolvedores

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

Page 28: MySQL e Oracle para Desenvolvedores

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

Page 29: MySQL e Oracle para Desenvolvedores

O MySQL vai estar

online 24x7?

Page 30: MySQL e Oracle para Desenvolvedores

% 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

Page 31: MySQL e Oracle para Desenvolvedores

% 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

Page 32: MySQL e Oracle para Desenvolvedores

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

Page 33: MySQL e Oracle para Desenvolvedores

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

Page 34: MySQL e Oracle para Desenvolvedores

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

Page 35: MySQL e Oracle para Desenvolvedores

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

Page 36: MySQL e Oracle para Desenvolvedores

“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

Page 37: MySQL e Oracle para Desenvolvedores

O MySQL é um SGBD

ultrapassado?

Page 38: MySQL e Oracle para Desenvolvedores

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!

Page 39: MySQL e Oracle para Desenvolvedores

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

Page 40: MySQL e Oracle para Desenvolvedores

41

MySQL Cluster 7.2

Os mesmos dados

podem ser acessados

simultaneamente via

SQL & NoSQL

Mais Flexibilidade

Page 41: MySQL e Oracle para Desenvolvedores

O MySQL é complicado?

Page 42: MySQL e Oracle para Desenvolvedores

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

Page 43: MySQL e Oracle para Desenvolvedores

MySQL Database, Workbench,

Connectors, Exemplos…

MySQL Installer for Windows

dev.mysql.com/downloads

Page 44: MySQL e Oracle para Desenvolvedores
Page 45: MySQL e Oracle para Desenvolvedores
Page 46: MySQL e Oracle para Desenvolvedores

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

Page 47: MySQL e Oracle para Desenvolvedores

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

Page 48: MySQL e Oracle para Desenvolvedores

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

Page 49: MySQL e Oracle para Desenvolvedores

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.

Page 50: MySQL e Oracle para Desenvolvedores

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

Page 51: MySQL e Oracle para Desenvolvedores

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.

Page 52: MySQL e Oracle para Desenvolvedores

53

Devo migrar para MySQL?

Page 53: MySQL e Oracle para Desenvolvedores

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.

Page 54: MySQL e Oracle para Desenvolvedores

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

Page 55: MySQL e Oracle para Desenvolvedores

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.

Page 56: MySQL e Oracle para Desenvolvedores

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

Page 57: MySQL e Oracle para Desenvolvedores

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

Page 58: MySQL e Oracle para Desenvolvedores

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

Page 59: MySQL e Oracle para Desenvolvedores

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

Page 60: MySQL e Oracle para Desenvolvedores

61

Onde consigo mais

informação sobre MySQL?

Page 61: MySQL e Oracle para Desenvolvedores

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

Page 62: MySQL e Oracle para Desenvolvedores

63

Histórias de Clientes

mysql.com/customers

Page 63: MySQL e Oracle para Desenvolvedores

64

Time MySQL Brasil

[email protected] [email protected] [email protected]

@MySQLBR meetup.com/MySQL-BR facebook.com/MySQLBR

Page 64: MySQL e Oracle para Desenvolvedores

65

Obrigado!