SlideShare uma empresa Scribd logo
Backup Online no MySQL com
Percona Xtrabackup
Marcelo Altmann
1/10/2022
Apoio:
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)
Marcelo Altmann
● Code Contributor
Agenda
● Overview
● Funcionamento Básico (backup, prepare, incremental)
● Novas funcionalidades
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
Percona Xtrabackup - Overview
● Backup Compactado
● Backup Criptografado
● Backup local
● Streaming - xbstream ( https://bit.ly/xbstream-format )
● Upload para cloud (S3, Azure, GCP, Swift) - xbcloud
InnoDB - Componentes
InnoDB - Layout das tabelas em disco
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).
InnoDB - Layout das tabelas em disco
InnoDB - Redo Log (WAL)
InnoDB - Redo Log (WAL)
InnoDB - Buffer Pool
InnoDB - Escrita
InnoDB - Escrita
InnoDB - Escrita
InnoDB - Escrita
Xtrabackup - Backup
Xtrabackup - Backup
Xtrabackup - Backup
Xtrabackup - Backup
Xtrabackup - Backup
Xtrabackup - Prepare
Xtrabackup - Incremental
● Utiliza como base o LSN do último checkpoint do full ( 50 )
● Redo follow thread (igual ao full)
Xtrabackup - Incremental
● INSERT INTO tabela1 VALUES (...)
Xtrabackup - Incremental
● UPDATE tabela1 SET ...
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”
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
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.
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
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.
Xtrabackup - Log Redesign
● 8.0.28-20 - Log output re-criado
● Utiliza o mesmo layout de mensagens que o servidor
● Possibilita uma melhor leitura
Xtrabackup - Log Redesign
Xtrabackup - Log Redesign
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
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.
Xtrabackup - ZSTD
Xtrabackup - ZSTD
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.
Xtrabackup - Memory Estimation
● Padrão é 128M
● Não é suficiente para a maioria dos casos
● Pode ser ajustado utilizando --use-memory
Xtrabackup - Memory Estimation
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.
Perguntas?
Estamos contratando
Apoio:
Obrigado!

Mais conteúdo relacionado

Mais procurados

InnoDB Internal
InnoDB InternalInnoDB Internal
InnoDB Internal
mysqlops
 
Percona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient BackupsPercona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient Backups
Mydbops
 
Exploring Oracle Database 12c Multitenant best practices for your Cloud
Exploring Oracle Database 12c Multitenant best practices for your CloudExploring Oracle Database 12c Multitenant best practices for your Cloud
Exploring Oracle Database 12c Multitenant best practices for your Cloud
dyahalom
 
MySQL Architecture and Engine
MySQL Architecture and EngineMySQL Architecture and Engine
MySQL Architecture and Engine
Abdul Manaf
 
Handling Schema Changes Using pt-online-schema change.
Handling Schema Changes Using pt-online-schema change.Handling Schema Changes Using pt-online-schema change.
Handling Schema Changes Using pt-online-schema change.
Mydbops
 
Full Text Search In PostgreSQL
Full Text Search In PostgreSQLFull Text Search In PostgreSQL
Full Text Search In PostgreSQL
Karwin Software Solutions LLC
 
