alta disponibilidade com mysql enterprise

46
Alta Disponibilidade com MySQL Enterprise Airton Lastori [email protected] Maio-2017

Upload: mysql-brasil

Post on 21-Jan-2018

153 views

Category:

Technology


7 download

TRANSCRIPT

Page 1: Alta disponibilidade com MySQL Enterprise

Alta Disponibilidade com MySQL Enterprise

Airton Lastori [email protected] Maio-2017

Page 2: Alta disponibilidade com MySQL Enterprise

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 3: Alta disponibilidade com MySQL Enterprise

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 com MySQL Enterprise

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

Page 6: Alta disponibilidade com MySQL Enterprise

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…

Page 7: Alta disponibilidade com MySQL Enterprise

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 9: Alta disponibilidade com MySQL Enterprise

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

Page 10: Alta disponibilidade com MySQL Enterprise

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

Page 11: Alta disponibilidade com MySQL Enterprise

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)

Page 12: Alta disponibilidade com MySQL Enterprise

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

Page 13: Alta disponibilidade com MySQL Enterprise

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

Page 14: Alta disponibilidade com MySQL Enterprise

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

Page 15: Alta disponibilidade com MySQL Enterprise

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 16: Alta disponibilidade com MySQL Enterprise

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.

Page 17: Alta disponibilidade com MySQL Enterprise

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

Menor tempo em backups e restores, menos downtime

MySQL Enterprise Backup

Page 18: Alta disponibilidade com MySQL Enterprise

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

Page 19: Alta disponibilidade com MySQL Enterprise

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

Page 20: Alta disponibilidade com MySQL Enterprise

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

Page 21: Alta disponibilidade com MySQL Enterprise

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

Page 22: Alta disponibilidade com MySQL Enterprise

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

Page 23: Alta disponibilidade com MySQL Enterprise

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

Page 24: Alta disponibilidade com MySQL Enterprise

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

Page 25: Alta disponibilidade com MySQL Enterprise

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

Page 26: Alta disponibilidade com MySQL Enterprise

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

Page 27: Alta disponibilidade com MySQL Enterprise

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

Master-Slave Replication

Replication vs. Group Replication

Group Replication

Router Router Router

App App App

VIP

mysqlfailover

Read-write

Read-only

Page 29: Alta disponibilidade com MySQL Enterprise

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

Page 32: Alta disponibilidade com MySQL Enterprise

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 34

MySQL Cluster: Escalabilidade de Escritas

Page 33: Alta disponibilidade com MySQL Enterprise

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 34: Alta disponibilidade com MySQL Enterprise

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

Page 35: Alta disponibilidade com MySQL Enterprise

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 36: Alta disponibilidade com MySQL Enterprise

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 38

Page 37: Alta disponibilidade com MySQL Enterprise

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 39

Page 38: Alta disponibilidade com MySQL Enterprise

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 40

Page 39: Alta disponibilidade com MySQL Enterprise

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 41

Page 40: Alta disponibilidade com MySQL Enterprise

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

Page 41: Alta disponibilidade com MySQL Enterprise

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

Page 42: Alta disponibilidade com MySQL Enterprise

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

Page 43: Alta disponibilidade com MySQL Enterprise

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 44: Alta disponibilidade com MySQL Enterprise

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

Page 45: Alta disponibilidade com MySQL Enterprise

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

Obrigado!

Page 46: Alta disponibilidade com MySQL Enterprise

Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |

Perguntas?

Alta Disponibilidade com MySQL Enterprise Contato: [email protected] twitter.com/mysqlbr facebook.com/mysqlbr