Qual è la differenza tra XtraBackup e rsync?


11

Sì, ho intenzione di correre su entrambi ... Tuttavia, vorrei sapere ...

  • Cosa sta facendo XtraBackup oltre a rsync -ac src dest?
  • Cosa c'è di così speciale in XtraBbackup?
  • In che modo XtraBackup interagisce con mysqld?

1
Questo è uno di quelli "Ho sentito parlare di XtraBackup ma ho paura di porre" domande sul rompighiaccio. Adoro questo tipo di domande !!! +1 !!!
RolandoMySQLDBA,

1
@RolandoMySQLDBA: mi piace provocare pensieri e indurre le persone a condividere le conoscenze. È così che miglioriamo, vero? Essere un Ranger solitario non è molto divertente. :-)
randomx,

Risposte:


16

rsync è solo una copia di dati byte per byte forza bruta da un posto all'altro. Avresti dovuto eseguire più rsync fino all'ultima rsync, che è molto veloce. Quindi, eseguiresti uno spegnimento completo di MySQL ed eseguiresti un altro rsync.

XtraBackup è uno strumento completo che si comporta come rsync ma ha uno scopo diretto nella vita. Può iniziare a copiare tutti i dati e i tablespace di InnoDB. Ha la capacità di creare checkpoint internamente ed eseguire sul posto un ripristino di crash InnoDB per ottenere un backup point-in-time perfetto. XtraBackup ha anche una funzione aggiuntiva che consente la creazione di backup incrementali. Un'altra caratteristica aggiuntiva è la creazione di file di registro InnoDB, anch'essi creati da un ripristino di emergenza sul posto. Esiste anche un software wrapper per fornire anche la copia congelata delle tabelle MyISAM.

Entrambi i metodi sono fantastici. XtraBackup implementa semplicemente le funzionalità transazionali di InnoDB nella maggior parte della copia iniziale. Xtrabackup crea file che possono essere rilasciati in un'infrastruttura MySQL consolidata. È giusto dire che XtraBackup fornisce backup strumentali e file InnoDB materializzati e molto utilizzabili.

L'uso di rsync ti costringe a gestire il processo di copia più volte e a chiuderlo con un arresto mysql per richiedere un intervento di rsync.

L'uso l'uno rispetto all'altro può essere una preferenza personale. Una cosa deve essere riconosciuta: XtraBackup crea backup leggermente più grandi dei dati che sono stati copiati. Lascio la scelta del metodo al lettore di questa domanda.

Preferisco rsync perché ha semplicità d'uso, posso determinare il momento specifico prima dell'inizio del processo, ho anche il controllo totale sul blocco di mysqld o sulla sua chiusura, quando è possibile eseguire tale controllo e in qualunque ordine desidero .

Entrambi gli stili di backup hanno una cosa in comune : con XtraBackup, l'effettivo point-in-time è un obiettivo mobile fino al completamento del processo di backup e devi fidarti di XtraBackup (finora 200.000 download. Facebook è uno dei maggiori utenti di ha guadagnato molta fiducia). In altre parole, se avvio XtraBackup a mezzanotte e il backup dura fino alle 2:20, il momento effettivo del backup è 2:20. L'uso di rsync ha lo stesso problema di destinazione in movimento perché è necessario eseguire manualmente più rsync e quindi determinare quando emettere un "servizio mysql stop" prima del rsync finale.

Questi metodi differiscono in quanto mysqld deve essere chiuso usando il metodo rsync, mentre XtraBackup agisce indipendentemente da mysqld. In effetti, XtraBackup non interagisce affatto con mysqld, tranne quando si tratta di tabelle MyISAM tramite il software wrapper. XtraBackup tenta di creare dati InnoDB e file di registro completamente funzionali utilizzando le operazioni del motore di archiviazione InnoDB separate e distinte da mysqld.

La chiusura di mysql è molto necessaria per il metodo rsync per un motivo molto grande: il pool di buffer InnoDB può contenere "pagine sporche", che sono pagine di dati e di indice (1 pagina = 16 KB) che non sono state riscritte su disco. L'uso di rsync non rileva le modifiche ai dati in sospeso nel pool di buffer InnoDB. Per accelerare l'arresto di mysqld per l'ultimo rsync, eseguire questo comando:

SET GLOBAL innodb_max_dirty_pages_pct = 0;

Questo comando manterrà il numero di pagine sporche al minimo indispensabile. Questo comando deve essere eseguito circa un'ora prima di eseguire il metodo rsync di backup. Questo potrebbe anche aiutare XtraBackup, anche se XtraBackup non richiede un arresto di mysql.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.