SlideShare uma empresa Scribd logo
1 de 79
Baixar para ler offline
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
30 de Julho de 2016 no Hotel Blue Tree Morumbi, São Paulo - SP
ALTA DISPONIBILIDADE NO MySQL 5.7
Airton Lastori
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
DBA Dev
Gerencial, Usuário
ou Professor
Quem?
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Não usa MySQL
Usa MySQL sem
HA
Usa MySQL com
HA
Quem?
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. | 7
O chefe
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 8
O Desenvolvedor
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 9
O DBA
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
“Precisamos garantir que a nossa
aplicação não pare nunca!
Nosso cliente não pode esperar.
Perderemos dinheiro e nossa marca
ficará prejudicada.”
10
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
“Vamos comprar um NoBreak para o
Servidor e está tudo certo!”
11
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
...
12
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
“Quanto % do tempo o sistema deve
ficar no ar?”
13
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
“100%, é claro!”
14
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
“Desculpe desapontá-lo, mas disponibilidade
infinita não existe.
Pense em serviços como abastecimento de
água ou energia elétrica...
Há necessidade de ter redundância e
contingência dos equipamentos e
processos+ferramentas para a operação”
15
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
“Chefe, na verdade precisamos de mais
1 servidor para aplicação. É só instalar
uma cópia da aplicação nele e estamos
bem. Teremos nosso Cluster!”
16
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
“Na camada de banco não é tão simples
assim...”
17
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 18
Xiii... Lá vem esse
cara complicar...
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Standalone Clusterizado
19
Problemas diferentes
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
mysql.com/why-mysql/white-papers/mysql_wp_ha_strategy_guide.php
Escolhendo a melhor solução para sua necessidade
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
21
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
22
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
24
MySQL
Importante!
Backup
No-Break
Duplicidade disco
Duplicidade rede
Etc.
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
25
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
26
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Alta disponibilidade no modo Ativo-Passivo
Topologia com redundância via Shared Storage
Data Access (mysqld)
Data (Shared Storage/SAN)
App Servers
Database connections
27
Ativo
Passivo
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
• Oracle Clusterware é o core do
Oracle RAC
– Para MySQL, funciona no modo
Ativo/Passivo
• Oracle Cluster 12c inclui o MySQL
Server 5.6 agent
• Paradas programadas ou failover
automático
– Transparente para a aplicação
30/07/2016
MySQL Enterprise Edition + Oracle Clusterware
28
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Alta disponibilidade com possibilidade do uso do Slave para outras atividades
Topologia com Replicação Simples (Master-Slave)
29
Master
Read-write
Slave
Read-only
Replicação nativa do
MySQL Escrita
Leitura
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Alta disponibilidade com possibilidade do uso do Slave para outras atividades
Topologia com redundância via Replicação Master-Slave
Slave read-only
(mysqld)
Data (Storage/HD/SDD)
App Servers
Database connections
30
Read-write
Read-only
Replicação
nativa
Master read-write
(mysqld)
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
32
Crie novos Slaves online
https://dev.mysql.com/doc/mysql-enterprise-backup/4.0/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
33
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. | 34
Analogia
34
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
35
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. |
Grandes usuários MySQL usam a replicação
36
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. |
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. |
Contingência em caso de falhas ou manutenção programada
Topologia Replicação Simples
Slave read-only
(mysqld)
Data (Storage/HD/SDD)
App Servers
Database connections
39
Read-write
Read-only
Master read-write
(mysqld)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Contingência em caso de falhas do Master
Topologia Replicação Simples
Novo Master read-write
(mysqld)
Data (Storage/HD/SDD)
App Servers
Database connections
Failover
novas rotas para as
conexões com o MySQL
manual ou automático
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Contingência em caso de falhas ou manutenção programada
Topologia Replicação Simples
Slave read-only
(mysqld)
Data (Storage/HD/SDD)
App Servers
Database connections
41
Read-write
Read-only
Master read-write
(mysqld)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Contingência em caso de manutenção programada do Master
Topologia Replicação Simples
Temporary Master read-write
(mysqld)
Data (Storage/HD/SDD)
App Servers
Database connections
42
Read-write
Inativo
Em Manutenção
replicação parada
Switchover
conexões roteadas para
outro servidor durante
manutenção programada
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
• MySQL Fabric – provê
mapeamento da
topologia para
connector ou router
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
• MySQL Fabric – provê
mapeamento da
topologia para
connector ou router
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Não recomendado uso como Master-Master: sem resolução de conflitos
Topologia de Replicação Cruzada + MySQL Router
45
Master “read-write”
(hot stand-by)
Data (Storage/HD/SDD)
App Servers
MySQL Router
Read-write
Read-only
Master read-write
(ativo)
Heartbeat
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Cuidado com Replicação Cruzada ou bi-direcional
• Este setup é bastante controverso, na maioria das vezes evitado
– Porém, tem seus usos
• Nesse caso anterior, a replicação cruzada é usada por praticidade
– permite simplificar o failover
– facilita resincronização dos dados em casos de falsos positivos, como falhas
temporárias na rede
– use GTID, ROW BASED REPLICATION auto_increment_offset e
auto_increment_increment para evitar problemas
• É importante monitorar e se ambos servidores estão recebendo escritas,
deve-se agir rapidamente para diminuir chances de inconsistências.
46
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
• MySQL Fabric – provê
mapeamento da
topologia para
connector ou router
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Failover automático ou manual e automatizado para o primeiro disponível
MySQL Utilities para HA – mysqlfailover ou MySQL Fabric
Slave read-only
(mysqld)
Data (Storage/HD/SDD)
App Servers
Database connections
48
Read-write
Read-only
Master read-write
(mysqld)
MySQL Utilities
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
MySQL Utilities
shell> mysqlfailover --master=root@localhost:3331 --discover-slaves-login=root --
log=log.txt
MySQL Replication Monitor and Failover Utility
Failover Mode = auto Next Interval = Mon Mar 19 15:56:03 2012
...
Master Information
Binary Log File Position Binlog_Do_DB Binlog_Ignore_DB
mysql-bin.000001 571
GTID Executed Set
2A67DE00-2DA1-11E2-A711-00764F2BE90F:1-7 [...]
49
mysqlfailover
dev.mysql.com/doc/mysql-utilities/1.6/en/mysqlfailover.html
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
MySQL Utilities
Replication Health Status
+------------+-------+---------+--------+------------+---------+
| host | port | role | state | gtid_mode | health |
+------------+-------+---------+--------+------------+---------+
| localhost | 3331 | MASTER | UP | ON | OK |
| localhost | 3332 | SLAVE | UP | ON | OK |
| localhost | 3333 | SLAVE | UP | ON | OK |
| localhost | 3334 | SLAVE | UP | ON | OK |
+------------+-------+---------+--------+------------+---------+
Q-quit R-refresh H-health G-GTID Lists U-UUIDs L-log entries
50
mysqlfailover
dev.mysql.com/doc/mysql-utilities/1.6/en/mysqlfailover.html
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. |
Menor tempo em backups e restores, menos downtime
MySQL Enterprise Backup
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Backup no Slave
Topologia Replicação Simples
Slave parado
(mysqld)
Data (Storage/HD/SDD)
App Servers
Database connections
53
Read-write
Inativo
Master read-write
(mysqld)
Backup
STOP SLAVE
Cópia dos dados
START SLAVE
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Usada como solução de Backup
Topologia com Replicação Atrasada
54
Master Slave para
failover/switchover
Slave com Atraso
Caso típico = falha humana
Delay
CHANGE MASTER TO
MASTER_DELAY = N;
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Usada em conjunto com backup para Point-In-Time-Recovery
Live Backup com mysqlbinlog
55
Master Slave para
failover/switchover
mysqlbinlog
--read-from-remote-server --host=host_name –raw --stop-never
https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog-backup.html
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. |
Geo-redundância para Disaster Recovery
Topologias com múltiplos slaves
57
Site 1
Master
Site 2
Slave
Ativo Passivo
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. |
Dado mais próximo do cliente para Leituras
Topologias com múltiplos slaves
59
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
60
Slave
Master 3
read-write
Master 2
read-write
Master 1
read-write
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Restrições e recomendações para Replicação
• A replicação convencional ocorre na camada de acesso aos dados (SQL),
portanto funciona com qualquer storage engine, mas recomenda-se
InnoDB
• InnoDB é recomendado por ser crash-safe, facilitando operações de crash-
recovery e provisionamento via MEB
• Failover automático requer GTID e Row Format
• A replicação do NDB Cluster é diferente da replicação convencional e
ocorre na camada de dados
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 62
Group Replication: multi-master Ativo-Ativo
Router
App
Virtually Synchronous Replication
App App
labs.mysql.com
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. | 64
MySQL Cluster: Escalabilidade de Escritas
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Resumo das opções
Replication
Shared Disk
Virtualization
Group Replication
Cluster Carrier
Grade Edition
Failover Speed Config. Medium High High
Geo-Redundancy High None Config. High
Scaling Read None Read R/W
Ease of Migration From
Stand-alone InnoDB to HA
Medium High High Low
Zero-Loss During Failure Config. Yes Config. Yes
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. | 67
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 68
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 69
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 70
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 71
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?
73
dev.mysql.com/doc/mysql-utilities/1.6/en/mysql-utils-ha.html
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
MySQL Utilities – Exemplo switchover
shell> mysqlrpladmin --master=root@server2:3312 
--slaves=root@server2:3313,root@server4:3314,root@server5:3315 
--rpl-user=rpl:rpl --new-master=root@server1:3311 --demote-master
switchover
# Checking privileges.
# Performing switchover from master at server2:3312 to slave at server1:3311.
# Checking candidate slave prerequisites.
# Checking slaves configuration to master.
# Waiting for slaves to catch up to old master.
# Stopping slaves.
# Performing STOP on all slaves.
...
74
dev.mysql.com/doc/mysql-utilities/1.6/en/mysql-utils-ha.html
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
MySQL Utilities – Exemplo switchover
...
# Switchover complete.
# Replication Topology Health:
+----------+-------+---------+--------+------------+---------+
| host | port | role | state | gtid_mode | health |
+----------+-------+---------+--------+------------+---------+
| server1 | 3311 | MASTER | UP | ON | OK |
| server2 | 3312 | SLAVE | UP | ON | OK |
| server3 | 3313 | SLAVE | UP | ON | OK |
| server4 | 3314 | SLAVE | UP | ON | OK |
| server5 | 3315 | SLAVE | UP | ON | OK |
+----------+-------+---------+--------+------------+---------+
75
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 para HA
3. Entenda os requisitos, compare as possíveis arquiteturas
e topologias, faça a melhor escolha!
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
@MySQLBR meetup.com/MySQL-BRfacebook.com/MySQLBR
pt.planet.mysql.com
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Obrigado!
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Perguntas?
Alta Disponibilidade no MySQL 5.7
Contato:
airton.lastori@oracle.com
twitter.com/mysqlbr
facebook.com/mysqlbr