[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google Cloud[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google Cloud
PgDay.Seoul
 
MongoDB Memory Management Demystified
MongoDB Memory Management DemystifiedMongoDB Memory Management Demystified
MongoDB Memory Management Demystified
MongoDB
 
Tuning linux for mongo db
Tuning linux for mongo dbTuning linux for mongo db
Tuning linux for mongo db
Soumya Bhattacharyya
 
Practical Partitioning in Production with Postgres
Practical Partitioning in Production with PostgresPractical Partitioning in Production with Postgres
Practical Partitioning in Production with Postgres
EDB
 
Redo log improvements MYSQL 8.0
Redo log improvements MYSQL 8.0Redo log improvements MYSQL 8.0
Redo log improvements MYSQL 8.0
Mydbops
 
How Scylla Manager Handles Backups
How Scylla Manager Handles BackupsHow Scylla Manager Handles Backups
How Scylla Manager Handles Backups
ScyllaDB
 
Getting The Most Out Of Your Flash/SSDs
Getting The Most Out Of Your Flash/SSDsGetting The Most Out Of Your Flash/SSDs
Getting The Most Out Of Your Flash/SSDs
Aerospike, Inc.
 
Deploying PostgreSQL on Kubernetes
Deploying PostgreSQL on KubernetesDeploying PostgreSQL on Kubernetes
Deploying PostgreSQL on Kubernetes
Jimmy Angelakos
 
Modularisation techniques new
Modularisation techniques newModularisation techniques new
Modularisation techniques new
Jeet Thombare
 
Slice Recycling Performance and Pitfalls
Slice Recycling Performance and PitfallsSlice Recycling Performance and Pitfalls
Slice Recycling Performance and Pitfalls
David Golden
 
InnoDB Flushing and Checkpoints
InnoDB Flushing and CheckpointsInnoDB Flushing and Checkpoints
InnoDB Flushing and Checkpoints
MIJIN AN
 
Informix HA Best Practices
Informix HA Best Practices Informix HA Best Practices
Informix HA Best Practices
Scott Lashley
 
Firebase presentation
Firebase presentationFirebase presentation
Firebase presentation
Haouzi Ameur Younes
 
10 ways to improve your rman script
10 ways to improve your rman script10 ways to improve your rman script
10 ways to improve your rman script
Maris Elsins
 

Mais procurados (20)

InnoDB Internal
InnoDB InternalInnoDB Internal
InnoDB Internal
 
Percona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient BackupsPercona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient Backups
 
Exploring Oracle Database 12c Multitenant best practices for your Cloud
Exploring Oracle Database 12c Multitenant best practices for your CloudExploring Oracle Database 12c Multitenant best practices for your Cloud
Exploring Oracle Database 12c Multitenant best practices for your Cloud
 
MySQL Architecture and Engine
MySQL Architecture and EngineMySQL Architecture and Engine
MySQL Architecture and Engine
 
Handling Schema Changes Using pt-online-schema change.
Handling Schema Changes Using pt-online-schema change.Handling Schema Changes Using pt-online-schema change.
Handling Schema Changes Using pt-online-schema change.
 
Full Text Search In PostgreSQL
Full Text Search In PostgreSQLFull Text Search In PostgreSQL
Full Text Search In PostgreSQL
 
[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google Cloud[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google Cloud
 
MongoDB Memory Management Demystified
MongoDB Memory Management DemystifiedMongoDB Memory Management Demystified
MongoDB Memory Management Demystified
 
Tuning linux for mongo db
Tuning linux for mongo dbTuning linux for mongo db
Tuning linux for mongo db
 
Practical Partitioning in Production with Postgres
Practical Partitioning in Production with PostgresPractical Partitioning in Production with Postgres
Practical Partitioning in Production with Postgres
 
Redo log improvements MYSQL 8.0
Redo log improvements MYSQL 8.0Redo log improvements MYSQL 8.0
Redo log improvements MYSQL 8.0
 
How Scylla Manager Handles Backups
How Scylla Manager Handles BackupsHow Scylla Manager Handles Backups
How Scylla Manager Handles Backups
 
Getting The Most Out Of Your Flash/SSDs
Getting The Most Out Of Your Flash/SSDsGetting The Most Out Of Your Flash/SSDs
Getting The Most Out Of Your Flash/SSDs
 
Deploying PostgreSQL on Kubernetes
Deploying PostgreSQL on KubernetesDeploying PostgreSQL on Kubernetes
Deploying PostgreSQL on Kubernetes
 
Modularisation techniques new
Modularisation techniques newModularisation techniques new
Modularisation techniques new
 
Slice Recycling Performance and Pitfalls
Slice Recycling Performance and PitfallsSlice Recycling Performance and Pitfalls
Slice Recycling Performance and Pitfalls
 
InnoDB Flushing and Checkpoints
InnoDB Flushing and CheckpointsInnoDB Flushing and Checkpoints
InnoDB Flushing and Checkpoints
 
Informix HA Best Practices
Informix HA Best Practices Informix HA Best Practices
Informix HA Best Practices
 
Firebase presentation
Firebase presentationFirebase presentation
Firebase presentation
 
10 ways to improve your rman script
10 ways to improve your rman script10 ways to improve your rman script
10 ways to improve your rman script
 

Semelhante a Backup Online no MySQL com Percona Xtrabackup

GlusterFs
GlusterFsGlusterFs
Percona XtraBackup
Percona XtraBackupPercona XtraBackup
Percona XtraBackup
Webgoal
 
Bancos de dados analíticos open source
Bancos de dados analíticos open sourceBancos de dados analíticos open source
Bancos de dados analíticos open source
Matheus Espanhol
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Jeronimo Zucco
 
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Jeronimo Zucco
 
Planejamento de Capacidade e Desempenho de Backup em Disco
Planejamento de Capacidade e Desempenho de Backup em DiscoPlanejamento de Capacidade e Desempenho de Backup em Disco
Planejamento de Capacidade e Desempenho de Backup em Disco
Kleber Silva
 
Elastic MeetUp Porto Alegre
Elastic MeetUp Porto AlegreElastic MeetUp Porto Alegre
Elastic MeetUp Porto Alegre
Rafael Gomes
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
Marcelo Dieder
 
Apresentação symantec backup e archiving
Apresentação symantec backup e archivingApresentação symantec backup e archiving
Apresentação symantec backup e archiving
Allen Informática
 
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
CLEYSSON LIMA
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dados
Suissa
 
Goocloud Backup Storage
Goocloud   Backup  StorageGoocloud   Backup  Storage
Goocloud Backup Storage
goocloud
 
ZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQL
gsroma
 
teAula 11
teAula 11teAula 11
InnoDB Plugin - II Fórum da Comunidade MySQL
InnoDB Plugin - II Fórum da Comunidade MySQLInnoDB Plugin - II Fórum da Comunidade MySQL
InnoDB Plugin - II Fórum da Comunidade MySQL
Wagner Bianchi
 
Maonamassa Pga
Maonamassa PgaMaonamassa Pga
Maonamassa Pga
Michael Macêdo
 
Backups e restauração de dados
Backups e restauração de dadosBackups e restauração de dados
Backups e restauração de dados
elliando dias
 
Treinamento de Performance and tuning
Treinamento de Performance and tuningTreinamento de Performance and tuning
Treinamento de Performance and tuning
Dell Technologies
 
Intro Arquitetura Oracle
Intro Arquitetura OracleIntro Arquitetura Oracle
Intro Arquitetura Oracle
Pablo Garcia
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneos
Fernando Ike
 

Semelhante a Backup Online no MySQL com Percona Xtrabackup (20)

GlusterFs
GlusterFsGlusterFs
GlusterFs
 
Percona XtraBackup
Percona XtraBackupPercona XtraBackup
Percona XtraBackup
 
Bancos de dados analíticos open source
Bancos de dados analíticos open sourceBancos de dados analíticos open source
Bancos de dados analíticos open source
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
 
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
 
Planejamento de Capacidade e Desempenho de Backup em Disco
Planejamento de Capacidade e Desempenho de Backup em DiscoPlanejamento de Capacidade e Desempenho de Backup em Disco
Planejamento de Capacidade e Desempenho de Backup em Disco
 
Elastic MeetUp Porto Alegre
Elastic MeetUp Porto AlegreElastic MeetUp Porto Alegre
Elastic MeetUp Porto Alegre
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
 
Apresentação symantec backup e archiving
Apresentação symantec backup e archivingApresentação symantec backup e archiving
Apresentação symantec backup e archiving
 
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
Gerenciamento de Backup e Recovery com Barman PGConfBrasil2019
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dados
 
Goocloud Backup Storage
Goocloud   Backup  StorageGoocloud   Backup  Storage
Goocloud Backup Storage
 
ZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQL
 
teAula 11
teAula 11teAula 11
teAula 11
 
InnoDB Plugin - II Fórum da Comunidade MySQL
InnoDB Plugin - II Fórum da Comunidade MySQLInnoDB Plugin - II Fórum da Comunidade MySQL
InnoDB Plugin - II Fórum da Comunidade MySQL
 
Maonamassa Pga
Maonamassa PgaMaonamassa Pga
Maonamassa Pga
 
Backups e restauração de dados
Backups e restauração de dadosBackups e restauração de dados
Backups e restauração de dados
 
Treinamento de Performance and tuning
Treinamento de Performance and tuningTreinamento de Performance and tuning
Treinamento de Performance and tuning
 
Intro Arquitetura Oracle
Intro Arquitetura OracleIntro Arquitetura Oracle
Intro Arquitetura Oracle
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneos
 

Mais de Marcelo Altmann

Troubleshooting MySQL from a MySQL Developer Perspective
Troubleshooting MySQL from a MySQL Developer PerspectiveTroubleshooting MySQL from a MySQL Developer Perspective
Troubleshooting MySQL from a MySQL Developer Perspective
Marcelo Altmann
 
Backup para MySQL
Backup para MySQLBackup para MySQL
Backup para MySQL
Marcelo Altmann
 
GDB e Análise de Bugs
GDB e Análise de BugsGDB e Análise de Bugs
GDB e Análise de Bugs
Marcelo Altmann
 
Percona University - ProxySQL para MySQL
Percona University - ProxySQL para MySQLPercona University - ProxySQL para MySQL
Percona University - ProxySQL para MySQL
Marcelo Altmann
 
DB Floripa - ProxySQL para MySQL
DB Floripa - ProxySQL para MySQLDB Floripa - ProxySQL para MySQL
DB Floripa - ProxySQL para MySQL
Marcelo Altmann
 
Percona Xtrabackup Best Practices
Percona Xtrabackup Best PracticesPercona Xtrabackup Best Practices
Percona Xtrabackup Best Practices
Marcelo Altmann
 
MySQL Backup Best Practices and Case Study- .ie Continuous Restore Process
MySQL Backup Best Practices and Case Study- .ie Continuous Restore ProcessMySQL Backup Best Practices and Case Study- .ie Continuous Restore Process
MySQL Backup Best Practices and Case Study- .ie Continuous Restore Process
Marcelo Altmann
 
A Percona Support Engineer Walkthrough on pt-stalk
A Percona Support Engineer Walkthrough on pt-stalkA Percona Support Engineer Walkthrough on pt-stalk
A Percona Support Engineer Walkthrough on pt-stalk
Marcelo Altmann
 
MysQL melhores práticas de seguranca
MysQL  melhores práticas de segurancaMysQL  melhores práticas de seguranca
MysQL melhores práticas de seguranca
Marcelo Altmann
 
ProxySQL para mysql
ProxySQL para mysqlProxySQL para mysql
ProxySQL para mysql
Marcelo Altmann
 
Optimizando MySQL
Optimizando MySQLOptimizando MySQL
Optimizando MySQL
Marcelo Altmann
 
MySQL - Melhores práticas de replicação de dados
MySQL - Melhores práticas de replicação de dadosMySQL - Melhores práticas de replicação de dados
MySQL - Melhores práticas de replicação de dados
Marcelo Altmann
 
Percona Live London 2014 - MySQL Backup Strategy @ IEDR
Percona Live London 2014 - MySQL Backup Strategy @ IEDRPercona Live London 2014 - MySQL Backup Strategy @ IEDR
Percona Live London 2014 - MySQL Backup Strategy @ IEDR
Marcelo Altmann
 

Mais de Marcelo Altmann (13)

Troubleshooting MySQL from a MySQL Developer Perspective
Troubleshooting MySQL from a MySQL Developer PerspectiveTroubleshooting MySQL from a MySQL Developer Perspective
Troubleshooting MySQL from a MySQL Developer Perspective
 
Backup para MySQL
Backup para MySQLBackup para MySQL
Backup para MySQL
 
GDB e Análise de Bugs
GDB e Análise de BugsGDB e Análise de Bugs
GDB e Análise de Bugs
 
Percona University - ProxySQL para MySQL
Percona University - ProxySQL para MySQLPercona University - ProxySQL para MySQL
Percona University - ProxySQL para MySQL
 
DB Floripa - ProxySQL para MySQL
DB Floripa - ProxySQL para MySQLDB Floripa - ProxySQL para MySQL
DB Floripa - ProxySQL para MySQL
 
Percona Xtrabackup Best Practices
Percona Xtrabackup Best PracticesPercona Xtrabackup Best Practices
Percona Xtrabackup Best Practices
 
MySQL Backup Best Practices and Case Study- .ie Continuous Restore Process
MySQL Backup Best Practices and Case Study- .ie Continuous Restore ProcessMySQL Backup Best Practices and Case Study- .ie Continuous Restore Process
MySQL Backup Best Practices and Case Study- .ie Continuous Restore Process
 
A Percona Support Engineer Walkthrough on pt-stalk
A Percona Support Engineer Walkthrough on pt-stalkA Percona Support Engineer Walkthrough on pt-stalk
A Percona Support Engineer Walkthrough on pt-stalk
 
MysQL melhores práticas de seguranca
MysQL  melhores práticas de segurancaMysQL  melhores práticas de seguranca
MysQL melhores práticas de seguranca
 
ProxySQL para mysql
ProxySQL para mysqlProxySQL para mysql
ProxySQL para mysql
 
Optimizando MySQL
Optimizando MySQLOptimizando MySQL
Optimizando MySQL
 
MySQL - Melhores práticas de replicação de dados
MySQL - Melhores práticas de replicação de dadosMySQL - Melhores práticas de replicação de dados
MySQL - Melhores práticas de replicação de dados
 
Percona Live London 2014 - MySQL Backup Strategy @ IEDR
Percona Live London 2014 - MySQL Backup Strategy @ IEDRPercona Live London 2014 - MySQL Backup Strategy @ IEDR
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)
  • 4. Agenda ● Overview ● Funcionamento Básico (backup, prepare, incremental) ● Novas funcionalidades
  • 5. 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
  • 6. Percona Xtrabackup - Overview ● Backup Compactado ● Backup Criptografado ● Backup local ● Streaming - xbstream ( https://bit.ly/xbstream-format ) ● Upload para cloud (S3, Azure, GCP, Swift) - xbcloud
  • 8. InnoDB - Layout das tabelas em disco
  • 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).
  • 10. InnoDB - Layout das tabelas em disco
  • 11. InnoDB - Redo Log (WAL)
  • 12. InnoDB - Redo Log (WAL)
  • 24. Xtrabackup - Incremental ● Utiliza como base o LSN do último checkpoint do full ( 50 ) ● Redo follow thread (igual ao full)
  • 25. Xtrabackup - Incremental ● INSERT INTO tabela1 VALUES (...)
  • 26. Xtrabackup - Incremental ● UPDATE tabela1 SET ...
  • 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
  • 33. Xtrabackup - Log Redesign
  • 34. Xtrabackup - Log Redesign
  • 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
  • 41. Xtrabackup - Memory Estimation
  • 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.

Notas do Editor

  1. https://app.diagrams.net/#G1AfX0uuvw75t6bvJXNlN7B1L8XwWUoFYn
  2. Read SPACE - xxd -s $((3*16384+34)) -l 4 tb1.ibd Read LSN - xxd -s $((3*16384+16)) -l 8 tb1.ibd