Slide 1

Slide 1 text

© 2020 Percona 1 Marcelo Altmann Backup para MySQL Software Engineer MySQL Brazil Virtual Meetup 23/07/2020

Slide 2

Slide 2 text

© 2020 Percona 2 Sobre Mim

Slide 3

Slide 3 text

© 2020 Percona 3 Marcelo Altmann ▪Desenvolvedor @ percona • Engenheiro de Suporte Senior @ percona • Líder Técnico @ percona • MySQL DBA @ IEDR (CCTLD Irlanda) ▪Tecnologo em Sistemas para Internet @ Feevale ▪Oracle ACE Associate ▪blog.marceloaltmann.com ▪Certificaçoes • OCP, MySQL 5.7 Database Administrator • OCP, MySQL 5.6 Database Administrator • OCP, MySQL 5.6 Developer • OCP, MySQL 5 Database Administrator • OCP, MySQL 5 Developer • OCP, MySQL 5.0/5.1/5.5

Slide 4

Slide 4 text

© 2020 Percona 4 Por que fazer backup?

Slide 5

Slide 5 text

© 2020 Percona 5 Por que fazer backup? Motivo ▪Segurança dos dados ▪Provisionar replicas ▪Testar software em ambientes de homologação / teste ▪Point in time recovery ▪Disaster recovery • Corrupção de dados • Invasão do banco / sistema • Bugs no software • Falhas de hardware

Slide 6

Slide 6 text

© 2020 Percona 6 Por que fazer backup? Objetivo ▪Estar preparado para o maior leque de possibilidades ▪Minimizar Downtime

Slide 7

Slide 7 text

© 2020 Percona 7 Tipos de backup

Slide 8

Slide 8 text

© 2020 Percona 8 Replicação como backup? Sim ▪Crashes ▪Corrupção física ▪Falhas de hardware • CPU • Disco • RAM • Rede

Slide 9

Slide 9 text

© 2020 Percona 9 Replicação como backup? Não ▪Bugs na aplicação ▪Database hackeada ▪Erro operacional

Slide 10

Slide 10 text

© 2020 Percona 10 Replicação como backup? Não ▪Erro operacional • DROP sem WHERE • Ambiente de produção?!?!?! Achei que estava conectado no DEV

Slide 11

Slide 11 text

© 2020 Percona 11 Lógico ▪Estrutura e dados salvos em plain-text ▪CREATE DATABASE / TABLE / INSERT INTO … ▪Pode ser usado facilmente para restore seletivo ▪Não carrega fragmentação / corrupção ▪Recria toda a estrutura física do arquivo no disco. ▪Restore mais lento ▪Ferramentas: mysqldump / my[dumper|loader] / mysqlpump

Slide 12

Slide 12 text

© 2020 Percona 12 Físico ▪Cópia física do arquivos do banco ▪Restore rápido ▪Um pouco mais complicado para restore seletivo ▪Corrupção e Fragmentação são levadas a frente ▪Ferramentas: Percona Xtrabackup / MEB / MariaBackup / snapshot / rsync

Slide 13

Slide 13 text

© 2020 Percona 13 Diferencial ▪Cópia completa do banco ▪Cada cópia diferencial contém todos os dados desde o backup completo • Segunda: Completo • Terça: Diferencial desde segunda • Quarta: Diferencial desde segunda • Quinta: Diferencial desde segunda

Slide 14

Slide 14 text

© 2020 Percona 14 Diferencial ▪Restore evento na quinta feira: • Completo de segunda • Diferencial tirado na quinta

Slide 15

Slide 15 text

© 2020 Percona 15 Incremental ▪Cópia completa do banco ▪Cada cópia incremental contém os dados desde o último backup • Segunda: Completo • Terça: incremental desde segunda • Quarta: incremental desde terça • Quinta: incremental desde quarta

Slide 16

Slide 16 text

© 2020 Percona 16 Incremental ▪Restore evento na quinta feira: • Completo tirado na segunda • Aplicar incremental de terça no completo de segunda • Aplicar incremental de quarta no backup segunda+terça • Aplicar incremental de quinta no backup segunda+terça+quarta

Slide 17

Slide 17 text

© 2020 Percona 17 Backup Pronto ?

Slide 18