Mais conteúdo relacionado

Mais procurados

IBTA - Oracle Database Security
IBTA - Oracle Database SecurityIBTA - Oracle Database Security
IBTA - Oracle Database Security
Rodrigo Almeida
 

Mais procurados (20)

Oracle Premier Support para MySQL
Oracle Premier Support para MySQLOracle Premier Support para MySQL
Oracle Premier Support para MySQL
 
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
 
Alta-disponibilidade com MySQL
Alta-disponibilidade com MySQLAlta-disponibilidade com MySQL
Alta-disponibilidade com MySQL
 
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
 
Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014
 
Arquiteturas de referência MySQL
Arquiteturas de referência MySQLArquiteturas de referência MySQL
Arquiteturas de referência MySQL
 
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
 
MySQL é de graça?
MySQL é de graça?MySQL é de graça?
MySQL é de graça?
 
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
 
IDC Summit 2015 - DBaaS
IDC Summit 2015 - DBaaSIDC Summit 2015 - DBaaS
IDC Summit 2015 - DBaaS
 
IBTA - Oracle Database Security
IBTA - Oracle Database SecurityIBTA - Oracle Database Security
IBTA - Oracle Database Security
 
Oracle Exadata - Consolidação & Migração
Oracle Exadata - Consolidação & MigraçãoOracle Exadata - Consolidação & Migração
Oracle Exadata - Consolidação & Migração
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
 
