Fiquei surpreso que xtrabackup
suporta backups incrementais. xtrabackup
copia os arquivos de dados e entende o formato dos arquivos de dados (pode dar uma olhada dentro)? O que é um LSN para manequins? Encontrei Qual é o número de seqüência de log? Como é usado no MySQL? .
Citação de Backup incremental
Um backup incremental copia cada página cujo LSN é mais recente que o LSN do backup incremental ou completo anterior. Existem dois algoritmos em uso para encontrar o conjunto de tais páginas a serem copiadas. A primeira, disponível com todos os tipos e versões de servidor, é verificar o LSN da página diretamente lendo todas as páginas de dados. A segunda, disponível com o Percona Server, é habilitar o recurso de rastreamento de página alterada no servidor, que observará as páginas conforme elas estão sendo alteradas. Esta informação será então escrita em um arquivo de bitmap separado e compacto. O binário xtrabackup usará esse arquivo para ler apenas as páginas de dados necessárias para o backup incremental, potencialmente salvando muitas solicitações de leitura. O último algoritmo é habilitado por padrão se o binário xtrabackup encontrar o arquivo de bitmap.
Ainda não entendi como isso funciona. Você usa xtrabackup
Backup Incremental? Você recomenda xtrabackup
Backup incremental?
LSN aka Log Sequence Number é um número inteiro de 8 bytes que atua como uma versão para entradas de log REDO(
ib_logfile*
). Cada alteração nos dados faz uma entrada no log REDO e obtém um novo LSN. O LSN é incrementado a cada alteração.Cada página de índice do InnoDB (onde os dados do usuário são armazenados) tem o campo LSN no cabeçalho. É um LSN que modificou a página pela última vez.
Então. Se soubermos qual foi o último LSN (vamos chamá-lo de
lsn_full
) quando fizemos um backup completo, saberemos se uma determinada página mudou desde então. Porque se o LSN da página (vamos chamá-lolsn_current
) maior quelsn_full
, a página mudou desde o último backup.O Xtrabackup usa essa ideia para implementar backups incrementais. Na verdade, você pode implementar backups incrementais e diferenciais com o Xtrabackup. Confira as opções
--incremental-lsn
e--incremental-basedir
.O uso ou não de backups incrementais depende de sua confiança em todo o processo. É fácil errar se você não entender completamente o que está acontecendo durante o processo de backup e restauração. (No TwinDB, tenho que lidar com muitos casos em que os backups incrementais não podem ser usados por qualquer motivo).
Eu recomendo verificar backups. A maneira mais confiável de garantir que uma cópia de backup seja utilizável é restaurar o banco de dados a partir dela. Então eu sugeriria algoritmo: