web-dev-qa-db-fra.com

Quels outils de sauvegarde à chaud pour la base de données MySQL InnoDB: Percona Xtrabackup, Gestionnaire de récupération Zmanda ou ...?

Je gère un site Web PHP/MySQL:

  • max 500 utilisateurs simultanés/moyenne de 4000 par heure de mise à jour/lecture
  • 1 serveur de communauté MySQL (5.1) - (Xeon/16 Go Ram)
  • EnnoDb Stockage Engine sur 100 tables pour 1,4 Go de données

En fait, tous les 30 mn a Cronjob établissent une vidage complète dans le fichier ... mais depuis plusieurs, cela cause des erreurs fatales sur PHP (à cause du délai d'attente)

Je voudrais donc avoir un outil pour faire de la vraie sauvegarde chaude ... J'ai Googled et "Stackoverflowed" et il semble que "les produits semblent faire le travail: - Percona Xtrabackup (gratuit) - Communauté de Récupération de Zmanda (gratuit) - Zmanda Recovery Manager Enterprise (500 $)

Mais je ne peux pas voir quelle est vraiment la différence et quels pourraient être les critères. Mes besoins semblent être simples: une sauvegarde complète (ou incrémentielle) réalisée pour restaurer ma base de données si un crash se produit sans mettre mon site web vers le bas ... Je ne suis pas un DBA, donc j'ai besoin d'un produit "simple".

Merci beaucoup pour votre aide.

5
Grey Goda

Disclaimer: Je travaille pour Percona et je suis l'un des développeurs de Percona Xtrabackup.

Vous auriez besoin d'essayer les options et de voir ce qui fonctionne le mieux pour vous.

Compte tenu de vos besoins, j'évaluerais Percona Xtrabackup en premier. Il effectuera les sauvegardes chaudes complètes et incrémentielles. En fait, Zmanda Recovery Manager utilise Percona Xtrabackup comme backend pour les sauvegardes Hot Innodb.

2
Laurynas Biveinis

Il suffit de lire votre question et sans détails supplémentaires, je m'inquiète de vous n'avoir aucune forme de haute disponibilité ou de clustering DB. À tout le moins, vous devez configurer la réplication MySQL à l'aide d'un serveur de produits de base comme esclave.

Avec 1,4 Go de données totales, vous pouvez faire de nombreuses choses différentes:

  • De l'esclave, effectuez une seule transaction MySqldump Crontab'd à minuit.
  • De l'esclave, des tables individuelles mysqldump comme suit:
    • STOP SLAVE;
    • mysqldump chaque table dans un fichier séparé
    • START SLAVE;
  • De l'esclave, utilisez Percona Xtrabackup ( + 1 pour Laurynas depuis qu'il l'a mentionné en premier )
  • Du maître, utilisez Percona Xtrabackup
  • Du maître, effectuez une seule transaction MySqldump Crontab'd à minuit.

Je ne peux vraiment pas voir l'achat d'un produit commercial lorsque vous pouvez scripter des solutions ou utiliser des solutions open source telles que Xtrabackup.

CAVEAT

Xtrabackup aurait plus de sens et devrait être très rapide pour 1,4 Go de données InnoDB. Cependant, lorsque vous l'exécutez, assurez-vous de ne pas être claqué par la charge de serveur ou une dégradation de performance de DB/site. Sans informations supplémentaires, la seule façon de savoir que Xtrabackup est la solution consiste à le configurer et à l'exécuter sur le maître. Si vous rencontrez des problèmes de performance de DB/Site, accédez à la configuration de la réplication MySQL et de MySQLDUMP ou de XTrabackup sur l'esclave.

Voici mes anciens messages sur la mise en place de MySqLDUMPS pour des tables individuelles:

1
RolandoMySQLDBA