O documento apresenta o Percona Xtrabackup, uma ferramenta open source para realizar backups online no MySQL de forma não bloqueante. O autor descreve o funcionamento básico do backup, prepare e incremental, além de novas funcionalidades como page tracking, criptografia, armazenamento em nuvem e melhorias de desempenho.
Percona Live London 2014 - MySQL Backup Strategy @ IEDR
Backup Online no MySQL com Percona Xtrabackup
1. Backup Online no MySQL com
Percona Xtrabackup
Marcelo Altmann
1/10/2022
Apoio:
2. Marcelo Altmann
● Desenvolvedor C++ no Time de MySQL
(PS/PXC/PXB) na Percona
● Bug Escalation Committee
● Na Percona desde 2016
● 6 certificações MySQL
● Oracle ACE
● Palestrante (Brasil, Inglaterra, Irlanda,
Estados Unidos)
9. InnoDB - Layout das tabelas em disco
Last Sequence Number(LSN)
Número de bytes escritos até
o momento.
Utilizado como identificador
de versão de páginas /
blocos (Não é MVCC).
27. Xtrabackup - Incremental - Page Tracking
● Suporte adicionado na versão 8.0.27-19
● Funciona como componente ao lado do servidor
● Cria um mapeamento direto para as páginas que foram
alteradas após um LSN
● PXB recebe direto do servidor a lista completa das
páginas com “deltas”
28. Xtrabackup - Incremental - Page Tracking
● Teste com 1% de páginas modificadas em dataset de 100G
● Sem Page Tracking = 5 minutos
● Com Page Tracking = 30 segundos
● --backup mais rápido = menos redo log para aplicar = --
prepare mais rápido
29. Xtrabackup - Keyring Components
● MySQL TDE - Transparent Data Encryption
● Cada entidade (Tabela, Redo, Undo, Double Write, Binlog)
possui um par de chaves no seu cabeçalho.
● Essas chaves são utilizadas para criptografar os dados.
● As chaves são armazenadas criptografadas nas entidades.
● O keyring component fornece a chamada Master Key,
responsável por descriptografar o par de chaves de cada
entidade.
30. Xtrabackup - Keyring Components
● 8.0.27-19 - Adicionado suporte a KMIP (Key Management
Interoperability Protocol)
● Open Standard Protocol desenvolvido pela OASIS -
Organização focada em desenvolvimento de padrões de
segurança
● Hashicorp Vault Enterprise - KMIP Secrets
● IBM
● Outras
31. Xtrabackup - Keyring Components
● 8.0.28-20 - Adicionado suporte a KMS (AWS Key
Management Service)
● Disponível como serviço na AWS
● Similar ao Keyring File, porém as chaves são guardadas
criptografadas em disco.
32. Xtrabackup - Log Redesign
● 8.0.28-20 - Log output re-criado
● Utiliza o mesmo layout de mensagens que o servidor
● Possibilita uma melhor leitura
35. Xtrabackup - Azure Blob Storage
● 8.0.27-19 - Adicionado suporte ao Azure Blob Storage ao
xbcloud
● Possibilita fazer upload de backups locais direto para
Azure
● S3 / Google Cloud / Swift
36. Xtrabackup - ZSTD
● 8.0.30-23 - Adicionado suporte de compressão ZSTD
(Zstandard)
● Algoritmo de compressão de dados desenvolvido no
Facebook
● Em comparação com LZ4 consegue compression ratio
superior.
39. Xtrabackup - Smart Memory Estimation
● 8.0.30-23 - Adicionado suporte a Smart Memory Estimation
● Usado para fazer tunning do Buffer Pool durante --prepare (ajustar
o padrão)
○ 512 páginas para dados das tabelas.
○ O restante é utilizado para agrupar registros do redo log.
○ Se a memória estiver cheia, se considera estes dados um batch.
○ O batch é aplicado e o agrupamento de registros continua até
que se conclua todos os registros.
40. Xtrabackup - Memory Estimation
● Padrão é 128M
● Não é suficiente para a maioria dos casos
● Pode ser ajustado utilizando --use-memory
42. Xtrabackup - Roadmap
● MySQL 8.0.30 - Redo Log Redesign
● MyRocks Incremental Backups - #1272
● Xtrabackup / XBstream / XBCloud - FIFO datasink para
redes com largura de banda superior a 1 Gbps.
● Melhorar usabilidade para restore seletivo de tabelas.