SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
Alta Disponibilidade
com MySQL Enterprise
Airton Lastori
airton.lastori@oracle.com
Maio-2017
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Agenda
1. Alta disponibilidade (HA) – conceitos básicos
2. Arquiteturas e topologias de HA para MySQL
3. Monitoramento e gerenciamento
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Agenda
1. Alta disponibilidade (HA) – conceitos básicos
2. Arquiteturas e topologias de HA para MySQL
3. Monitoramento e gerenciamento
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
mysql.com/why-mysql/white-papers/mysql-guide-to-high-availability-solutions
Escolhendo a melhor solução para sua necessidade
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Master-Slave
Replicação Simples no MySQL
7
Master
Read-write
Slave
Read-only
Replicação nativa do
MySQL Escrita
Leitura
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Grandes usuários MySQL usam a replicação
8
Web, Cloud, Distribuído e Embarcado…
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Exemplos de uso da Replicação
• Redundância simples dos dados (Contingência)
• Backup
• Geo-redundância (DR)
• Dado mais próximo do cliente
• Escalabilidade de Leituras
– Dividir cargas OLTP e OLAP
– Read-write split
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Replicação em 5 minutos
Monte seu lab e comece a brincar
• [blog post]
http://www.alastori.com.br/2015/02/tuto
rial-replicacao-mysql-em-5-minutos.html
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
MySQL Enterprise Backup
1. Sem parar o Master, faça um hot backup
2. Restaure no Slave
3. No Slave execute CHANGE MASTER TO ...
4. Inicie o Slave
11
Crie novos Slaves online
https://dev.mysql.com/doc/mysql-enterprise-backup/4.1/en/advanced.slave.html
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Replicação Semi-síncrona para evitar perda de dados
Topologias resilientes
12
Master Slave
ACK = Confirmação de
recebimento dos pacotes
Importante!
Há configurações
adicionais para
tornar a replicação
crash-safe
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 13
Analogia
13
Carta Simples
Carta AR
Intimação Judicial
Assíncrona
sem confirmação do recebimento
Semi-síncrona
confirmado recebimento, mas ainda não “processada”
Síncrona
confirmado recebimento e processamento (commit)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Sem perda de dados e failover facilitado com replicação Semi-síncrona
Topologias resilientes com Múltiplos Slaves
14
Master Slave 1 (local)
Primeira opção de failover
(sempre mais atualizado)
Slave 2 (remoto)
Segunda opção de failover
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Etapas típicas de um projeto de HA
1. Definir qual o tempo máximo de indisponibilidade e perdas aceitáveis
2. Revisar todos intens da infra-estrutura atual que terão contingência
(mapear SPoF)
3. Definir a melhor arquitetura e topologia de HA para este contexto
4. Implantar a redundância dos componentes
5. Implantar monitoramento (instrumentação)
6. Implantar procedimentos operacionais para contingência
15
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Etapas típicas de um projeto de HA
1. Definir qual o tempo máximo aceitável de uma indisponibilidade
2. Revisar todos intens da infra-estrutura atual que terão contingência
(mapear SPoF)
3. Definir a melhor arquitetura e topologia de HA para este contexto
4. Implantar a redundância dos componentes
5. Implantar monitoramento (instrumentação)
6. Implantar procedimentos operacionais para contingência
16
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Agenda
1. Alta disponibilidade (HA) – conceitos básicos
2. Arquiteturas e topologias de HA para MySQL
3. Monitoramento e gerenciamento
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Sem alta disponibilidade
“Topologia” Stand-Alone
18
MySQL
Importante!
Backup
Monitoramento
No-Break
Duplicidade disco
Duplicidade rede
Etc.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Menor tempo em backups e restores, menos downtime
MySQL Enterprise Backup
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Sem alta disponibilidade
“Topologia” Stand-Alone
Data Access (mysqld)
Data (Storage/HD/SDD)
App Servers
Database connection
20
App
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Sem alta disponibilidade no Banco de Dados
Topologia com redundância apenas na Aplicação
Data Access (mysqld)
Data (Storage/HD/SDD)
App Servers
Database connections
21
App App
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Arquitetura: replication + router + mysqlfailover
Router
App
VIP
mysqlfailover
Read-write
Read-only
mysqlfailover --master=root@localhost:3331
--discover-slaves-login=root
Failover starting...
# Candidate slave localhost:3332 will become the
new master.
# Preparing candidate for failover.
# Creating replication user if it does not exist.
# Stopping slaves.
# Performing STOP on all slaves.
# Switching slaves to new master.
# Starting slaves.
# Performing START on all slaves.
# Checking slaves for errors.
# Failover complete.
# Discovering slaves for master at localhost:3332
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Componentes para Roteamento de conexões
MySQL Connectors
• Funcionalidades
nativas de Failover
ou Load Balancing
MySQL Router(novo )
• Middleware leve
• Roteamento
baseado nas
conexões
• Failover para o
primeiro disponível
ou Load Balancing
MySQL Utilities
• mysqlfailover –
monitora a
replicação, promove
novo master e
redireciona slaves
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Geo-redundância para Disaster Recovery
Topologias com múltiplos slaves
24
Site 1
Master
Site 2
Slave
Ativo Passivo
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
DC 1 - ativo
Arquitetura: replication + router + mysqlfailover (multi-site)
Router
App
VIP
mysqlfailover
Read-write
Read-only
DC 2 - standby
Router
App
VIP
mysqlfailover
semisync semisync
async
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Dado mais próximo do cliente para Leituras
Topologias com múltiplos slaves
26
Master
read-write
Slave 1
read-only
Réplica do Master
Slave 2
read-only
Réplica do Master
Slave 3
read-only
Réplica do Slave 1
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Consolidação de Múltiplos Masters em um Slave
Replicação Multi-Source: mais flexibilidade nas topologias
27
Slave
Master 3
read-write
Master 2
read-write
Master 1
read-write
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
MySQL InnoDB Cluster (Novo)
Group Replication
Router Router
App App
• Banco de dados replicado altamente
disponível e tolerante a falhas
• Permite topologias Ativo-ativo
• Arquitetura cloud-friendly, shared-
nothing, sem storage compartilhado
• Retira a necessidade de gerenciar o
failover
• Automatiza reconfiguração e
reconexão após falhas
MySQL Shell
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Master-Slave Replication
Replication vs. Group Replication
Group Replication
Router RouterRouter
App AppApp
VIP
mysqlfailover
Read-write
Read-only
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
MySQL InnoDB Cluster
1. MySQL Server 5.7.17 ou superior
2. MySQL Shell 1.0.9 ou superior
3. MySQL Router 2.1.3 ou superior
30
Instalação
https://dev.mysql.com/doc/refman/5.7/en/mysql-innodb-cluster-installing.html
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
MySQL InnoDB Cluster
$ mysqlsh
mysql-js> dba.deploySandboxInstance(3310)
mysql-js> dba.deploySandboxInstance(3320)
mysql-js> dba.deploySandboxInstance(3330)
mysql-js> var cluster = dba.createCluster('testCluster')
mysql-js> cluster.addInstance('root@localhost:3320')
mysql-js> cluster.addInstance('root@localhost:3330')
mysql-js> cluster.status()
31
Teste Sandbox
https://dev.mysql.com/doc/refman/5.7/en/mysql-innodb-cluster-getting-started.html
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
MySQL InnoDB Cluster
$ sudo mysqlrouter --bootstrap root@localhost:3310 --user=mysql
...
- Read/Write Connections: localhost:6446
- Read/Only Connections: localhost:6447
...
$ sudo -u mysql mysqlrouter --user=mysql &
32
Teste Sandbox
https://dev.mysql.com/doc/refman/5.7/en/mysql-innodb-cluster-getting-started.html
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
MySQL InnoDB Cluster
$ mysqlsh --uri root@localhost:6446
mysql-js> dba.killSandboxInstance(3310)
mysql-js> sql
mysql-sql> SELECT @@port;
+--------+
| @@port |
+--------+
| 3330 |
+--------+
1 row in set (0.00 sec)
33
Teste Sandbox
https://dev.mysql.com/doc/refman/5.7/en/mysql-innodb-cluster-getting-started.html
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 34
MySQL Cluster: Escalabilidade de Escritas
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Exemplos de uso da Replicação do NDB Cluster
• Redundância dos dados
– Ativo-Ativo
• Escalabilidade de Leituras
– Consistência forte, load balancing
• Escalabilidade de Escritas
– Auto-sharding
• Geo-replicação
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Resumo das opções
Replication Group Replication
Cluster Carrier Grade
Edition
Velocidade de failover Média Alta Alta
Consistência de Leitura Fraca Fraca Forte
Escalabilidade Leitura Leitura Leitura+Escrita
Sem perda de dados durante
falha
Config. Sim Sim
Facilidade de migração a
partir de InnoDB stand-alone
Média Fácil Média
Limite de armazenamento 64TB+ 64TB+ ~3TB
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Agenda
1. Alta disponibilidade (HA) – conceitos básicos
2. Arquiteturas e topologias de HA para MySQL
3. Monitoramento e gerenciamento
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 38
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 39
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 40
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 41
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
MySQL Utilities
• Binary Log Operations
• Database Operations
• General Operations
• Server Operations
• Specialized Operations
• High Availability Operations
– How Can I Use Replication?
– How Do I Add New Servers to My
Topology and Change Master Role
– Setup Automatic Failover
– Restore the Previous Master After
Failover
– How Can I Find All of the Slaves Attached
to My Master Server?
– How To Check If Data Is Correctly
Replicated?
– How To Fix Errant Transactions on the
Replication Topology?
44
dev.mysql.com/doc/mysql-utilities/1.6/en/mysql-utils-ha.html
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
MySQL Enterprise Edition
Suporte + Base de Conhecimento + Hot Backup + Monitor + Oracle EM + Workbench + Plug-ins
Escalabilidade
Autenticação
Firewall
Auditoria
novo TDE
Criptografia
MySQL Enterprise Monitor
Oracle EM for MySQL
Plug-ins
Suporte
Hot
Backup
Monitor &
Workbench
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Sumário
1. HA não é simples nem de graça
2. O MySQL possui diversas opções de arquitetura para HA
3. Entenda os requisitos, compare as possíveis arquiteturas
e topologias e faça a melhor escolha
4. Não se esqueça que HA não é só a escolha da
arquitetura, procedimentos operacionais são igualmente
importantes
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Obrigado!
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Perguntas?
Alta Disponibilidade com MySQL Enterprise
Contato:
airton.lastori@oracle.com
twitter.com/mysqlbr
facebook.com/mysqlbr

