web-dev-qa-db-fra.com

Comment augmenter la sauvegarde et la restauration rapides d'une base de données de 500 Go en utilisant mysqldump?

Il existe une base de données d'une taille de 500 Go. Les tables de la base de données A contiennent les tables MyISAM et INNODB. Les tables MyISAM sont des tables principales et les tables Innodb sont les tables de transactions principales.

Sauvegarde et restauration à l'aide de vidage mysql prenant quitter longtemps ou jours.

  • max_allowed_packet = 1G
  • foreign_key_checks = 0
  • auto_commit = off
10
Martin

Mais le lien recommande également XtraBackup de Percona, qui est plus rapide, pas de verrous sur les tables déjà utilisées et ne gagne pas de temps pour la restauration. Pour 500 Go de données, je préfère que Percona XtraBackup soit rapide et efficace, sauf si vous souhaitez les convertir en modèle innodb_file_per_table s'il ne provenait pas du serveur DB existant. Le lien ci-dessous explique comment procéder.

http://www.percona.com/doc/percona-xtrabackup/innobackupex/creating_a_backup_ibk.html

5
Mannoj

Découvrez mydumper. C'est beaucoup plus rapide que mysqldump: la nouvelle version de mydumper 0.6.1 offre des fonctionnalités de performances et de convivialité

Vous pouvez télécharger ici: https://github.com/maxbube/mydumper

Qu'est-ce que mydumper? Pourquoi?

  • Parallélisme (donc vitesse) et performances (évite des routines de conversion de jeux de caractères coûteuses, un code efficace dans l'ensemble)
  • Gestion des sorties plus facile (fichiers séparés pour les tables, vidage des métadonnées, etc., facile à visualiser/analyser les données)
  • Cohérence - maintient un instantané sur tous les threads, fournit des positions de journal maître et esclave précises, etc.
  • Gérabilité - prend en charge PCRE pour spécifier les inclusions et exclusions de base de données et de tables
2
Silas Palmer

Essayez ce qui suit avec innobackupex:

innobackupex --parallel=7 --rsync  /var/mysql/backup

Vous pouvez modifier le numéro de processus parallèle à votre guise. Puisque vous avez mentionné que vous avez des tables myisam, le paramètre "rsync" aidera à accélérer la sauvegarde de celles-ci.

1
Haluk

Je pense que la question est de savoir comment restaurer plus rapidement à partir des fichiers de vidage créés de mysqldump et non d'une solution de sauvegarde différente.

Pour ce faire, vous pouvez notamment créer des groupes de tables dans votre schéma et créer un utilisateur DB distinct pour chaque groupe et utiliser les autorisations MySQL pour ne pas autoriser l'insertion de tables pour utiliser tous les utilisateurs DB sauf un.

Il s'agit d'une technique éprouvée, rapide, presque parallèle mais pas sûre à 100% du temps qu'il faudra pour restaurer à partir de 500G. Mais à mon humble avis, vous avez besoin de quelque chose de parallèle. Voir le lien ci-dessous pour un exemple.

Restauration rapide et parallèle à partir de vidages SQL (mysqldump) pour MySQL

1
syed