2º Encontro do GUORS /GUOB- 2012 27/Julho/2012
Boas Vindas! Daniel Guths CanoasTec Daniel Avila - DELL Gerson Tessler - SERPRO Marcio Lermen SICREDI Patricia Teixeira - Bertini S/A Raul Martins - TOVTS Thomas Glufke - Virtucore
Atividades SUCESU-RS 2012 Encontros de Grupos de Usuários Treinamentos Eventos de TIC e GRC Assessoria Jurídica Estrutura Informatizada para reuniões e cursos
Delphi Grupos de Usuários Gestão do Conhecimento Gerência de Projetos Gestão de Processos de Negócios Governança, Risco e Compliance Infraestrutura Métodos Ágeis Métricas e Estimativas de Software Oracle Testes de Software
Calendário 2012 10/05/2012 - Porto Alegre 27/07/2012 - Porto Alegre 13/09/2012 - Caxias do Sul 22/11/2012 - Porto Alegre
Agenda do Dia 18:10 18:20 20:00 Apresentação Institucional SUCESU/RS Coordenação do Grupo de Usuários Oracle MySQL + Oracle Database = Complementares Palestrante: Airton Lastori Encerramento / Coffee Break Coordenação do Grupo de Usuários Oracle
Canais de Comunicação faleconosco@guors.com.br contato@guob.com.br Websites GUORS: www.guors.com.br GUOB: www.guob.com.br SUCESU (0xx51) 3331-7244 sucesurs@rs.sucesu.org.br
2º Encontro do GUORS /GUOB- 2012 27/Julho/2012
<Insert Picture Here> MySQL + Oracle = Complementares visão do DBA Airton Lastori airton.lastori@oracle.com jul-2012
<Insert Picture Here>
O MySQL está em todo lugar! Web & Enterprise OEM & ISVs Cloud 11
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 12
MySQL Enterprise Edition. Desenvolvimento Visual BD MySQL, Monitoramento, Backup e serviços Oracle de suporte técnico Totalmente suportado nos sistemas Win 32, 64 Oracle Product Certifications Oracle Premier Support MySQL Enterprise Backup MySQL Enterprise Monitor/Query Analyzer MySQL Enterprise Security MySQL Enterprise Scalability MySQL Enterprise High Availability MySQL Workbench 13
Tipos de aplicação 70% 60% 50% 40% 30% 20% 10% 0% Enterprise Community 14
Por que o MySQL é a escolha destas e de milhares de outras empresas? 15
Evolução do MySQL Monty, David e Allan: UNIREG, MyISAM e msql. Mais performance, drivers, engines. GPL, LAMP Stack. Cresce o ecossistema. Versão 4. MySQL Cluster é adquirido da Alzato- Ericsson pela MySQL AB. 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 Interface SQL com Arquitetura Plugável. Surge a MySQL AB. Versão 3. Logo e website. InnoDB para transações ACID. Vale do Silício. Versão 5. InnoBase OY é adquirida pela Oracle. MySQL AB é adquirida pela Sun Microsystems. Ferramentas Enterprise. 16
INVESTIMENTOS INIGUALÁVEIS InnoDB MELHORIAS DE PERFORMANCE REPLICAÇÃO EMBARCADO CLOUD WINDOWS CENTENAS DE ESPECIALISTAS ESTRATÉGICO SUPORTE DE PRIMEIRA CLASSE MySQL CLUSTER WEB NoSQL LINUX MySQL ENTERPRISE EDITION MAIORES TIMES DE ENGENHARIA DO MySQL & ORGANIZAÇÃO DE SUPORTE 17
Mais Lançamentos de Produtos do que Nunca Liderando a Inovação 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 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 frequência MySQL Cluster 7.2: GA! Um MySQL Melhor *Development Milestone Release 2010 2011 18 2012 Q1
Foco MySQL Áreas
Importancia/Complexidade MySQL em Aplicações Enterprise Aplicações Corporativas de Missão Crítica Finanças Globais, ERP, SCM, CRM, HR Majority of New DB Applications Aplicações Críticas para o Negócio Innovation & Impacto no negócio, Interdepartamentais Change Ease of Use & Low Costs Aplicações Paramount Operacionais De suporte, Departamentais Corporativo Departamental 20
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?
MySQL Database Performance, Confiabilidade, Facilidade de Uso Suporte às mais conhecidas plataformas/linguagens de desenvolvimento Gerenciamento eficiente e multithread 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 23 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?
Escalabilidade: horizontal vs vertical 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) É possível combinar as duas abordagens 30
Replicação MySQL: como escalar 1/2 Aplicação Escritas & Leituras Leituras 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)
Replicação MySQL: como escalar 2/2 Aplicação Load Balancer Escritas & Leituras Leituras Leituras Master Slave Slave Replicação MySQL Escreva para 1 Master Leia de vários Slaves, adicione mais quando necessário Perfeito para aplicações de leitura intensiva
Caso de sucesso Wikipedia 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 mysql.com/customers
Outros usos da replicação Backup diminuir carga servidor atraso programado Análise Data Mart Data Warehouse Integração dataset completo dataset parcial Alta-disponibilidade
O MySQL vai estar online 24x7?
Custo & Complexidade Alta disponibilidade Clustering & Redundância Geográfica Clustering & Virtualização Replicação. ISPs & Corporativo On-Line Services ecommerce Telecoms Militar 9 9. 9 9 9 35 dias 4 days dias 8 horas 50 min 5 min %
Custo & Complexidade Alta disponibilidade Clustering & Redundância Geográfica Clustering & Virtualização Oracle Clusterware Replicação Replicação 3 rd Party Solutions. ISPs & Corporativo On-Line Services ecommerce Telecoms Militar 9 9. 9 9 9 35 dias 4 days dias 8 horas 50 min 5 min %
Replicação MySQL: como funciona 1/3 Aplicação 1. Operação de Escrita Master Slave 2. Mudanças escritas no binlog 3. I/O Thread copia mudanças do binlog para relaylog 4. SQL Thread aplica mudanças do relaylog para o MySQL Recurso nativo do MySQL Slave adiciona carga mínima ao Master
Replicação MySQL: como funciona 2/3 Aplicação Escritas & Leituras Master Slave Modelo Ativo-passivo Master: ativo Slave: passivo
Replicação MySQL: como funciona 3/3 Aplicação Escritas & Leituras Master Slave Fail-over Master: down Slave: ativo
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 Node Data Node SQL Node MySQL Cluster: como funciona 1/3 Aplicação Auto-Sharding Cluster Mgmt ndb F1 ndb F2 F3 F4 Data Nodes
Node 2 Node 4 Node 1 Node 3 MySQL Cluster: como funciona 2/3 MySQL Cluster Application Nodes NDB API REST Application Nodes LDAP Node Group 11 Node Group 22 Cluster Mgmt F1 F3 F3 Replicação Síncrona F2 F4 F4 Cluster Mgmt F1 Data Nodes F2
Node 2 Node 4 Node 1 Node 3 MySQL Cluster: como funciona 3/3 MySQL Cluster Application Nodes NDB API REST Application Nodes LDAP 1 Self-Healing Node Group 1 2 Geo-Replicação Node Group 2 Cluster Mgmt F1 F3 F3 Replicação Síncrona F2 F4 F4 Cluster Mgmt F1 F2
Caso de sucesso 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
O MySQL é um SGBD ultrapassado?
MySQL 5.6: um MySQL melhor Novo! 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 Teste agora mesmo: dev.mysql.com/downloads/mysql 48
Mais flexibilidade, menor complexidade NoSQL com MySQL 5.6 Application SQL MySQL Client NoSQL Memcached Protocol mysqld MySQL Server Memcached plugin InnoDB Storage Engine Memcached daemon plug-in to mysqld Memcached protocol mapped to the native InnoDB API Shared process space for ultra-low latency 49
Mais Flexibilidade MySQL Cluster 7.2 Os mesmos dados podem ser acessados simultaneamente via SQL & NoSQL 50
Caso de sucesso Benefícios-chave Propriedades ACID Solução comprovada por muitas empresas ao longo de anos Por que MySQL? Evernote 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 blog.evernote.com/tech/2012/02/23/whysql 51
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 Installer for Windows MySQL Database, Workbench, Connectors, Exemplos dev.mysql.com/downloads
55
56
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 Um assistente virtual dos DBAs 57
MySQL Enterprise Monitor 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! 58 http://mysql.com/trials/
MySQL Advisors Custom MySQL Cluster Monitors and Advises on status/ performance of MySQL Cluster Data Nodes. Built by DBA to Enforce Organization specific best practices. Administration Monitors and Advises on Optimal Configuration Performance Monitors and Advises on Optimal Performance Variable Settings Replication Monitors and Advises on Master/Slave Latency. Upgrade Monitors and Advises on Bugs/Upgrades that affect current installation Schema Monitors and Advises on Unplanned Schema Change Memory Usage Monitors and advises on optimal memory/cache settings Security Monitors and Advises on Unplanned Security Changes/Loopholes 150+ regras 50+ gráficos MySQL e SO 59
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. 60
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 61
Monitoramento Automatizado da Replicação 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 Economize tempo monitorando e coletando dados de sincronização automaticamente sem a necessidade de usar linha de comando no MySQL. 62
Integração com My Oracle Support Coleta diagnósticos MySQL e compartilha com MySQL Support Acompanhamento de Service Requests a partir do Dashboard 63
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) 64
Como o MySQL Cluster Manager Ajuda? Examplo: Upgrade do MySQL Cluster 6.3 to 7.2 Sem MySQL Cluster Manager 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. 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. Total: 46 comandos 2h30min. de interação 65
Devo migrar para MySQL? 66
MySQL Enterprise Edition Capacidade de gerenciar BDs Oracle e MySQL com ferramentas/soluções Oracle que você já utiliza. Oracle Product Certifications MySQL Enterprise Backup Oracle Premier Support MySQL Enterprise Monitor/Query Analyzer MySQL Enterprise Security MySQL Enterprise Scalability MySQL Enterprise High Availability MySQL Workbench 67
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/soluções Oracle que você já utiliza. 68
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 opção de Metadata Repository (em progresso) 69
Suppl. Employees Customers MySQL + Oracle Frontend Web Servers MySQL Cluster DBAs Sysadmins Web Servers Distributed Caching MySQL (InnoDB) Enterprise Manager Audit Vault Secure Backup Application Servers MySQL (MyISAM) Application Integration ETL/Data Integration ERP Intranet CRM Apps Oracle Exadata Oracle RAC Oracle MySQL Oracle RAC Backend 70
Caso de sucesso 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 71
Caso de sucesso 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, optimalperforming 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 72
Comparação da Arquitetura Mecanismo MySQL Microsoft SQL Server Memory Caches Redo/Undo Logs Data Storage InnoDB data cache InnoDB log cache MyISAM key cache Dictionary cache Query Cache User caches InnoDB Undo Space InnoDB Logs Binary Log Tablespaces Table/Index Files Format files Buffer cache SQL cache Misc caches (lock, connection, workspace, etc.) TempDB (2005+) Transaction Logs Filegroups Files Optimizer Cost-based Cost-based 73
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 74
MySQL Migration Tool Novo! 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 Download: mysql.com/downloads Documentação: dev.mysql.com/doc/workbench/en/wb-migration.html 75
76
Onde consigo mais informação sobre MySQL? 77
MySQL Treinamento e Certificação Treinamentos MySQL DBA MySQLDeveloper Certificações 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 Boot Camp Accelerated MySQL Performance Tuning Boot Camp Accelerated MySQL for Begginers MySQL and PHP Developing Dynamic Web Applicationg MySQL for Developers MySQL Advanced Stored Procedures education.oracle.com Opcional Necessário 78
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 79
Time MySQL Brasil marcos.trujillo@oracle.com ana.guiselini@oracle.com airton.lastori@oracle.com @MySQLBR facebook.com/mysqlbr meetup.com/mysql-br 80
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! 81
Obrigado! @MySQLBR facebook.com/mysqlbr meetup.com/mysql-br 82