2014 - IFSP Votuporanga - DBA Career
2014 - IFSP Votuporanga - DBA Career2014 - IFSP Votuporanga - DBA Career
2014 - IFSP Votuporanga - DBA Career
 
Oracle Exadata
Oracle ExadataOracle Exadata
Oracle Exadata
 
Desvendando Oracle Exadata X2-2
Desvendando Oracle Exadata X2-2Desvendando Oracle Exadata X2-2
Desvendando Oracle Exadata X2-2
 
MySQL Enterprise Monitor para Desenvolvedores
MySQL Enterprise Monitor para DesenvolvedoresMySQL Enterprise Monitor para Desenvolvedores
MySQL Enterprise Monitor para Desenvolvedores
 
Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15
 

Semelhante a Alta disponibilidade no MySQL 5.7 GUOB 2016

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
 
Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.
Thiago Rondon
 
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
saulfreitas
 

Semelhante a Alta disponibilidade no MySQL 5.7 GUOB 2016 (20)

Alta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL EnterpriseAlta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL Enterprise
 
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
 
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
 
SQL Day 2016 - SQL Server x Oracle
SQL Day 2016 - SQL Server x OracleSQL Day 2016 - SQL Server x Oracle
SQL Day 2016 - SQL Server x Oracle
 
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...
 
