Quelle est la différence entre XtraBackup et rsync?

11

Oui, je vais faire des efforts pour les deux ... Cependant, je voudrais savoir ...

  • Que fait XtraBackup au-delà de rsync -ac src dest?
  • Quelle est la particularité de XtraBbackup?
  • Comment XtraBackup interagit-il avec mysqld?
randomx
la source
1
C'est une de ces questions "j'ai entendu parler de XtraBackup mais j'ai peur de poser" des brise-glace. J'adore ces types de questions !!! +1 !!!
RolandoMySQLDBA
1
@RolandoMySQLDBA: J'aime provoquer la réflexion et amener les gens à partager leurs connaissances. Voilà comment nous nous améliorons, non? Être un Lone Ranger n'est pas très amusant. :-)
randomx

Réponses:

16

rsync est juste une copie brut par octet par octet des données d'un endroit à un autre. Vous auriez dû effectuer plusieurs rsyncs jusqu'au dernier rsync, ce qui est très rapide. Ensuite, vous feriez un arrêt complet de MySQL et effectuez un rsync de plus.

XtraBackup est un outil complet qui se comporte comme rsync mais a un but précis dans la vie. Il peut commencer par copier toutes les données et espaces de table InnoDB. Il a la capacité de créer des points de contrôle en interne et d'effectuer une récupération après incident InnoDB pour obtenir une sauvegarde ponctuelle parfaite. XtraBackup possède également une fonctionnalité supplémentaire qui permet la création de sauvegardes incrémentielles. Une autre fonctionnalité supplémentaire est la création de fichiers journaux InnoDB, également créés par une récupération après incident sur place. Il existe également des logiciels d'encapsulation pour fournir une copie figée des tables MyISAM.

Les deux méthodes sont excellentes. XtraBackup implémente simplement les fonctionnalités transactionnelles InnoDB dans la plupart de la copie initiale. Xtrabackup crée des fichiers qui peuvent être déposés dans une infrastructure MySQL établie. Il est juste de dire que XtraBackup fournit une sauvegarde instrumentale et des fichiers InnoDB matérialisés et très utilisables.

L'utilisation de rsync vous oblige à gérer le processus de copie plusieurs fois et à le clore avec un arrêt mysql pour nécessiter une intervention de rsync.

Utiliser l'un sur l'autre peut être une préférence personnelle. Une chose doit être reconnue: XtraBackup fait des sauvegardes qui sont un peu plus grandes que les données qui ont été copiées. Je laisse le choix de la méthode au lecteur de cette question.

Je préfère rsync car il a une simplicité d'utilisation, je peux déterminer le moment précis avant le début du processus, j'ai également un contrôle total sur le verrouillage de mysqld ou son arrêt, quand un tel contrôle peut être effectué, et dans l'ordre que je désigne .

Les deux styles de sauvegarde ont une chose en commun : avec XtraBackup, le point réel dans le temps est une cible mobile jusqu'à la fin du processus de sauvegarde et vous devez faire confiance à XtraBackup (jusqu'à 200 000 téléchargements jusqu'à présent. Facebook est l'un des plus grands utilisateurs de Il a gagné beaucoup de confiance). En d'autres termes, si je démarre XtraBackup à minuit et que la sauvegarde dure jusqu'à 02h20, le point de cohérence réel de la sauvegarde est alors 02h20. L'utilisation de rsync a le même problème de cible mobile car vous devez effectuer plusieurs rsyncs manuellement, puis déterminer quand émettre un «arrêt mysql de service» avant le rsync final.

Ces méthodes diffèrent en ce que mysqld doit être arrêté à l'aide de la méthode rsync, tandis que XtraBackup agit indépendamment de mysqld. En fait, XtraBackup n'interagit pas beaucoup avec mysqld, sauf lorsqu'il s'agit de tables MyISAM via le logiciel wrapper. XtraBackup essaie de créer des données et des fichiers journaux InnoDB entièrement fonctionnels en utilisant les opérations du moteur de stockage InnoDB distinctes et distinctes de mysqld.

L'arrêt de mysql est très nécessaire pour la méthode rsync pour une très grande raison: le pool de tampons InnoDB peut contenir des "pages sales", qui sont des pages de données et d'index (1 page = 16 Ko) qui n'ont pas été réécrites sur le disque. L'utilisation de rsync ne détecte pas les modifications de données en attente dans le pool de mémoire tampon InnoDB. Pour accélérer l'arrêt de mysqld pour la rsync finale, veuillez exécuter cette commande:

SET GLOBAL innodb_max_dirty_pages_pct = 0;

Cette commande gardera le nombre de pages sales au strict minimum. Cette commande doit être exécutée environ une heure avant d'effectuer la méthode de sauvegarde rsync. Cela pourrait même aider XtraBackup aussi bien que XtraBackup ne nécessite pas un arrêt mysql.

RolandoMySQLDBA
la source