Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Backup Online no MySQL com Percona Xtrabackup

Backup Online no MySQL com Percona Xtrabackup

Percona XtraBackup é uma ferramenta open-source para backup online de servidores MySQL que não trava as escritas no seu banco durante a operação.
Nessa palestra vamos abordar o seu funcionamento básico e trazer atualizações das mais recentes funcionalidades adicionadas no produto, como:
- Page Tracking
- Azure Blob Storage Support
- Exponential Backoff
- Keyring Components
- Memory Estimation
- ZSTD

Marcelo Altmann

October 01, 2020
Tweet

More Decks by Marcelo Altmann

Other Decks in Technology

Transcript

  1. 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)
  2. Percona Xtrabackup - Overview • Open Source - 100% de

    graça • https://github.com/percona/percona-xtrabackup • Backup físico (MySQL & Percona Server / XtraDB Cluster) • Online - Não bloqueia escritas • Possibilita Backups: ◦ Full ◦ Incremental ◦ Differential
  3. Percona Xtrabackup - Overview • Backup Compactado • Backup Criptografado

    • Backup local • Streaming - xbstream ( https://bit.ly/xbstream-format ) • Upload para cloud (S3, Azure, GCP, Swift) - xbcloud
  4. 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).
  5. Xtrabackup - Incremental • Utiliza como base o LSN do

    último checkpoint do full ( 50 ) • Redo follow thread (igual ao full)
  6. 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”
  7. 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
  8. 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.
  9. 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
  10. 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.
  11. Xtrabackup - Log Redesign • 8.0.28-20 - Log output re-criado

    • Utiliza o mesmo layout de mensagens que o servidor • Possibilita uma melhor leitura
  12. 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
  13. 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.
  14. 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.
  15. Xtrabackup - Memory Estimation • Padrão é 128M • Não

    é suficiente para a maioria dos casos • Pode ser ajustado utilizando --use-memory
  16. 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.