MySQL para Desenvolvedores de Produto
MySQL para Desenvolvedores de ProdutoMySQL para Desenvolvedores de Produto
MySQL para Desenvolvedores de Produto
 
Oracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferençasOracle e SQL Server na prática mitos, semelhanças e diferenças
Oracle e SQL Server na prática mitos, semelhanças e diferenças
 
WebSeminario Oracle
WebSeminario OracleWebSeminario Oracle
WebSeminario Oracle
 
Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.
 
Sessão Avançada: Amazon Aurora - DAT302 - Sao Paulo Summit
Sessão Avançada: Amazon Aurora -  DAT302 - Sao Paulo SummitSessão Avançada: Amazon Aurora -  DAT302 - Sao Paulo Summit
Sessão Avançada: Amazon Aurora - DAT302 - Sao Paulo 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 -
 
OpenLDAP: Porque utilizá-lo
OpenLDAP: Porque utilizá-loOpenLDAP: Porque utilizá-lo
OpenLDAP: Porque utilizá-lo
 
BIG DATA na UFSM
BIG DATA na UFSMBIG DATA na UFSM
BIG DATA na UFSM
 
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
 
Curso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxCurso de Performance and Tuning - Linux
Curso de Performance and Tuning - Linux
 
MySQL + Java - Manuel Contreras
MySQL + Java - Manuel ContrerasMySQL + Java - Manuel Contreras
MySQL + Java - Manuel Contreras
 
Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6Arquitetura do Framework Apache Hadoop 2.6
Arquitetura do Framework Apache Hadoop 2.6
 
Conheça o Cloud Foundry no HCP
Conheça o Cloud Foundry no HCPConheça o Cloud Foundry no HCP
Conheça o Cloud Foundry no HCP
 

Mais de MySQL Brasil

Mais de MySQL Brasil (15)

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
 
Segurança no MySQL
Segurança no MySQLSegurança no MySQL
Segurança no MySQL
 
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...
 

Último

Último (8)

EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo Pagliusi
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
 
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
 