Mais conteúdo relacionado

Mais procurados

Arquiteturas de referência MySQL
Arquiteturas de referência MySQLArquiteturas de referência MySQL
Arquiteturas de referência MySQLMySQL Brasil
 
Oracle Premier Support para MySQL
Oracle Premier Support para MySQLOracle Premier Support para MySQL
Oracle Premier Support para MySQLMySQL Brasil
 
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3MySQL Brasil
 
Guia essencial para embarcar o MySQL em seu produto
Guia essencial para embarcar o MySQL em seu produtoGuia essencial para embarcar o MySQL em seu produto
Guia essencial para embarcar o MySQL em seu produtoMySQL Brasil
 
MySQL é de graça?
MySQL é de graça?MySQL é de graça?
MySQL é de graça?MySQL Brasil
 
Serviços Escaláveis e de Alta Performance com MySQL e Java
Serviços Escaláveis e de Alta Performance com MySQL e JavaServiços Escaláveis e de Alta Performance com MySQL e Java
Serviços Escaláveis e de Alta Performance com MySQL e JavaMySQL Brasil
 
MySQL Alta Performance & Alta Disponibilidade
MySQL Alta Performance & Alta DisponibilidadeMySQL Alta Performance & Alta Disponibilidade
MySQL Alta Performance & Alta DisponibilidadeMySQL Brasil
 
