SlideShare uma empresa Scribd logo
1 de 44
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

[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawaInsight Technology, Inc.
 
What's new in Oracle 19c & 18c Recovery Manager (RMAN)
What's new in Oracle 19c & 18c Recovery Manager (RMAN)What's new in Oracle 19c & 18c Recovery Manager (RMAN)
What's new in Oracle 19c & 18c Recovery Manager (RMAN)Satishbabu Gunukula
 
DB2 Security Model
DB2 Security ModelDB2 Security Model
DB2 Security ModeluniqueYGB
 
Percona Xtrabackup Best Practices
Percona Xtrabackup Best PracticesPercona Xtrabackup Best Practices
Percona Xtrabackup Best PracticesMarcelo Altmann
 
Oracle Architecture
Oracle ArchitectureOracle Architecture
Oracle ArchitectureNeeraj Singh
 
Sql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresSql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresMasayuki Ozawa
 
MySQL 8.0 achitecture and enhancement
MySQL 8.0 achitecture and enhancementMySQL 8.0 achitecture and enhancement
MySQL 8.0 achitecture and enhancementlalit choudhary
 
Database performance tuning and query optimization
Database performance tuning and query optimizationDatabase performance tuning and query optimization
Database performance tuning and query optimizationUsman Tariq
 
IBM Spectrum Scale Security
IBM Spectrum Scale Security IBM Spectrum Scale Security
IBM Spectrum Scale Security Sandeep Patil
 
5 things you didn't know nginx could do
5 things you didn't know nginx could do5 things you didn't know nginx could do
5 things you didn't know nginx could dosarahnovotny
 
The InnoDB Storage Engine for MySQL
The InnoDB Storage Engine for MySQLThe InnoDB Storage Engine for MySQL
The InnoDB Storage Engine for MySQLMorgan Tocker
 
How to set up orchestrator to manage thousands of MySQL servers
How to set up orchestrator to manage thousands of MySQL serversHow to set up orchestrator to manage thousands of MySQL servers
How to set up orchestrator to manage thousands of MySQL serversSimon J Mudd
 
How to upgrade like a boss to MySQL 8.0 - PLE19
How to upgrade like a boss to MySQL 8.0 -  PLE19How to upgrade like a boss to MySQL 8.0 -  PLE19
How to upgrade like a boss to MySQL 8.0 - PLE19Alkin Tezuysal
 
Cisco HyperFlex 3.0
Cisco HyperFlex 3.0Cisco HyperFlex 3.0
Cisco HyperFlex 3.0Chase Rothe
 
Query Optimizer – MySQL vs. PostgreSQL
Query Optimizer – MySQL vs. PostgreSQLQuery Optimizer – MySQL vs. PostgreSQL
Query Optimizer – MySQL vs. PostgreSQLChristian Antognini
 
Practical examples of using extended events
Practical examples of using extended eventsPractical examples of using extended events
Practical examples of using extended eventsDean Richards
 
YugabyteDB - Distributed SQL Database on Kubernetes
YugabyteDB - Distributed SQL Database on KubernetesYugabyteDB - Distributed SQL Database on Kubernetes
YugabyteDB - Distributed SQL Database on KubernetesDoKC
 
Storage tiering for Oracle Database on AWS and Oracle EBusiness Suite on AWS ...
Storage tiering for Oracle Database on AWS and Oracle EBusiness Suite on AWS ...Storage tiering for Oracle Database on AWS and Oracle EBusiness Suite on AWS ...
Storage tiering for Oracle Database on AWS and Oracle EBusiness Suite on AWS ...Tom Laszewski
 

Mais procurados (20)

[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
[D11] SQL Server エンジニアに知ってもらいたい!! SQL Server チューニングアプローチ by masayuki ozawa
 
What's new in Oracle 19c & 18c Recovery Manager (RMAN)
What's new in Oracle 19c & 18c Recovery Manager (RMAN)What's new in Oracle 19c & 18c Recovery Manager (RMAN)
What's new in Oracle 19c & 18c Recovery Manager (RMAN)
 
DB2 Security Model
DB2 Security ModelDB2 Security Model
DB2 Security Model
 
Percona Xtrabackup Best Practices
Percona Xtrabackup Best PracticesPercona Xtrabackup Best Practices
Percona Xtrabackup Best Practices
 
Oracle Architecture
Oracle ArchitectureOracle Architecture
Oracle Architecture
 
Sql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresSql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new features
 
Galera Cluster DDL and Schema Upgrades 220217
Galera Cluster DDL and Schema Upgrades 220217Galera Cluster DDL and Schema Upgrades 220217
Galera Cluster DDL and Schema Upgrades 220217
 
MySQL 8.0 achitecture and enhancement
MySQL 8.0 achitecture and enhancementMySQL 8.0 achitecture and enhancement
MySQL 8.0 achitecture and enhancement
 
Database performance tuning and query optimization
Database performance tuning and query optimizationDatabase performance tuning and query optimization
Database performance tuning and query optimization
 
IBM Spectrum Scale Security
IBM Spectrum Scale Security IBM Spectrum Scale Security
IBM Spectrum Scale Security
 
5 things you didn't know nginx could do
5 things you didn't know nginx could do5 things you didn't know nginx could do
5 things you didn't know nginx could do
 
The InnoDB Storage Engine for MySQL
The InnoDB Storage Engine for MySQLThe InnoDB Storage Engine for MySQL
The InnoDB Storage Engine for MySQL
 
How to set up orchestrator to manage thousands of MySQL servers
How to set up orchestrator to manage thousands of MySQL serversHow to set up orchestrator to manage thousands of MySQL servers
How to set up orchestrator to manage thousands of MySQL servers
 
How to upgrade like a boss to MySQL 8.0 - PLE19
How to upgrade like a boss to MySQL 8.0 -  PLE19How to upgrade like a boss to MySQL 8.0 -  PLE19
How to upgrade like a boss to MySQL 8.0 - PLE19
 
Cisco HyperFlex 3.0
Cisco HyperFlex 3.0Cisco HyperFlex 3.0
Cisco HyperFlex 3.0
 
Query Optimizer – MySQL vs. PostgreSQL
Query Optimizer – MySQL vs. PostgreSQLQuery Optimizer – MySQL vs. PostgreSQL
Query Optimizer – MySQL vs. PostgreSQL
 
Practical examples of using extended events
Practical examples of using extended eventsPractical examples of using extended events
Practical examples of using extended events
 
YugabyteDB - Distributed SQL Database on Kubernetes
YugabyteDB - Distributed SQL Database on KubernetesYugabyteDB - Distributed SQL Database on Kubernetes
YugabyteDB - Distributed SQL Database on Kubernetes
 
Oracle GoldenGate
Oracle GoldenGate Oracle GoldenGate
Oracle GoldenGate
 
Storage tiering for Oracle Database on AWS and Oracle EBusiness Suite on AWS ...
Storage tiering for Oracle Database on AWS and Oracle EBusiness Suite on AWS ...Storage tiering for Oracle Database on AWS and Oracle EBusiness Suite on AWS ...
Storage tiering for Oracle Database on AWS and Oracle EBusiness Suite on AWS ...
 

Semelhante a Backup Online no MySQL com Percona Xtrabackup

Percona XtraBackup
Percona XtraBackupPercona XtraBackup
Percona XtraBackupWebgoal
 
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 sourceMatheus 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 DiscoKleber Silva
 
Elastic MeetUp Porto Alegre
Elastic MeetUp Porto AlegreElastic MeetUp Porto Alegre
Elastic MeetUp Porto AlegreRafael 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 archivingAllen 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 PGConfBrasil2019CLEYSSON 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 dadosSuissa
 
Goocloud Backup Storage
Goocloud   Backup  StorageGoocloud   Backup  Storage
Goocloud Backup Storagegoocloud
 
ZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLgsroma
 
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 MySQLWagner Bianchi
 
Backups e restauração de dados
Backups e restauração de dadosBackups e restauração de dados
Backups e restauração de dadoselliando dias
 
Treinamento de Performance and tuning
Treinamento de Performance and tuningTreinamento de Performance and tuning
Treinamento de Performance and tuningDell Technologies
 
Intro Arquitetura Oracle
Intro Arquitetura OracleIntro Arquitetura Oracle
Intro Arquitetura OraclePablo 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âneosFernando 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 PerspectiveMarcelo Altmann
 
Percona University - ProxySQL para MySQL
Percona University - ProxySQL para MySQLPercona University - ProxySQL para MySQL
Percona University - ProxySQL para MySQLMarcelo Altmann
 
DB Floripa - ProxySQL para MySQL
DB Floripa - ProxySQL para MySQLDB Floripa - ProxySQL para MySQL
DB Floripa - ProxySQL para MySQLMarcelo 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 ProcessMarcelo 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-stalkMarcelo Altmann
 
MysQL melhores práticas de seguranca
MysQL  melhores práticas de segurancaMysQL  melhores práticas de seguranca
MysQL melhores práticas de segurancaMarcelo 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 dadosMarcelo 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 @ IEDRMarcelo Altmann
 

Mais de Marcelo Altmann (12)

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
 
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