MySQLL'outil de sauvegarde de base de données possède son propre mysqldump, qui est un outil de sauvegarde officiel de MySQL. Cependant, l'outil de sauvegarde tiers mydumper est utilisé par un plus grand nombre de personnes en raison de ses fonctionnalités supérieures. Ensuite, nous vérifierons l’efficacité des sauvegardes entre eux grâce à des tests.
Si vous ne sauvegardez que quelques tables ou une seule bibliothèque, mysqldump et mydumper sont plus pratiques qu'innobackup, mais mydumper ajoute relativement plus de fonctionnalités, telles que la sauvegarde multithread, la sauvegarde de correspondance régulière, Groupe et fonctions d'auto-test. De plus, mydumper et mysqldump sont essentiellement les mêmes données logiques d'exportation et ne prennent pas en charge la sauvegarde à chaud en ligne innodb. Bien sûr, nous pouvons également utiliser innobackup pour sauvegarder certaines données de table, mais c'est le cas. Ce n'est pas la même chose que mydumper et mysqldump. Méthode de sauvegarde de classe, donc ce qui suit teste uniquement l'utilisation entre mydumper et mysqldump.
mydumper export
Utilisez l'outil mydumper pour exporter. test(9.4G) avec 8 threads Les données sont compressées comme suit :mydumper -B test --regex 'test.*' -c -e -G -E -R --use-savepoints -h 10.0.21.5 -u root -P 3301 -p xxxxxx -t 8 -o /data/mysql_bak/
Dans le répertoire /data/mysql_bak, chaque table de la bibliothèque est enregistrée sous deux fichiers : définition de table et données .
Le temps d'exécution global est le suivant, il faut un total de 123 secondes
# cat metadata Started dump at: 2017-05-19 10:48:00 SHOW MASTER STATUS: Log: mysql-bin.000406 Pos: 2165426 GTID:(null) SHOW SLAVE STATUS: Host: 10.144.127.4 Log: mysql-bin.000419 Pos: 506000361 GTID:(null) Finished dump at: 2017-05-19 10:50:03
export mysqldump
Utilisez l'outil mysqldump par défaut pour exportez la bibliothèque et compressez-la, comme indiqué ci-dessous :
# time mysqldump -B test -E -R -h 10.0.21.5 -u root -P 3301 -p | gzip >/data/test.sql.gz Enter password: real 3m19.805s user 4m47.334s sys 0m10.395s
real Une ligne montre que la durée totale d'exécution de mysqldump est de 199,8 s
Résumé
Dans l'ensemble, en raison du peu de données, mysqldump et mydumper La différence de temps n'est pas grande, la plupart du temps est consommé au niveau de la transmission des données. Si la bibliothèque est suffisamment grande, les avantages de mydumper peuvent être reflétés. , la version inférieure de mydumper aura le problème d'erreurs d'exportation en raison des changements de syntaxe de la version supérieure de MySQL. Par exemple, l'erreur suivante se produit :
** (mydumper:18758): CRITICAL **: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_QUOTE_SHOW_CREATE=1' at line 1 (1064)
Pour résoudre ce problème, vous pouvez. utilisez une version supérieure de mydumper. Si la version supérieure a toujours ce problème, vous pouvez vous référer à github code officiel Apporter les modifications de code correspondantes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!