My sql enterprise vs community
My sql enterprise vs communityMy sql enterprise vs community
My sql enterprise vs communityMySQL Brasil
 
MySQL Enterprise Monitor para Desenvolvedores
MySQL Enterprise Monitor para DesenvolvedoresMySQL Enterprise Monitor para Desenvolvedores
MySQL Enterprise Monitor para DesenvolvedoresMySQL Brasil
 
Apresentação OWASP - UBI, Covilhã
Apresentação OWASP - UBI, CovilhãApresentação OWASP - UBI, Covilhã
Apresentação OWASP - UBI, CovilhãCarlos Serrao
 
Meetup Zabbix Day FMB - O que é o Zabbix
Meetup Zabbix Day FMB - O que é o ZabbixMeetup Zabbix Day FMB - O que é o Zabbix
Meetup Zabbix Day FMB - O que é o ZabbixJulio Pantarotto
 
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...MySQL Brasil
 
MySQL para Desenvolvedores de Produto
MySQL para Desenvolvedores de ProdutoMySQL para Desenvolvedores de Produto
MySQL para Desenvolvedores de ProdutoMySQL Brasil
 
Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15MySQL Brasil
 
Barracuda Backup: Solução Completa de Proteção de Dados e Disaster Recovery I...
Barracuda Backup: Solução Completa de Proteção de Dados e Disaster Recovery I...Barracuda Backup: Solução Completa de Proteção de Dados e Disaster Recovery I...
Barracuda Backup: Solução Completa de Proteção de Dados e Disaster Recovery I...Bravo Tecnologia
 
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia LadislauMonitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia LadislauPatricia Ladislau Silva
 