Slide 18 text

© 2020 Percona 18 N Ã O ! ! !

Slide 19

Slide 19 text

© 2020 Percona 19 Compactar ▪Ocupar menos espaço (pode se guardar mais backups) ▪Quando feito stream, requer menos tráfego de rede ▪Aumenta o tempo tanto de backup quanto restore ▪PXB (qpress): • xtrabackup --backup --compress \ --parallel=4 --compress-threads=4 --target-dir=/backup/ ▪Zip / gzip / bzip / . . .

Slide 20

Slide 20 text

© 2020 Percona 20 Criptografar ▪Mantém o backup seguro a acessos indesejados ▪Openssl / GPG ▪PXB • xtrabackup --backup --parallel=4 --encrypt-threads=4 --encrypt=AES256 \ --encrypt-key-file=/data/backups/keyfile --target-dir=/data/backups • xtrabackup --parallel=4 --decrypt=AES256 \ --encrypt-key-file=/data/backups/keyfile --target-dir=/data/backups

Slide 21

Slide 21 text

© 2020 Percona 21 Armazenar

Slide 22

Slide 22 text

© 2020 Percona 22 Armazenar ▪Onde armazenar os backups? • Mesmo servidor?

Slide 23

Slide 23 text

© 2020 Percona 23 Armazenar ▪Onde armazenar os backups? • Mesmo servidor?

Slide 24

Slide 24 text

© 2020 Percona 24 Armazenar ▪Onde armazenar os backups? • Mesmo servidor? • Mesmo datacenter?

Slide 25

Slide 25 text

© 2020 Percona 25 Armazenar ▪Onde armazenar os backups? • Mesmo servidor? • Mesmo datacenter? • Mesma região ?

Slide 26

Slide 26 text

© 2020 Percona 26 Armazenar ▪Onde armazenar os backups? • Mesmo servidor? • Mesmo datacenter? • Mesma região ? ▪Qual tipo / magnitude de desastre natural meus dados devem sobreviver?

Slide 27

Slide 27 text

© 2020 Percona 27 A T E N Ç Ã O ! ! ! I M P O R T A N T E ! ! !

Slide 28

Slide 28 text

© 2020 Percona 28 Restaurar

Slide 29

Slide 29 text

© 2020 Percona 29 Restaurar ▪Parte mais importante de uma estratégia de backup ▪Ter backup e não testar o restore é o mesmo que não ter backup! ▪Consigo restaurar ? ▪Qual o processo para restaurar? • Copiar da origem e mandar pro destino • Descriptografar / descompactar / preparar / subir a base ▪Quanto tempo leva ?

Slide 30

Slide 30 text

© 2020 Percona 30 Validar o backup

Slide 31

Slide 31 text

© 2020 Percona 31 Validar o backup ▪Validar que o backup realmente tem os dados que deve ter ▪Restaurar o backup em um servidor/vm/container zerado ▪Configurar o servidor como slave do master original • Quanto tempo leva para ficar em sincronia? ▪Meu dado está consistente? ▪Rodar pt-table-checksum ▪Testar PITR (Point In Time Recovery)

Slide 32

Slide 32 text

© 2020 Percona 32 Backup de logs binarios

Slide 33

Slide 33 text

© 2020 Percona 33 Backup de logs binarios ▪Possibilita restaurar o banco de dados a um ponto específico no passado • DELETE sem WHERE • Aplicação corrompeu/destruiu dados ▪Mysqlbinlog • mysqlbinlog --read-from-remote-server --stop-never --raw ▪Maxscale binlog server

Slide 34

Slide 34 text

© 2020 Percona 34 Período de retenção

Slide 35

Slide 35 text

© 2020 Percona 35 Período de retenção ▪Quanto tempo no passado deve conseguir voltar meus dados? ▪Como armazenar este dado • Mídias devagar ▪Esteja preparado para restaurar

Slide 36

Slide 36 text

© 2020 Percona 36 Perguntas?

Slide 37

Slide 37 text

© 2020 Percona 37 PXB DEMO TIME!!!

Slide 38

Slide 38 text

DATABASE PERFORMANCE MATTERS Database Performance Matters Database Performance Matters Database Performance Matters Database Performance Matters Database Performance Matters Obrigado!