Alta disponibilidade no MySQL 5.7 GUOB 2016

  • 1. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 30 de Julho de 2016 no Hotel Blue Tree Morumbi, São Paulo - SP ALTA DISPONIBILIDADE NO MySQL 5.7 Airton Lastori
  • 2. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | DBA Dev Gerencial, Usuário ou Professor Quem?
  • 3. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Não usa MySQL Usa MySQL sem HA Usa MySQL com HA Quem?
  • 4. 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
  • 5. 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
  • 6. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 7 O chefe
  • 7. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 8 O Desenvolvedor
  • 8. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 9 O DBA
  • 9. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | “Precisamos garantir que a nossa aplicação não pare nunca! Nosso cliente não pode esperar. Perderemos dinheiro e nossa marca ficará prejudicada.” 10
  • 10. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | “Vamos comprar um NoBreak para o Servidor e está tudo certo!” 11
  • 11. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | ... 12
  • 12. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | “Quanto % do tempo o sistema deve ficar no ar?” 13
  • 13. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | “100%, é claro!” 14
  • 14. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | “Desculpe desapontá-lo, mas disponibilidade infinita não existe. Pense em serviços como abastecimento de água ou energia elétrica... Há necessidade de ter redundância e contingência dos equipamentos e processos+ferramentas para a operação” 15
  • 15. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | “Chefe, na verdade precisamos de mais 1 servidor para aplicação. É só instalar uma cópia da aplicação nele e estamos bem. Teremos nosso Cluster!” 16
  • 16. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | “Na camada de banco não é tão simples assim...” 17
  • 17. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 18 Xiii... Lá vem esse cara complicar...
  • 18. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Standalone Clusterizado 19 Problemas diferentes
  • 19. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | mysql.com/why-mysql/white-papers/mysql_wp_ha_strategy_guide.php Escolhendo a melhor solução para sua necessidade
  • 20. 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 21
  • 21. 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 22
  • 22. 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
  • 23. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Sem alta disponibilidade “Topologia” Stand-Alone 24 MySQL Importante! Backup No-Break Duplicidade disco Duplicidade rede Etc.
  • 24. 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 25
  • 25. 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 26
  • 26. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Alta disponibilidade no modo Ativo-Passivo Topologia com redundância via Shared Storage Data Access (mysqld) Data (Shared Storage/SAN) App Servers Database connections 27 Ativo Passivo
  • 27. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | • Oracle Clusterware é o core do Oracle RAC – Para MySQL, funciona no modo Ativo/Passivo • Oracle Cluster 12c inclui o MySQL Server 5.6 agent • Paradas programadas ou failover automático – Transparente para a aplicação 30/07/2016 MySQL Enterprise Edition + Oracle Clusterware 28
  • 28. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Alta disponibilidade com possibilidade do uso do Slave para outras atividades Topologia com Replicação Simples (Master-Slave) 29 Master Read-write Slave Read-only Replicação nativa do MySQL Escrita Leitura
  • 29. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Alta disponibilidade com possibilidade do uso do Slave para outras atividades Topologia com redundância via Replicação Master-Slave Slave read-only (mysqld) Data (Storage/HD/SDD) App Servers Database connections 30 Read-write Read-only Replicação nativa Master read-write (mysqld)
  • 30. 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
  • 31. 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 32 Crie novos Slaves online https://dev.mysql.com/doc/mysql-enterprise-backup/4.0/en/advanced.slave.html
  • 32. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Replicação Semi-síncrona para evitar perda de dados Topologias resilientes 33 Master Slave ACK = Confirmação de recebimento dos pacotes Importante! Há configurações adicionais para tornar a replicação crash-safe
  • 33. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 34 Analogia 34 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)
  • 34. 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 35 Master Slave 1 (local) Primeira opção de failover (sempre mais atualizado) Slave 2 (remoto) Segunda opção de failover
  • 35. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Grandes usuários MySQL usam a replicação 36 Web, Cloud, Distribuído e Embarcado…
  • 36. 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
  • 37. 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
  • 38. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Contingência em caso de falhas ou manutenção programada Topologia Replicação Simples Slave read-only (mysqld) Data (Storage/HD/SDD) App Servers Database connections 39 Read-write Read-only Master read-write (mysqld)
  • 39. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Contingência em caso de falhas do Master Topologia Replicação Simples Novo Master read-write (mysqld) Data (Storage/HD/SDD) App Servers Database connections Failover novas rotas para as conexões com o MySQL manual ou automático
  • 40. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Contingência em caso de falhas ou manutenção programada Topologia Replicação Simples Slave read-only (mysqld) Data (Storage/HD/SDD) App Servers Database connections 41 Read-write Read-only Master read-write (mysqld)
  • 41. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Contingência em caso de manutenção programada do Master Topologia Replicação Simples Temporary Master read-write (mysqld) Data (Storage/HD/SDD) App Servers Database connections 42 Read-write Inativo Em Manutenção replicação parada Switchover conexões roteadas para outro servidor durante manutenção programada
  • 42. 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 • MySQL Fabric – provê mapeamento da topologia para connector ou router
  • 43. 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 • MySQL Fabric – provê mapeamento da topologia para connector ou router
  • 44. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Não recomendado uso como Master-Master: sem resolução de conflitos Topologia de Replicação Cruzada + MySQL Router 45 Master “read-write” (hot stand-by) Data (Storage/HD/SDD) App Servers MySQL Router Read-write Read-only Master read-write (ativo) Heartbeat
  • 45. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Cuidado com Replicação Cruzada ou bi-direcional • Este setup é bastante controverso, na maioria das vezes evitado – Porém, tem seus usos • Nesse caso anterior, a replicação cruzada é usada por praticidade – permite simplificar o failover – facilita resincronização dos dados em casos de falsos positivos, como falhas temporárias na rede – use GTID, ROW BASED REPLICATION auto_increment_offset e auto_increment_increment para evitar problemas • É importante monitorar e se ambos servidores estão recebendo escritas, deve-se agir rapidamente para diminuir chances de inconsistências. 46
  • 46. 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 • MySQL Fabric – provê mapeamento da topologia para connector ou router
  • 47. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Failover automático ou manual e automatizado para o primeiro disponível MySQL Utilities para HA – mysqlfailover ou MySQL Fabric Slave read-only (mysqld) Data (Storage/HD/SDD) App Servers Database connections 48 Read-write Read-only Master read-write (mysqld) MySQL Utilities
  • 48. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | MySQL Utilities shell> mysqlfailover --master=root@localhost:3331 --discover-slaves-login=root -- log=log.txt MySQL Replication Monitor and Failover Utility Failover Mode = auto Next Interval = Mon Mar 19 15:56:03 2012 ... Master Information Binary Log File Position Binlog_Do_DB Binlog_Ignore_DB mysql-bin.000001 571 GTID Executed Set 2A67DE00-2DA1-11E2-A711-00764F2BE90F:1-7 [...] 49 mysqlfailover dev.mysql.com/doc/mysql-utilities/1.6/en/mysqlfailover.html
  • 49. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | MySQL Utilities Replication Health Status +------------+-------+---------+--------+------------+---------+ | host | port | role | state | gtid_mode | health | +------------+-------+---------+--------+------------+---------+ | localhost | 3331 | MASTER | UP | ON | OK | | localhost | 3332 | SLAVE | UP | ON | OK | | localhost | 3333 | SLAVE | UP | ON | OK | | localhost | 3334 | SLAVE | UP | ON | OK | +------------+-------+---------+--------+------------+---------+ Q-quit R-refresh H-health G-GTID Lists U-UUIDs L-log entries 50 mysqlfailover dev.mysql.com/doc/mysql-utilities/1.6/en/mysqlfailover.html
  • 50. 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
  • 51. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Menor tempo em backups e restores, menos downtime MySQL Enterprise Backup
  • 52. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Backup no Slave Topologia Replicação Simples Slave parado (mysqld) Data (Storage/HD/SDD) App Servers Database connections 53 Read-write Inativo Master read-write (mysqld) Backup STOP SLAVE Cópia dos dados START SLAVE
  • 53. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Usada como solução de Backup Topologia com Replicação Atrasada 54 Master Slave para failover/switchover Slave com Atraso Caso típico = falha humana Delay CHANGE MASTER TO MASTER_DELAY = N;
  • 54. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Usada em conjunto com backup para Point-In-Time-Recovery Live Backup com mysqlbinlog 55 Master Slave para failover/switchover mysqlbinlog --read-from-remote-server --host=host_name –raw --stop-never https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog-backup.html
  • 55. 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
  • 56. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Geo-redundância para Disaster Recovery Topologias com múltiplos slaves 57 Site 1 Master Site 2 Slave Ativo Passivo
  • 57. 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
  • 58. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Dado mais próximo do cliente para Leituras Topologias com múltiplos slaves 59 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
  • 59. 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 60 Slave Master 3 read-write Master 2 read-write Master 1 read-write
  • 60. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Restrições e recomendações para Replicação • A replicação convencional ocorre na camada de acesso aos dados (SQL), portanto funciona com qualquer storage engine, mas recomenda-se InnoDB • InnoDB é recomendado por ser crash-safe, facilitando operações de crash- recovery e provisionamento via MEB • Failover automático requer GTID e Row Format • A replicação do NDB Cluster é diferente da replicação convencional e ocorre na camada de dados
  • 61. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 62 Group Replication: multi-master Ativo-Ativo Router App Virtually Synchronous Replication App App labs.mysql.com
  • 62. 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
  • 63. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 64 MySQL Cluster: Escalabilidade de Escritas
  • 64. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Resumo das opções Replication Shared Disk Virtualization Group Replication Cluster Carrier Grade Edition Failover Speed Config. Medium High High Geo-Redundancy High None Config. High Scaling Read None Read R/W Ease of Migration From Stand-alone InnoDB to HA Medium High High Low Zero-Loss During Failure Config. Yes Config. Yes
  • 65. 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
  • 66. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 67
  • 67. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 68
  • 68. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 69
  • 69. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 70
  • 70. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 71
  • 71. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
  • 72. 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? 73 dev.mysql.com/doc/mysql-utilities/1.6/en/mysql-utils-ha.html
  • 73. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | MySQL Utilities – Exemplo switchover shell> mysqlrpladmin --master=root@server2:3312 --slaves=root@server2:3313,root@server4:3314,root@server5:3315 --rpl-user=rpl:rpl --new-master=root@server1:3311 --demote-master switchover # Checking privileges. # Performing switchover from master at server2:3312 to slave at server1:3311. # Checking candidate slave prerequisites. # Checking slaves configuration to master. # Waiting for slaves to catch up to old master. # Stopping slaves. # Performing STOP on all slaves. ... 74 dev.mysql.com/doc/mysql-utilities/1.6/en/mysql-utils-ha.html
  • 74. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | MySQL Utilities – Exemplo switchover ... # Switchover complete. # Replication Topology Health: +----------+-------+---------+--------+------------+---------+ | host | port | role | state | gtid_mode | health | +----------+-------+---------+--------+------------+---------+ | server1 | 3311 | MASTER | UP | ON | OK | | server2 | 3312 | SLAVE | UP | ON | OK | | server3 | 3313 | SLAVE | UP | ON | OK | | server4 | 3314 | SLAVE | UP | ON | OK | | server5 | 3315 | SLAVE | UP | ON | OK | +----------+-------+---------+--------+------------+---------+ 75
  • 75. 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
  • 76. 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 para HA 3. Entenda os requisitos, compare as possíveis arquiteturas e topologias, faça a melhor escolha!
  • 77. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | @MySQLBR meetup.com/MySQL-BRfacebook.com/MySQLBR pt.planet.mysql.com
  • 78. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Obrigado!
  • 79. Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Perguntas? Alta Disponibilidade no MySQL 5.7 Contato: airton.lastori@oracle.com twitter.com/mysqlbr facebook.com/mysqlbr