O Web Application Firewall Pack da KEMP
O Web Application Firewall Pack da KEMPO Web Application Firewall Pack da KEMP
O Web Application Firewall Pack da KEMPKemp
 

Mais procurados (20)

Arquiteturas de referência MySQL
Arquiteturas de referência MySQLArquiteturas de referência MySQL
Arquiteturas de referência MySQL
 
Oracle Premier Support para MySQL
Oracle Premier Support para MySQLOracle Premier Support para MySQL
Oracle Premier Support para MySQL
 
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
 
Guia essencial para embarcar o MySQL em seu produto
Guia essencial para embarcar o MySQL em seu produtoGuia essencial para embarcar o MySQL em seu produto
Guia essencial para embarcar o MySQL em seu produto
 
MySQL é de graça?
MySQL é de graça?MySQL é de graça?
MySQL é de graça?
 
Serviços Escaláveis e de Alta Performance com MySQL e Java
Serviços Escaláveis e de Alta Performance com MySQL e JavaServiços Escaláveis e de Alta Performance com MySQL e Java
Serviços Escaláveis e de Alta Performance com MySQL e Java
 
MySQL Alta Performance & Alta Disponibilidade
MySQL Alta Performance & Alta DisponibilidadeMySQL Alta Performance & Alta Disponibilidade
MySQL Alta Performance & Alta Disponibilidade
 
My sql enterprise vs community
My sql enterprise vs communityMy sql enterprise vs community
My sql enterprise vs community
 
Apresentação MySQL Enterprise
Apresentação MySQL EnterpriseApresentação MySQL Enterprise
Apresentação MySQL Enterprise
 
MySQL Enterprise Monitor para Desenvolvedores
MySQL Enterprise Monitor para DesenvolvedoresMySQL Enterprise Monitor para Desenvolvedores
MySQL Enterprise Monitor para Desenvolvedores
 
Apresentação OWASP - UBI, Covilhã
Apresentação OWASP - UBI, CovilhãApresentação OWASP - UBI, Covilhã
Apresentação OWASP - UBI, Covilhã
 
WebSeminario Oracle
WebSeminario OracleWebSeminario Oracle
WebSeminario Oracle
 
Meetup Zabbix Day FMB - O que é o Zabbix
Meetup Zabbix Day FMB - O que é o ZabbixMeetup Zabbix Day FMB - O que é o Zabbix
Meetup Zabbix Day FMB - O que é o Zabbix
 
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
 
MySQL para Desenvolvedores de Produto
MySQL para Desenvolvedores de ProdutoMySQL para Desenvolvedores de Produto
MySQL para Desenvolvedores de Produto
 
Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15
 
Barracuda Backup: Solução Completa de Proteção de Dados e Disaster Recovery I...
Barracuda Backup: Solução Completa de Proteção de Dados e Disaster Recovery I...Barracuda Backup: Solução Completa de Proteção de Dados e Disaster Recovery I...
Barracuda Backup: Solução Completa de Proteção de Dados e Disaster Recovery I...
 
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia LadislauMonitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
Monitoramento e Gerenciamento de Infraestrutura com Zabbix - Patrícia Ladislau
 
