Alta disponibilidade no MySQL 5.7 GUOB 2016
-
Upload
mysql-brasil -
Category
Technology
-
view
455 -
download
2
Transcript of Alta disponibilidade no MySQL 5.7 GUOB 2016
![Page 1: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/1.jpg)
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
![Page 2: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/2.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
DBA Dev Gerencial, Usuário
ou Professor
Quem?
![Page 3: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/3.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Não usa MySQL Usa MySQL sem
HA Usa MySQL com
HA
Quem?
![Page 4: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/4.jpg)
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
![Page 5: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/5.jpg)
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
![Page 6: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/6.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 7
O chefe
![Page 7: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/7.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 8
O Desenvolvedor
![Page 8: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/8.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 9
O DBA
![Page 9: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/9.jpg)
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
![Page 10: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/10.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
“Vamos comprar um NoBreak para o Servidor e está tudo certo!”
11
![Page 11: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/11.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
...
12
![Page 12: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/12.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
“Quanto % do tempo o sistema deve ficar no ar?”
13
![Page 13: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/13.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
“100%, é claro!”
14
![Page 14: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/14.jpg)
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
![Page 15: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/15.jpg)
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
![Page 16: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/16.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
“Na camada de banco não é tão simples assim...”
17
![Page 17: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/17.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 18
Xiii... Lá vem esse cara complicar...
![Page 18: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/18.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Standalone
Clusterizado
19
Problemas diferentes
![Page 19: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/19.jpg)
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
![Page 20: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/20.jpg)
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
![Page 21: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/21.jpg)
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
![Page 22: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/22.jpg)
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
![Page 23: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/23.jpg)
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.
![Page 24: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/24.jpg)
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
![Page 25: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/25.jpg)
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
![Page 26: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/26.jpg)
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
![Page 27: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/27.jpg)
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
![Page 28: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/28.jpg)
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
![Page 29: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/29.jpg)
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)
![Page 30: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/30.jpg)
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/tutorial-replicacao-mysql-em-5-minutos.html
![Page 31: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/31.jpg)
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
![Page 32: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/32.jpg)
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
![Page 33: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/33.jpg)
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)
![Page 34: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/34.jpg)
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
![Page 35: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/35.jpg)
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…
![Page 36: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/36.jpg)
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
![Page 37: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/37.jpg)
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
![Page 38: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/38.jpg)
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)
![Page 39: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/39.jpg)
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
![Page 40: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/40.jpg)
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)
![Page 41: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/41.jpg)
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
![Page 42: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/42.jpg)
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
![Page 43: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/43.jpg)
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
![Page 44: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/44.jpg)
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
![Page 45: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/45.jpg)
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
![Page 46: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/46.jpg)
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
![Page 47: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/47.jpg)
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
![Page 48: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/48.jpg)
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
![Page 49: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/49.jpg)
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
![Page 50: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/50.jpg)
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
![Page 51: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/51.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Menor tempo em backups e restores, menos downtime
MySQL Enterprise Backup
![Page 52: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/52.jpg)
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
![Page 53: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/53.jpg)
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;
![Page 54: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/54.jpg)
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
![Page 55: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/55.jpg)
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
![Page 56: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/56.jpg)
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
![Page 57: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/57.jpg)
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
![Page 58: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/58.jpg)
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
![Page 59: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/59.jpg)
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
![Page 60: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/60.jpg)
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
![Page 61: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/61.jpg)
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
![Page 62: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/62.jpg)
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
![Page 63: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/63.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 64
MySQL Cluster: Escalabilidade de Escritas
![Page 64: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/64.jpg)
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
![Page 65: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/65.jpg)
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
![Page 66: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/66.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 67
![Page 67: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/67.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 68
![Page 68: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/68.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 69
![Page 69: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/69.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 70
![Page 70: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/70.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 71
![Page 71: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/71.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
![Page 72: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/72.jpg)
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
![Page 73: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/73.jpg)
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
![Page 74: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/74.jpg)
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
![Page 75: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/75.jpg)
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
![Page 76: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/76.jpg)
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!
![Page 77: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/77.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
@MySQLBR meetup.com/MySQL-BR facebook.com/MySQLBR
pt.planet.mysql.com
![Page 78: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/78.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Obrigado!
![Page 79: Alta disponibilidade no MySQL 5.7 GUOB 2016](https://reader031.fdocuments.net/reader031/viewer/2022030401/58adee911a28abeb2e8b63cf/html5/thumbnails/79.jpg)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
Perguntas?
Alta Disponibilidade no MySQL 5.7 Contato: [email protected] twitter.com/mysqlbr facebook.com/mysqlbr