web-dev-qa-db-fra.com

Percona Xtrabackup est-il le bon choix pour ma sauvegarde MySQL de 500 Go?

J'ai une dB mysql avec 500 Go, composée principalement de tables innovées et d'une grande table myisam. Ma stratégie de sauvegarde actuelle consiste à copier les fichiers DB à un disque dur externe. Cela provoque un temps d'arrêt de ~ 4h. Mes besoins:

  1. Faible coût.
  2. Le temps de récupération peut être long. Pas besoin d'une réplication en temps réel.
  3. Peut gérer la perte de données dans des gammes de 1 semaine-2eecks.
  4. Préférerait un court temps possible pour la sauvegarde, mais peut vivre avec quelque chose jusqu'à 2 heures.

Compte tenu actuellement d'essayer de passer à Percona Xtrabackup. Est-ce la bonne solution pour mon cas d'utilisation? Je suis spécifiquement préoccupé de verrouiller la table de myisam et la courbe d'apprentissage.

7
Noam

Dans le son de cela, vous pouvez utiliser une infrastructure de DB différente.

Sur la base de vos besoins susmentionnés, j'ai une suggestion mais nécessiterait un peu de compromis.

Suggestion n ° 1 : utilisez la réplication MySQL sur le même serveur mais différent du même disque

Votre deuxième besoin (No need of real-time replication) devrait adopter une légère bassin dans cette suggestion. Puisque vous avez un disque dur externe assez grand pour Xtrabackup, pourquoi ne pas utiliser de datadir pour une deuxième instance de MySQL sur la même boîte?

J'ai scripté mon propre service pour approvisionner une instance mysql dédiée aux ports 3307 - 3399. Voici mes messages passés à ce sujet:

Suggestion n ° 2 : Utilisez la réplication MySQL sur le serveur différent

En contrepartie de votre premier besoin (Low Cost), si vous avez accès à un serveur de produits de base avec un disque de disques adéquat, configurez la réplication MySQL sur ce serveur externe. De cette façon, vous pouvez exécuter des sauvegardes sur l'esclave comme suit

  • STOP SLAVE;
  • Xtrabackup
  • START SLAVE;

Vous pouvez le faire avec un impact zéro (aucune charge de serveur, aucun disque d'E/S sur le maître.

Suggestion n ° 3 : parallèle mysqldumps

Vous pouvez configurer des mysqldumps parallèles de bases de données ou de tables. Cela peut entraîner une fenêtre de temps plus courte pour les sauvegardes. Xtrabackup fait essentiellement une sauvegarde transactionnelle du point choisi avec des opérations sensibles à temps de manière à ce que le moment-temps de la sauvegarde soit à la fin de la sauvegarde. Avec des mysqldumps parallèles sur un esclave qui ne se réplique pas vous donne des sauvegardes dont le point à temps est le début de la sauvegarde. Faire MySqldump sur un esclave arrêté serait un moteur de stockage agnostique. En d'autres termes, peu importe que des tables soient innovées ou myisam.

Si vous appliquez ceci à la suggestion n ° 1, cela entraînera la charge de la charge de serveur et le disque d'E/S puisque la maîtrise et l'esclave résident sur la même machine.

Si vous appliquez cela à la suggestion n ° 2, il n'y a pas de pénalité sur le maître. Vous pouvez exécuter des sauvegardes à volonté sur l'esclave. Vous n'aurez pas non plus à vous préoccuper de tables myisam à verrouillage.

S'il vous plaît voir mes anciens messages sur faire des mysqldumps parallèles

8
RolandoMySQLDBA