O Web Application Firewall Pack da KEMP
O Web Application Firewall Pack da KEMPO Web Application Firewall Pack da KEMP
O Web Application Firewall Pack da KEMP
 
MySQL no Windows
MySQL no WindowsMySQL no Windows
MySQL no Windows
 

Semelhante a Alta disponibilidade com MySQL Enterprise

Alta Disponibilidade no MySQL 5.7 para aplicações em PHP
Alta Disponibilidade no MySQL 5.7 para aplicações em PHPAlta Disponibilidade no MySQL 5.7 para aplicações em PHP
Alta Disponibilidade no MySQL 5.7 para aplicações em PHPMySQL Brasil
 
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014MySQL Brasil
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Brasil
 
Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6MySQL Brasil
 
Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014MySQL Brasil
 
Novidades do MySQL para desenvolvedores ago15
Novidades do MySQL para desenvolvedores ago15Novidades do MySQL para desenvolvedores ago15
Novidades do MySQL para desenvolvedores ago15MySQL Brasil
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Brasil
 
Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014MySQL Brasil
 
MySQL + Java - Manuel Contreras
MySQL + Java - Manuel ContrerasMySQL + Java - Manuel Contreras
MySQL + Java - Manuel ContrerasMySQL Brasil
 
MySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI TecnologiaMySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI TecnologiaMySQL Brasil
 
Desenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQLDesenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQLMySQL Brasil
 
Project HA
Project HAProject HA
Project HAKarpv
 
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...WeOp - The Operations Summit
 
Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -MySQL Brasil
 
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...Ricardo Ferreira
 
People soft on rac sig.en.pt
People soft on rac sig.en.ptPeople soft on rac sig.en.pt
People soft on rac sig.en.ptsaulfreitas
 
MySQL 5.7 Multi-Source Replication
MySQL 5.7 Multi-Source ReplicationMySQL 5.7 Multi-Source Replication
MySQL 5.7 Multi-Source ReplicationWagner Bianchi
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Emerson Macedo
 

Semelhante a Alta disponibilidade com MySQL Enterprise (20)

Alta Disponibilidade no MySQL 5.7 para aplicações em PHP
Alta Disponibilidade no MySQL 5.7 para aplicações em PHPAlta Disponibilidade no MySQL 5.7 para aplicações em PHP
Alta Disponibilidade no MySQL 5.7 para aplicações em PHP
 
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
 
Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6
 
Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014
 
Novidades do MySQL para desenvolvedores ago15
Novidades do MySQL para desenvolvedores ago15Novidades do MySQL para desenvolvedores ago15
Novidades do MySQL para desenvolvedores ago15
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
 
Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014
 
MySQL + Java - Manuel Contreras
MySQL + Java - Manuel ContrerasMySQL + Java - Manuel Contreras
MySQL + Java - Manuel Contreras
 
MySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI TecnologiaMySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI Tecnologia
 
Desenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQLDesenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQL
 
Project HA
Project HAProject HA
Project HA
 
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
 
MySQL - the database
MySQL - the databaseMySQL - the database
MySQL - the database
 
Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -
 
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
 
People soft on rac sig.en.pt
People soft on rac sig.en.ptPeople soft on rac sig.en.pt
People soft on rac sig.en.pt
 
MySQL 5.7 Multi-Source Replication
MySQL 5.7 Multi-Source ReplicationMySQL 5.7 Multi-Source Replication
MySQL 5.7 Multi-Source Replication
 
Treinamento Data Guard
Treinamento Data GuardTreinamento Data Guard
Treinamento Data Guard
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011
 

Mais de MySQL Brasil

MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017MySQL Brasil
 
MySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e UberMySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e UberMySQL Brasil
 
MySQL Roadmap NoSQL HA Fev17
MySQL Roadmap NoSQL HA Fev17MySQL Roadmap NoSQL HA Fev17
MySQL Roadmap NoSQL HA Fev17MySQL Brasil
 
5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQLMySQL Brasil
 
MySQL 5.7 como Document Store
MySQL 5.7 como Document StoreMySQL 5.7 como Document Store
MySQL 5.7 como Document StoreMySQL Brasil
 
Enabling digital transformation with MySQL
Enabling digital transformation with MySQLEnabling digital transformation with MySQL
Enabling digital transformation with MySQLMySQL Brasil
 
Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7MySQL Brasil
 
NoSQL no MySQL 5.7
NoSQL no MySQL 5.7NoSQL no MySQL 5.7
NoSQL no MySQL 5.7MySQL Brasil
 
10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em StartupsMySQL Brasil
 
MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15MySQL Brasil
 
MySQL Enterprise Edition Portfolio
MySQL Enterprise Edition PortfolioMySQL Enterprise Edition Portfolio
MySQL Enterprise Edition PortfolioMySQL Brasil
 
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...MySQL Brasil
 

Mais de MySQL Brasil (14)

MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017
 
MySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e UberMySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e Uber
 
MySQL 8.0.1 DMR
MySQL 8.0.1 DMRMySQL 8.0.1 DMR
MySQL 8.0.1 DMR
 
MySQL Roadmap NoSQL HA Fev17
MySQL Roadmap NoSQL HA Fev17MySQL Roadmap NoSQL HA Fev17
MySQL Roadmap NoSQL HA Fev17
 
5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL
 
MySQL 5.7 como Document Store
MySQL 5.7 como Document StoreMySQL 5.7 como Document Store
MySQL 5.7 como Document Store
 
Enabling digital transformation with MySQL
Enabling digital transformation with MySQLEnabling digital transformation with MySQL
Enabling digital transformation with MySQL
 
Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7
 
NoSQL no MySQL 5.7
NoSQL no MySQL 5.7NoSQL no MySQL 5.7
NoSQL no MySQL 5.7
 
OpenStack & MySQL
OpenStack & MySQLOpenStack & MySQL
OpenStack & MySQL
 
10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups
 
MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15
 
MySQL Enterprise Edition Portfolio
MySQL Enterprise Edition PortfolioMySQL Enterprise Edition Portfolio
MySQL Enterprise Edition Portfolio
 
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...
 

