Qual é a diferença entre XtraBackup e rsync?


11

Sim, eu vou correr atrás dos dois ... No entanto, eu gostaria de saber ...

  • O que o XtraBackup está fazendo além do rsync -ac src dest?
  • O que há de tão especial no XtraBbackup?
  • Como o XtraBackup está interagindo com o mysqld?

1
Esse é um daqueles "eu ouvi falar do XtraBackup, mas tenho medo de fazer" perguntas sobre quebra-gelo. Eu amo esses tipos de perguntas !!! +1 !!!
RolandoMySQLDBA

1
@RolandoMySQLDBA: Eu gosto de provocar pensamentos e levar as pessoas a compartilhar conhecimento. É assim que melhoramos, certo? Ser um Lone Ranger não é muito divertido. :-)
randomx

Respostas:


16

O rsync é apenas uma cópia de dados de força bruta byte a byte de um local para outro. Você executaria vários rsyncs até o último rsync, o que é muito rápido. Então, você faria um desligamento completo do MySQL e executaria mais um rsync.

O XtraBackup é uma ferramenta abrangente que se comporta como o rsync, mas tem um objetivo direcionado na vida. Ele pode começar a copiar todos os dados e espaços de tabela do InnoDB. Ele tem a capacidade de criar pontos de verificação internamente e executar no local uma recuperação de falhas do InnoDB para ajudar a obter um backup point-in-time perfeito. O XtraBackup também possui um recurso extra que permite a criação de backups incrementais. Outro recurso adicional é a criação de arquivos de log do InnoDB, também criados por uma recuperação de falhas no local. Há também algum software de invólucro para fornecer cópia congelada de tabelas MyISAM também.

Ambos os métodos são ótimos. O XtraBackup simplesmente implementa os recursos transacionais do InnoDB na maioria das cópias iniciais. O Xtrabackup cria arquivos que podem ser inseridos em uma infraestrutura estabelecida do MySQL. É justo dizer que o XtraBackup fornece backup instrumental e arquivos InnoDB materializados e muito utilizáveis.

O uso do rsync obriga a gerenciar o processo de cópia várias vezes e a encerrar com um desligamento do mysql para exigir uma intervenção do rsync.

Usar um sobre o outro pode ser uma preferência pessoal. Uma coisa deve ser reconhecida: o XtraBackup faz backups um pouco maiores que os dados que foram copiados. Deixo a escolha do método para o leitor desta pergunta.

Prefiro o rsync porque tem simplicidade de uso, posso determinar o momento específico antes do início do processo, também tenho controle total sobre como bloquear o mysqld ou desligá-lo, quando esse controle puder ser executado e em qualquer ordem que eu designar .

Os dois estilos de backup têm uma coisa em comum : com o XtraBackup, o momento exato é um alvo em movimento até que o processo de backup seja concluído e você precise confiar no XtraBackup (ei 200.000 downloads até agora. O Facebook é um dos maiores usuários de Ele ganhou muita confiança). Em outras palavras, se eu iniciar o XtraBackup à meia-noite e o backup durar até 02h20, o momento real do backup será 2h20. O uso do rsync tem o mesmo problema de destino móvel, porque você deve executar vários rsyncs manualmente e, em seguida, determinar quando emitir uma 'parada de serviço mysql' antes do rsync final.

Esses métodos diferem em que o mysqld deve ser desligado usando o método rsync, enquanto o XtraBackup age independentemente do mysqld. De fato, o XtraBackup não interage muito com o mysqld, exceto quando se lida com tabelas MyISAM através do software wrapper. O XtraBackup tenta criar arquivos de dados e log do InnoDB totalmente funcionais usando as operações do mecanismo de armazenamento do InnoDB separadas e distintas do mysqld.

Encerrar o mysql é muito necessário para o método rsync por um motivo muito grande: O InnoDB Buffer Pool pode conter "páginas sujas", que são páginas de dados e índice (1 página = 16 KB) que não foram gravadas no disco. O uso do rsync não captura as alterações de dados pendentes no InnoDB Buffer Pool. Para acelerar o desligamento do mysqld para o rsync final, execute este comando:

SET GLOBAL innodb_max_dirty_pages_pct = 0;

Este comando manterá o número de páginas sujas no mínimo. Este comando deve ser executado cerca de uma hora antes de você executar o método de backup rsync. Isso pode até ajudar o XtraBackup, embora o XtraBackup não exija um desligamento do mysql.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.