Alta-disponibilidade com MySQL

870
-1

Published on

Apresentando as opções de Alta-disponibilidade para MySQL certificadas pela Oracle, considerações sobre práticas operacionais e MySQL Cluster: como funciona e como começar.

Published in: Technology, News & Politics
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
870
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
28
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Alta-disponibilidade com MySQL

  1. 1. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.1 Airton Lastori airton.lastori@oracle.com Mai-2014 Alta-disponibilidade com MySQL
  2. 2. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.2 @MySQLBR meetup.com/MySQL-BR facebook.com/MySQLBR MySQLBR
  3. 3. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.3 Agenda  Opções de Alta-disponibilidade  Práticas Operacionais  O que é o MySQL Cluster? Como funciona?  Como começar com MySQL Cluster  Perguntas?
  4. 4. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4 Alta-Disponibilidade
  5. 5. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.6 Alta-Disponibilidade: soluções homologadas
  6. 6. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.8 Replicação MySQL
  7. 7. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.9 Aplicação Master Slave • Modelo assíncrono (padrão) • Modelo semi-síncrono (a partir da versão 5.5) Escritas & Leituras Replicação MySQL
  8. 8. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.10 Aplicação Master Slave • Master down • Slave promovido para Master Escritas & Leituras MySQL failover
  9. 9. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.11  Permite self-healing  Failover & recovery automatizado - mysqlfailover (Utilitário)  Switchover & administração - mysqlrpladmin (Utilitário)  Alta disponibilidade com MySQL core - Elimina necessidade de soluções de terceiros - Fácil de estender HA UtilitiesMonitoramento Master Falhou Slaves Slave Promovido para Master Disponibilidade com Replicação no MySQL 5.6 Replication HA Utilities (Python)
  10. 10. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.12 Replicação MySQL: escalando LEITURAS • Divisão de leituras e escritas (R/W Split) • É possível adicionar mais slaves, dividir a carga Leituras Aplicação Master Slave Escritas & Leituras …
  11. 11. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.13 Clustering e Virtualização
  12. 12. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.14 • Soluções homologadas e suportadas pela Oracle MySQL – Oracle VM Template – Windows Failover Clustering – Oracle Solaris Cluster Clusterização baseada em Shared-Storage VIP Clients
  13. 13. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.15 Oracle VM Servers Oracle VM Server Pool ocfs2 Oracle VM Manager SAN / iSCSI Secure Live Migration (SSL) Oracle VM Automatic Fault Detection & Recovery Oracle VM mysql.com/why-mysql/white-papers/mysql_wp_oracle-vm-template-for-mee.php • Oracle Linux • Oracle VM • Oracle VM Template for MySQL EE • Oracle Cluster File System 2 (OCFS2) • MySQL Database 5.5 Enterprise Edition Pré-instalado & Configurado Integrado & Testado Suporte de um único fornecedor Oracle VM Template for MySQL Enterprise
  14. 14. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.16 oracle.com/technetwork/server-storage/solaris-cluster/overview/index.html • Heartbeat e monitoramento baseado no Kernel • SPARC e x86. Solaris Virtualization-aware • Agente MySQL incluíd o no Oracle Solaris Cluster Oracle Solaris Clustering
  15. 15. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.17  Opção nativa do Windows certificada para MySQL Enterprise  Para Falhas ou Manutenção Planejada  Cluster gerenciado pela interface snap-in MS Failover Cluster Management*, não requer scripts customizados  Perda de serviço = alguns segundos + tempo de recovery do InnoDB: • Aplicação vê temporariamente uma perda de conexão e reconecta no mesmo IP • Slave na Replicação recupera-se automaticamente  Quorum (3o voto), dados (InnoDB + schema) & binários (opcional) em armazenamento compartilhado • teste com iSCSI & FCAL *suporte técnico do componente MS Failover Cluster Management deve ser contratado da Microsoft App Virtual IP Data Bin Slave App App Vote Windows Server Failover Clustering mysql.com/why-mysql/white-papers/mysql_wp_windows_failover_clustering.php
  16. 16. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.18 mysql.com/why-mysql/white-papers/mysql_wp_drbd.php • Certificado e completamente suportado pela Oracle • DRBD integrado ao Oracle Linux Unbreakable Enterprise Kernel R2 • Pacemaker e Corosync para clustering & failover • Updates na pilha via ULN channel • Baseado em storage distribuído, não requer SAN • Replicação síncrona elimina o risco de perda de dados • Maduro & já utilizado em muitos casos Oracle Linux + DRBD Stack
  17. 17. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.19 MySQL Cluster
  18. 18. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.20 Clients Application Layer Management MySQL Cluster Management Data Layer ndbd ndbd ndbd ndbd
  19. 19. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.21 Soluções certificadas MySQL HA: resumo mysql.com/why-mysql/white-papers/mysql_wp_ha_strategy_guide.php MySQL 5.6 Replication Windows Cluster Solaris Cluster Oracle VM Template DRBD MySQL Cluster Nível de disponibilidade 99.9% 99.95% 99.99% 99.99% 99.99% 99.999% Auto-Failover ✔ ✔ ✔ ✔ ✔ ✔ Sem perda de dados durante failover ✔ Semi-Sync ✔ ✔ ✔ ✔ ✔ Plataformas suportadas All Windows Solaris Linux Linux All Modo de clusterização Master + Slaves Active / Passive Active / Passive Active / Passive Active / Passive Multi- Master Dispensa Shared Storage ✔ ✖ ✖ ✖ ✔ ✔ Ponto único de suporte ✔ ✖ ✔ ✔ ✔ ✔
  20. 20. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.22 Mais sobre Opções de Alta-Disponibilidade Whitepaper: MySQL Guide to High Availability Solutions August 2013 mysql.com/why-mysql/white-papers/mysql- guide-to-high-availability-solutions
  21. 21. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.23 Em breve…
  22. 22. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.24 MySQL Fabric 1.4 RC (MySQL Utilities 1.4.2)  Alta disponibilidade: – Monitoramento do Server com failover automático e transparente para aplicação  Conectores devem ser “Fabric-aware”: – Java, PHP, Python  Sem Proxy, sem latencia extra e SPoF  Escalabilidade de escrita com sharding: – Aplicação define a shard key (Range ou Hash) – Ferramentas para re-sharding – Tabelas globais & global updates Alta-disponibilidade + escalabilidade de escrita com sharding MySQL Fabric Connector Application Read-slaves SQL Master group Read-slaves Master group
  23. 23. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.25 Soluções de HA homologadas pela Oracle MySQL Replication MySQL Fabric Oracle VM Template Solaris Cluster Windows Cluster DRBD MySQL Cluster Clustering Mode Master + Slaves Master + Slaves Active/Pass ive Active/Pass ive Active/Passi ve Active/Pa ssive Multi- Master App Auto-Failover ✖ ✔ ✔ ✔ ✔ ✔ ✔ Data Layer Auto-Failover ✖ ✔ ✔ ✔ ✔ ✔ ✔ Zero Data Loss MySQL 5.7 ✔ ✔ ✔ ✔ ✔ ✔ Failover Time N/A Secs Secs + Secs + Secs + Secs + < 1 Sec Scale-out Reads ✔ ✖ ✖ ✖ ✖ ✔ Cross-shard operations N/A ✖ N/A N/A N/A N/A ✔ Transparent routing ✖ For HA ✔ ✔ ✔ ✔ ✔ Shared Nothing ✔ ✔ ✖ ✖ ✖ ✔ ✔ Storage Engine InnoDB InnoDB InnoDB InnoDB InnoDB InnoDB NDB Single Vendor Support ✔ ✔ ✔ ✔ ✖ ✔ ✔ Platform Support All All Linux Solaris Windows Linux All
  24. 24. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.26  http://www.oracle.com/technetwork/database/database- technologies/clusterware/downloads/index.html MySQL Grid Control Agent for Clusterware Oracle Clusterware
  25. 25. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.27 Práticas Operacionais
  26. 26. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.28 Pessoas 40% Processos 40% Produtos 20% Por que há indisponibilidade não planejada? gartner.com/DisplayDocument?id=334197
  27. 27. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.29 Pessoas 40% Processos 40% Produtos 20% Reduzindo indisponibilidade soluções certificadas
  28. 28. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.30 Pessoas 40% Processos 40% Produtos 20% Reduzindo indisponibilidade +automação +conhecimento +automação +ferramentas
  29. 29. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.31  Acesso direto 24 x 7 x 365  Número ilimitado de incidentes  Base de conhecimento  Suporte Consultivo  Tradução para o Português  Hot Fixes para Bugs  Releases de manutenção do MySQL  Maior time de especialistas MySQL no mundo  Suportados pelos próprios Desenvolvedores do MySQL "The rep that assisted me was simply outstanding. He immediately recognized the cause of my problem and provided the resolution.” mysql.com/support/quotes Oracle Premier Support para MySQL Engenheiros MySQL como parte do seu time
  30. 30. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.32 MySQL Enterprise Monitor 3.0  Monitoramento em tempo real da performance e disponibilidade  Encontre e corrija problemas visualmente  Monitore discos e faça capacity planning  Comece a monitorar em 10 minutos  Arquitetura que não exige agentes  Agente remoto monitora SO
  31. 31. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.33
  32. 32. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.34
  33. 33. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.35
  34. 34. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.36
  35. 35. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.37 Explain Query
  36. 36. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.38 QRTi Query Response Time Index
  37. 37. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.39 Eventos
  38. 38. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.40
  39. 39. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.41
  40. 40. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.42
  41. 41. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.43 Advisors
  42. 42. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.44
  43. 43. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.45
  44. 44. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.46
  45. 45. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.47 Capacity Planning
  46. 46. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.48
  47. 47. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.49 MySQL Enterprise Backup  Backup online para InnoDB  Backups completos, incrementais, parciais (automatizados via script)  Compressão  Opções de Recovery: Point in Time, Completo, Parcial  Metadados de status, progresso e histórico  Tamanho ilimitado do BD  Multi-Plataforma  Windows, Linux, Unix  Certificado para Oracle Secure Backup, compatível SBT MEB Backup Files MySQL Database Files mysqlbackup Backup e Recovery mais rápidos e online.
  48. 48. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.50 MySQL Enterprise Backup Menor tempo em backups e restores, menos downtime
  49. 49. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.51
  50. 50. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.52
  51. 51. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.53 MySQL Enterprise Edition Subscrição com renovação anual: ferramentas + serviços Plug-ins Suporte Backup Monitor & Workbench Escalabilidade Segurança Auditoria
  52. 52. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.54 O que é o MySQL Cluster?
  53. 53. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.55 MySQL Cluster • Escalabilidade linear de Escritas e Leituras • Elasticidade, crescimento incremental, distrib. simétricaEscalabilidade • 99,999% de disponibilidade, 5min / ano • Self-healing, failover menor que 1s, geo-replicaçãoAlta Disponibilidade • Performance em tempo real, in-memory e em disco • Latência baixa e preditiva, acessos paralelosAlta Performance • Modelo relacional ACID, SQL e Foreign Keys • APIs NoSQL (C++, Java, Memcached, Node.js)Flexibilidade • Open Source, suporte e ferramentas comerciais opcionais • Hardware commodityBaixo TCO
  54. 54. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.56 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. Ferramentas Enterprise. Sun Microsystems é adquirida pela Oracle. Versões 5.5, 5.6 e Cluster 7.1, 7.2 e 7.3. ’85… …’94 ’95… …’96 ’97… …’00 ’01… …’02 ’03… …’04 ’05… …’09 ’10… …’13 Histórico do MySQL
  55. 55. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.58 Enterprise Management Services and Utilities Backup & Recovery Monitor Workbench Utilities Connection Pool, SQL Interface, Parser, Optimizer, Caches Clients & Connectors Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl mysqld Clients and Apps Arquitetura MySQL Server Storage Engines InnoDB, MyISAM, Memory, Archive, Cluster (NDB API), etc… Filesystems, Files & Logs Data, Index, Logs…
  56. 56. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.59 Cluster Data Nodes NDB NDB Connection Pool, SQL Interface, Parser, Optimizer, Caches Enterprise Management Services and Utilities Backup & Recovery Monitor Workbench Utilities Clients & Connectors Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl Arquitetura MySQL Cluster Storage Engines InnoDB, MyISAM, Memory, Archive, Cluster (NDB API), etc… Filesystems, Files & Logs Data, Index, Logs… mysqld Clients and Apps ndbd mgm_ndbd Management
  57. 57. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.60 Storage Engines MyISAM InnoDB NDB Cluster Transações ✖ ✔ ✔ Nível de Lock Tabela Linha Linha Replicação Assíncrona ou Semi-síncrona Assíncrona ou Semi-síncrona, crash-safe Síncrona, Multi-master, crash-safe sem SPOF Foreign Keys ✖ ✔ ✔ Full-text indexes ✔ ✔ ✖ Compressão de dados somente Leitura ✔ ✖ Caches somente Índices Dados e Índices Dados e Índices Suporte Geoespacial Tipos de Dados e Índices somente Tipos de Dados somente Tipos de Dados Limite de armazenamento 256TB 64TB 384EB (~3TB em RAM) dev.mysql.com/doc/refman/5.5/en/storage-engines.html
  58. 58. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.61 Clients Application Layer Management Arquitetura do MySQL Cluster Management Data Layer ndbd ndbd ndbd ndbd
  59. 59. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.62 O que NÃO é o MySQL Cluster 1. SGBD de uso geral, “bala de prata” • Tabelas NDB ainda não são recomendadas para todos tipos de aplicações / workloads • NDB ainda não é 100% compatível com InnoDB, mas podem ser usados em conjunto • MySQL Cluster requer relativamente mais memória RAM 2. Cluster do tipo Shared-All que requer Shared Storage • Como, por exemplo, Oracle RAC • Cada Data Node tem sua unidade de armazenamento independente 3. Replicação tradicional do MySQL Server • MySQL Cluster possui seu próprio mecanismo interno de replicação síncrona • Também pode ser usado opcionalmente em conjunto com replicação externa tradicional do MySQL 4. “Apenas” o MySQL Server (mysqld) • MySQL Cluster possui outros componentes: ndbd, ndb_mgmd 5. Produto de código fechado • Possui edição community (GPL) e carrier-grade edition (suporte e ferramentas comerciais)
  60. 60. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.63 Tabelas InnoDB vs NDB Cluster dev.mysql.com/doc/refman/5.6/en/mysql-cluster-compared.html Preferível InnoDB • Datasets ou linhas muito grandes, muitos BLOBs, tabelas histórico, fulltext search • Memória RAM mais limitada • Transações muito longas ou com isolamento diferente de READ COMMITTED • Foreign keys sob uso intensivo • Muitos full table scans, queries analíticas Preferível NDB Cluster • Escalabilidade de escrita, multi-master, auto- sharding • 99,999% uptime com operações online: adição de nós, upgrade, manutenção do esquema • Baixa latência para transações mais curtas, performance tempo-real, paralelismo • APIs NoSQL schemaless: Java, node.js, REST, C++, memcached • Uso limitado de colunas BLOB • Foreign keys são suportadas, porém podem causar impacto na performance em condições extremas
  61. 61. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.64 NDB + InnoDB Replicação Síncrona Replicação Assíncrona NDB API NDB Cluster Data Nodes MySQL Cluster InnoDB local InnoDB externo
  62. 62. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.65 Replicação síncrona Replicação assíncrona InnoDB + NDB Cluster Opções com Geo-Replicação Replicação síncrona entre os grupos de nós para HA Geo-Replicação assíncrona ou síncrona entre nós remotos NDB para redundância geográfica Replicação assíncrona entre Storage Engines diferentes para aplicações especializadas como geração de relatórios Cluster 1 InnoDB InnoDB InnoDB Cluster 2
  63. 63. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.66 Alguns Clientes MySQL Cluster
  64. 64. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.67  sistema de recomendações de games casuais que identifica o visitante e exibe conteúdo direcionado ao seu perfil  já nos testes, com 2 data nodes, capacidade de 87k INSERTs por segundo e 3k SELECTs por segundo  latência extremamente baixa (sub- milisegundos) e alta-disponibilidade  NoSQL ClusterJ API (Java) Caso de Sucesso MySQL Cluster “As a strategic project, we couldn’t afford to take any chances. MySQL Cluster provided us with a proven and trusted solution to meet the demands of both our business and our users.” Sean Chighizola Database Director, Big Fish mysql.com/why-mysql/case-studies/mysql-cs-bigfish.html
  65. 65. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.68  sistema global de detecção de fraudes que monitora transações financeiras, sessões dos usuários e histórico em tempo real  Trabalha com mais de 100TB e 100m de usuários, transações ACID, R/W <1 segundo em qualquer parte do mundo com geo- replicação  Escalabilidade linear com 99,999% de disponibilidade, na nuvem AWS Caso de Sucesso ACID em tempo real “Technologies such as MySQL Cluster enables users to get the best of both world’s: the agility of NoSQL systems with the trust, maturity and reliability of the SQL model.” Daniel Austin Chief Architect, Paypal mysql.com/customers/view/?id=1223
  66. 66. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.69  Social game para Facebook  2 milhões usuários, com +30k novos usuários por dia  10K usuários concorrentes, ~10K TPS  99.999% uptime Caso de Sucesso Online Games “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
  67. 67. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.70 MySQL Cluster Customers mysql.com/customers/cluster
  68. 68. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.71 Mais sobre como começar com MySQL Cluster Whitepaper: MySQL Cluster Evaluation Guide June 2013 mysql.com/why-mysql/white-papers/mysql- cluster-evaluation-guide
  69. 69. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.72 Como começar a usar o MySQL Cluster?
  70. 70. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.73 MySQL Cluster Auto-Install downloads.mysql.com/tutorials/cluster/mysql_wp_cluster_quickstart.pdf
  71. 71. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.74 1. Download MCM/Cluster edelivery.oracle.com: 2. Unzip e execute o comando com usuário diferente de root: MySQL Cluster Manager Para testes em uma única máquina C:MySQLmcmbin> mcmd --bootstrap MySQL Cluster Manager 1.1.2 started Connect to MySQL Cluster Manager by running “C:MySQLmcmbinmcm" -a NOVA:1862 Configuring default cluster 'mycluster'... Starting default cluster 'mycluster'... Cluster 'mycluster' started successfully ndb_mgmd NOVA:1186 ndbd NOVA ndbd NOVA mysqld NOVA:3306 mysqld NOVA:3307 ndbapi * Connect to the database by running “C:MySQLmcmclusterbinmysql" -h NOVA -P 3306 -u root
  72. 72. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.75 Teste via MySQL Workbench
  73. 73. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.76 Teste via MySQL Workbench 2/2
  74. 74. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.77 Not Only SQL!
  75. 75. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.78 Flexibilidade na interação com os dados • Escalabilidade linear de Escritas e Leituras • Elasticidade, crescimento incremental, distrib. simétricaEscalabilidade • 99.999% de disponibilidade, 5min / ano • Self-healing, failover menor que 1s, geo-replicaçãoAlta Disponibilidade • Performance em tempo real, in-memory e em disco • Latência baixa e preditiva, acessos paralelosAlta Performance • Modelo relacional ACID, SQL e Foreign Keys • APIs NoSQL (C++, Java, Memcached, Node.js)Flexibilidade • Open Source, suporte e ferramentas comerciais opcionais • Hardware commodityBaixo TCO
  76. 76. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.79 Clients Application Layer Management APIs NoSQL Management Data Layer ndbd ndbd ndbd ndbd
  77. 77. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.80 Os mesmos dados acessados simultaneamente através de interfaces SQL e NoSQL APIs de Acesso aos Dados
  78. 78. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.81 Qual API devo usar? SQL • Padrão da indústria • Joins e Queries complexas • Modelo relacional ClusterJ / OpenJPA • ORM Java • Simplicidade • Acesso nativo e rápido ao Cluster • Ex: Web e Telco memcached • chave/valor • Simples de usar • Driver para diversas linguagens • Ex: PHP Proxy node.js • Javascript • Mesma tecnologia do browser no lado do servidor • Ex: Mobile Apps mod_ndb • REST/JSON • HTML • Uso do Apache httpd C++ • Performance extrema • Tempo real • Desenvolved or experiente • Mais baixo nível
  79. 79. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.82 <estado:SP,Campinas> prefix key value <estado:SP,Campinas> key value Prefix Table Key-col Val-col policy estado: mapa.cidades sigla_estado cidade cluster Config tables sigla_estado ... cidade ... SP ... Campinas ... Tabela cidades do DB mapa visão da Aplicação visão MySQL Cluster Cluster & Memcached Schema configurável SELECT * FROM mapa.cidades WHERE cidade LIKE ’C%’;
  80. 80. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.83 Exemplos Memcached API Blog: Scalable, persistent, HA NoSQL Memcache storage using MySQL Cluster 15 February 2012 clusterdb.com/mysql-cluster/scalabale-persistent-ha-nosql-memcache- storage-using-mysql-cluster
  81. 81. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.84 var nosql = require('mysql-js'); var annotations = new nosql.TableMapping('cidade').apply ToClass(Cidade); var dbProperties = nosql.ConnectionProperties('ndb'); nosql.openSession(dbProperties, Cidade, annotations, onSession); Connector modular para vários back-ends: • direta com NDB • via MySQL Server Novo: Node.js connector 1/4
  82. 82. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.85 var onSession = function(err, session) { if (err) {console.log(err); process.exit(0);} else { var data = new Cidade('Guarulhos', 'SP'); session.persist(data, onInsert, data, session); } }; Novo: Node.js connector 2/4
  83. 83. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.86 var onInsert = function(err, object, session) { if (err) {console.log(err);} else { console.log('Inserido: ' + JSON.stringify(object)); session.find(Cidade,'Guarulhos', onFind); } }; Novo: Node.js connector 3/4
  84. 84. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.87 var onFind = function(err, result) { if (err) {console.log(err);} else { console.log('Encontrado: ' + JSON.stringify(result)); } process.exit(0); }; Novo: Node.js connector 4/4
  85. 85. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.88 Exemplos JavaScript / Node.js API Blog: MySQL Cluster Tutorial: NoSQL JavaScript Connector for Node.js 17 April 2013 blogs.oracle.com/MySQL/entry/mysql_cluster_tutorial_nosql_api
  86. 86. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.89 Como o MySQL Cluster funciona?
  87. 87. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.90 Data Layer Application Layer Management mgm_ndbd MySQL Cluster: arquitetura simplificada mysqld Clients MySQL Cluster Data Nodes ndbd ndbd ndbd ndbd
  88. 88. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.91 Como escalar leituras e escritas? • Escalabilidade linear de Escritas e Leituras • Elasticidade, crescimento incremental, distrib. simétricaEscalabilidade • 99.999% de disponibilidade, 5min / ano • Self-healing, failover menor que 1s, geo-replicaçãoAlta Disponibilidade • Performance em tempo real, in-memory e em disco • Latência baixa e preditiva, acessos paralelosAlta Performance • Modelo relacional ACID, SQL e Foreign Keys • APIs NoSQL (C++, Java, Memcached, Node.js)Flexibilidade • Open Source, suporte e ferramentas comerciais opcionais • Hardware commodityBaixo TCO
  89. 89. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.92 Data Node 1 Data Node 2 Data Node 3 Data Node 4 Table T1 P2 P3 P4 P1 Data Sharding: escalando ESCRITAS
  90. 90. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.93 Data Node 1 Data Node 2 F1 Data Node 3 Data Node 4 Table T1 P2 P3 P4 P1 Data Sharding: escalando ESCRITAS
  91. 91. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.94 Data Node 1 Data Node 2 F1 F3 Data Node 3 Data Node 4 Table T1 P2 P3 P4 P1 Data Sharding: escalando ESCRITAS
  92. 92. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.95 Data Node 1 Data Node 2 F1 F3 Data Node 3 Data Node 4 F2 Table T1 P2 P3 P4 P1 Data Sharding: escalando ESCRITAS
  93. 93. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.96 Data Node 1 Data Node 2 F1 F3 Data Node 3 Data Node 4 F2 F4 Table T1 P2 P3 P4 P1 Data Sharding: escalando ESCRITAS
  94. 94. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.97 Data Layer Application Layer MySQL Cluster: auto-sharding Table T1 P2 P3 P4 P1F1 F3 F2 F4 ndbd ndbd ndbd ndbd Clients mysqld Table T1 visão da Aplicação visão MySQL Cluster SQL NDB API
  95. 95. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.98 In-Memory, parallel, AQL, Pushdown Joins 1. Memória RAM mais barata e redes mais rápidas • Escrever em memória RAM remota é mais rápido que em disco local 2. Múltiplas threads trabalhando em paralelo em diversas máquinas • Uso de arquiteturas multi-core 3. Adaptative Query Localization • Queries mais complexas, envolvendo apenas Data Nodes necessários 4. Pushdown Joins • JOINs resolvidos nos Data Nodes, em paralelo
  96. 96. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.99  NoSQL C++ API, flexaSynch benchmark  30 x Intel E5-2600 Intel Servers, 2 socket, 64GB  ACID Transactions, Synchronous Replication 0 5 10 15 20 25 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 MillionsofUPDATEsper Second MySQL Cluster Data Nodes 20 Milhões de UPDATEs / seg
  97. 97. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.100 MySQL Cluster 7.4  Ganho de Performance sobre v7.3 – 47% (Read-Only) – 38% (Read-Write) Melhor performance e simplicidade operacional labs.mysql.com  Restarts mais rápidos dos nós – Recovering nodes rejoin the cluster faster
  98. 98. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.101 Como garantir a alta-disponibilidade? • Escalabilidade linear de Escritas e Leituras • Elasticidade, crescimento incremental, distrib. simétricaEscalabilidade • 99.999% de disponibilidade, 5min / ano • Self-healing, failover menor que 1s, geo-replicaçãoAlta Disponibilidade • Performance em tempo real, in-memory e em disco • Latência baixa e preditiva, acessos paralelosAlta Performance • Modelo relacional ACID, SQL e Foreign Keys • APIs NoSQL (C++, Java, Memcached, Node.js)Flexibilidade • Open Source, suporte e ferramentas comerciais opcionais • Hardware commodityBaixo TCO
  99. 99. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.102 Data Node 1 Data Node 2 F1 F1 Data Node 3 Data Node 4 Table T1 P2 P3 P4 P1 Data Sharding + Replicação
  100. 100. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.103 Data Node 1 Data Node 2 F1 F3 F1 Data Node 3 Data Node 4 Table T1 P2 P3 P4 P1 F3 Data Sharding + Replicação
  101. 101. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.104 Data Node 1 Data Node 2 F1 F3 F3 F1 Data Node 3 Data Node 4 F2 F2 Table T1 P2 P3 P4 P1 Data Sharding + Replicação
  102. 102. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.105 Data Node 1 Data Node 2 F1 F3 F3 F1 Data Node 3 Data Node 4 F2 F4 F4 F2 Table T1 P2 P3 P4 P1 Data Sharding + Replicação
  103. 103. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.106 Data Node 1 Data Node 2 F1 F3 F3 F1 Data Node 3 Data Node 4 F2 F4 F4 F2 Group1 Table T1 P2 P3 P4 P1 Data Sharding + Replicação Group2
  104. 104. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.107 Data Node 1 Data Node 2 F1 F3 F3 F1 Data Node 3 Data Node 4 F2 F4 F4 F2 Group1 Table T1 P2 P3 P4 P1 Data Sharding + Replicação Group2
  105. 105. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.108 visão da Aplicação MySQL Cluster Data Nodes Data Layer Application Layer Management mgm_ndbd MySQL Cluster: alta-disponibilidade Table T1 F1 F3 F3 F1 F2 F4 F4 F2 Management mgm_ndbd mysqldmysqld ndbd ndbd ndbd ndbd Clients
  106. 106. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.109 Qual o custo?
  107. 107. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.110 Como manter TCO baixo? • Escalabilidade linear de Escritas e Leituras • Elasticidade, crescimento incremental, distrib. simétricaEscalabilidade • 99.999% de disponibilidade, 5min / ano • Self-healing, failover menor que 1s, geo-replicaçãoAlta Disponibilidade • Performance em tempo real, in-memory e em disco • Latência baixa e preditiva, acessos paralelosAlta Performance • Modelo relacional ACID, SQL e Foreign Keys • APIs NoSQL (C++, Java, Memcached, Node.js)Flexibilidade • Open Source, suporte e ferramentas comerciais opcionais • Hardware commodityBaixo TCO
  108. 108. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.111 Principais componentes do TCO 1. Custo de aquisição • Licenciamento do Software (desenvolvimento e produção) • Hardware necessário • Conhecimento da equipe • Produtividade do time de desenvolvimento 2. Custo de manutenção e evolução • Hospedagem e manutenção do hardware • Conhecimento da equipe • Estabilidade e maturidade do software • Suporte do fabricante • Produtividade: Ferramentas de gerenciamento, monitoramento e backup • Produtividade do time de evolução do produto
  109. 109. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.112 MySQL Cluster Carrier-Grade Edition Subscrição com renovação anual: ferramentas + serviços Escalabilidade Segurança Auditoria Cluster Plug-ins Suporte Backup Monitor & Workbench Cluster Manager
  110. 110. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.113 Aprenda mais…
  111. 111. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.114 Mais sobre como começar com MySQL Cluster Whitepaper: MySQL Cluster Evaluation Guide June 2013 mysql.com/why-mysql/white-papers/mysql- cluster-evaluation-guide
  112. 112. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.115 Próximo passo: documentação Reference Manual Cap. 17.1, MySQL Cluster Overview 1. MySQL Cluster Core Concepts 2. MySQL Cluster Nodes, Node Groups, Replicas, and Partitions 3. MySQL Cluster Hardware, Software, and Networking Requirements 4. MySQL Cluster Development History 5. MySQL Server Using InnoDB Compared with MySQL Cluster 6. Known Limitations of MySQL Cluster dev.mysql.com/doc/refman/5.6/en/mysql-cluster.html
  113. 113. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.116 Mais sobre como MySQL Cluster para Web Whitepaper: Guide to Scaling Web Databases with MySQL Cluster June 2013 mysql.com/why-mysql/white-papers/guide-to- scaling-web-databases-with-mysql-cluster
  114. 114. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.117 MySQL for Beginners Ed 3 MySQL for Database Administrators Ed 2 MySQL Performance Tuning MySQL High Availability MySQL Cluster MySQL DBA Introduction to MySQL 5.5 MySQL Developers Techniques MySQL for Beginners Ed 3 MySQL and PHP Developing Dynamic Web Applications MySQL for Developers Ed 2 MySQL Advanced Stored Procedures MySQLDeveloper education.oracle.com/mysql Opcional Necessário Treinamentos e certificações Oracle Certified Associate, MySQL 5 Oracle Certified Professional, MySQL 5.6 DBA Oracle Certified Expert, MySQL Cluster DBA Certificações Oracle Certified Professional, MySQL 5 Developer
  115. 115. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.118 Sumário  Há várias opções certificadas de alta-disponibilidade para MySQL, escolha aquela que faz sentido para sua aplicação.  O MySQL Cluster é um produto derivado do popular MySQL Server. Trata-se de um banco de dados distribuído com arquitetura shared-nothing e que pode oferecer 99,999% de disponibilidade, performance superior a 1 bilhão de escritas por minuto, escalabilidade linear, conformidade com o modelo ACID, flexibilidade das interfaces NoSQL e geo-replicação multi-master.  Boas práticas operacionais são muito importantes para uma real alta- disponibilidade. Conte com a Oracle para implantá-las!
  116. 116. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.119 @MySQLBR facebook.com/MySQLBR Obrigado! Slides disponíves em…
  117. 117. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.120 Perguntas? airton.lastori@oracle.com Alta-disponibilidade com MySQL
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×