Alta disponibilidade com MySQL Enterprise

  • 1. Alta Disponibilidade com MySQL Enterprise Airton Lastori airton.lastori@oracle.com Maio-2017
  • 2. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Agenda 1. Alta disponibilidade (HA) – conceitos básicos 2. Arquiteturas e topologias de HA para MySQL 3. Monitoramento e gerenciamento
  • 3. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Agenda 1. Alta disponibilidade (HA) – conceitos básicos 2. Arquiteturas e topologias de HA para MySQL 3. Monitoramento e gerenciamento
  • 4. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | mysql.com/why-mysql/white-papers/mysql-guide-to-high-availability-solutions Escolhendo a melhor solução para sua necessidade
  • 5. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Master-Slave Replicação Simples no MySQL 7 Master Read-write Slave Read-only Replicação nativa do MySQL Escrita Leitura
  • 6. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Grandes usuários MySQL usam a replicação 8 Web, Cloud, Distribuído e Embarcado…
  • 7. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Exemplos de uso da Replicação • Redundância simples dos dados (Contingência) • Backup • Geo-redundância (DR) • Dado mais próximo do cliente • Escalabilidade de Leituras – Dividir cargas OLTP e OLAP – Read-write split
  • 8. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Replicação em 5 minutos Monte seu lab e comece a brincar • [blog post] http://www.alastori.com.br/2015/02/tuto rial-replicacao-mysql-em-5-minutos.html
  • 9. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | MySQL Enterprise Backup 1. Sem parar o Master, faça um hot backup 2. Restaure no Slave 3. No Slave execute CHANGE MASTER TO ... 4. Inicie o Slave 11 Crie novos Slaves online https://dev.mysql.com/doc/mysql-enterprise-backup/4.1/en/advanced.slave.html
  • 10. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Replicação Semi-síncrona para evitar perda de dados Topologias resilientes 12 Master Slave ACK = Confirmação de recebimento dos pacotes Importante! Há configurações adicionais para tornar a replicação crash-safe
  • 11. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 13 Analogia 13 Carta Simples Carta AR Intimação Judicial Assíncrona sem confirmação do recebimento Semi-síncrona confirmado recebimento, mas ainda não “processada” Síncrona confirmado recebimento e processamento (commit)
  • 12. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Sem perda de dados e failover facilitado com replicação Semi-síncrona Topologias resilientes com Múltiplos Slaves 14 Master Slave 1 (local) Primeira opção de failover (sempre mais atualizado) Slave 2 (remoto) Segunda opção de failover
  • 13. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Etapas típicas de um projeto de HA 1. Definir qual o tempo máximo de indisponibilidade e perdas aceitáveis 2. Revisar todos intens da infra-estrutura atual que terão contingência (mapear SPoF) 3. Definir a melhor arquitetura e topologia de HA para este contexto 4. Implantar a redundância dos componentes 5. Implantar monitoramento (instrumentação) 6. Implantar procedimentos operacionais para contingência 15
  • 14. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Etapas típicas de um projeto de HA 1. Definir qual o tempo máximo aceitável de uma indisponibilidade 2. Revisar todos intens da infra-estrutura atual que terão contingência (mapear SPoF) 3. Definir a melhor arquitetura e topologia de HA para este contexto 4. Implantar a redundância dos componentes 5. Implantar monitoramento (instrumentação) 6. Implantar procedimentos operacionais para contingência 16
  • 15. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Agenda 1. Alta disponibilidade (HA) – conceitos básicos 2. Arquiteturas e topologias de HA para MySQL 3. Monitoramento e gerenciamento
  • 16. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Sem alta disponibilidade “Topologia” Stand-Alone 18 MySQL Importante! Backup Monitoramento No-Break Duplicidade disco Duplicidade rede Etc.
  • 17. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Menor tempo em backups e restores, menos downtime MySQL Enterprise Backup
  • 18. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Sem alta disponibilidade “Topologia” Stand-Alone Data Access (mysqld) Data (Storage/HD/SDD) App Servers Database connection 20 App
  • 19. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Sem alta disponibilidade no Banco de Dados Topologia com redundância apenas na Aplicação Data Access (mysqld) Data (Storage/HD/SDD) App Servers Database connections 21 App App
  • 20. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Arquitetura: replication + router + mysqlfailover Router App VIP mysqlfailover Read-write Read-only mysqlfailover --master=root@localhost:3331 --discover-slaves-login=root Failover starting... # Candidate slave localhost:3332 will become the new master. # Preparing candidate for failover. # Creating replication user if it does not exist. # Stopping slaves. # Performing STOP on all slaves. # Switching slaves to new master. # Starting slaves. # Performing START on all slaves. # Checking slaves for errors. # Failover complete. # Discovering slaves for master at localhost:3332
  • 21. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Componentes para Roteamento de conexões MySQL Connectors • Funcionalidades nativas de Failover ou Load Balancing MySQL Router(novo ) • Middleware leve • Roteamento baseado nas conexões • Failover para o primeiro disponível ou Load Balancing MySQL Utilities • mysqlfailover – monitora a replicação, promove novo master e redireciona slaves
  • 22. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Geo-redundância para Disaster Recovery Topologias com múltiplos slaves 24 Site 1 Master Site 2 Slave Ativo Passivo
  • 23. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | DC 1 - ativo Arquitetura: replication + router + mysqlfailover (multi-site) Router App VIP mysqlfailover Read-write Read-only DC 2 - standby Router App VIP mysqlfailover semisync semisync async
  • 24. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Dado mais próximo do cliente para Leituras Topologias com múltiplos slaves 26 Master read-write Slave 1 read-only Réplica do Master Slave 2 read-only Réplica do Master Slave 3 read-only Réplica do Slave 1
  • 25. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Consolidação de Múltiplos Masters em um Slave Replicação Multi-Source: mais flexibilidade nas topologias 27 Slave Master 3 read-write Master 2 read-write Master 1 read-write
  • 26. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | MySQL InnoDB Cluster (Novo) Group Replication Router Router App App • Banco de dados replicado altamente disponível e tolerante a falhas • Permite topologias Ativo-ativo • Arquitetura cloud-friendly, shared- nothing, sem storage compartilhado • Retira a necessidade de gerenciar o failover • Automatiza reconfiguração e reconexão após falhas MySQL Shell
  • 27. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Master-Slave Replication Replication vs. Group Replication Group Replication Router RouterRouter App AppApp VIP mysqlfailover Read-write Read-only
  • 28. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | MySQL InnoDB Cluster 1. MySQL Server 5.7.17 ou superior 2. MySQL Shell 1.0.9 ou superior 3. MySQL Router 2.1.3 ou superior 30 Instalação https://dev.mysql.com/doc/refman/5.7/en/mysql-innodb-cluster-installing.html
  • 29. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | MySQL InnoDB Cluster $ mysqlsh mysql-js> dba.deploySandboxInstance(3310) mysql-js> dba.deploySandboxInstance(3320) mysql-js> dba.deploySandboxInstance(3330) mysql-js> var cluster = dba.createCluster('testCluster') mysql-js> cluster.addInstance('root@localhost:3320') mysql-js> cluster.addInstance('root@localhost:3330') mysql-js> cluster.status() 31 Teste Sandbox https://dev.mysql.com/doc/refman/5.7/en/mysql-innodb-cluster-getting-started.html
  • 30. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | MySQL InnoDB Cluster $ sudo mysqlrouter --bootstrap root@localhost:3310 --user=mysql ... - Read/Write Connections: localhost:6446 - Read/Only Connections: localhost:6447 ... $ sudo -u mysql mysqlrouter --user=mysql & 32 Teste Sandbox https://dev.mysql.com/doc/refman/5.7/en/mysql-innodb-cluster-getting-started.html
  • 31. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | MySQL InnoDB Cluster $ mysqlsh --uri root@localhost:6446 mysql-js> dba.killSandboxInstance(3310) mysql-js> sql mysql-sql> SELECT @@port; +--------+ | @@port | +--------+ | 3330 | +--------+ 1 row in set (0.00 sec) 33 Teste Sandbox https://dev.mysql.com/doc/refman/5.7/en/mysql-innodb-cluster-getting-started.html
  • 32. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 34 MySQL Cluster: Escalabilidade de Escritas
  • 33. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Exemplos de uso da Replicação do NDB Cluster • Redundância dos dados – Ativo-Ativo • Escalabilidade de Leituras – Consistência forte, load balancing • Escalabilidade de Escritas – Auto-sharding • Geo-replicação
  • 34. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Resumo das opções Replication Group Replication Cluster Carrier Grade Edition Velocidade de failover Média Alta Alta Consistência de Leitura Fraca Fraca Forte Escalabilidade Leitura Leitura Leitura+Escrita Sem perda de dados durante falha Config. Sim Sim Facilidade de migração a partir de InnoDB stand-alone Média Fácil Média Limite de armazenamento 64TB+ 64TB+ ~3TB
  • 35. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Agenda 1. Alta disponibilidade (HA) – conceitos básicos 2. Arquiteturas e topologias de HA para MySQL 3. Monitoramento e gerenciamento
  • 36. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 38
  • 37. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 39
  • 38. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 40
  • 39. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 41
  • 40. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
  • 41. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
  • 42. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | MySQL Utilities • Binary Log Operations • Database Operations • General Operations • Server Operations • Specialized Operations • High Availability Operations – How Can I Use Replication? – How Do I Add New Servers to My Topology and Change Master Role – Setup Automatic Failover – Restore the Previous Master After Failover – How Can I Find All of the Slaves Attached to My Master Server? – How To Check If Data Is Correctly Replicated? – How To Fix Errant Transactions on the Replication Topology? 44 dev.mysql.com/doc/mysql-utilities/1.6/en/mysql-utils-ha.html
  • 43. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | MySQL Enterprise Edition Suporte + Base de Conhecimento + Hot Backup + Monitor + Oracle EM + Workbench + Plug-ins Escalabilidade Autenticação Firewall Auditoria novo TDE Criptografia MySQL Enterprise Monitor Oracle EM for MySQL Plug-ins Suporte Hot Backup Monitor & Workbench
  • 44. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Sumário 1. HA não é simples nem de graça 2. O MySQL possui diversas opções de arquitetura para HA 3. Entenda os requisitos, compare as possíveis arquiteturas e topologias e faça a melhor escolha 4. Não se esqueça que HA não é só a escolha da arquitetura, procedimentos operacionais são igualmente importantes
  • 45. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Obrigado!
  • 46. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Perguntas? Alta Disponibilidade com MySQL Enterprise Contato: airton.lastori@oracle.com twitter.com/mysqlbr facebook.com/mysqlbr