2 votes

Quel est le moyen le plus efficace de prendre des instantanés de sauvegarde d'une base de données mysql sur Internet ?

Ok La situation est la suivante :

Nous utilisons actuellement mysqldump, puis nous compressons le résultat avec bzip2 et le renvoyons par scp vers notre serveur de sauvegarde. Il s'agit d'un processus manuel qui prend beaucoup de temps et qui ne permet pas de créer des instantanés.

J'expérimente actuellement le transfert par rsync des différences entre l'ancien et le nouveau fichier de vidage, mais la compression est beaucoup moins efficace.

Toute autre suggestion serait la bienvenue.

2voto

macbirdie Points 9417

Une façon de procéder serait de configurer la réplication de la base de données vers un serveur de sauvegarde et d'y créer les sauvegardes.

Si cela n'est pas possible dans votre environnement, votre deuxième meilleure chance est d'utiliser rsync sur le vidage SQL simple (n'oubliez pas --compress ) ou sur un gzip du même, qui a été compressé avec --rsyncable . Je ne sais pas comment rsync s'en sort, car les valeurs insérées/supprimées dans le fichier de vidage provoqueront un "décalage" dans le fichier que rsync doit détecter pour empêcher le retransfert de données qui n'ont pas été modifiées.

Lorsque vous exécutez rsync avec --stats il devrait indiquer le nombre d'octets qu'il a effectivement envoyés sur le réseau, pour vous donner quelques chiffres.

1voto

Xerxes Points 4113

Vous avez essayé les options suivantes...

rsync -a --compress --compress-level=9

En fait, cela devrait donner de meilleurs résultats (taux de compression plus élevés) que l'utilisation d'un compressing-remote-Shell ou d'un compressing-transport (cf. rsync(1) ).

1voto

Dan Udey Points 1460

La solution que j'ai toujours utilisée :

  1. Répliquez sur un autre serveur, de préférence dans le même emplacement physique (de sorte qu'en cas de besoin, vous puissiez effectuer un basculement manuel).
  2. Configurez un Shell Shell pour prendre des sauvegardes sur ce serveur, en utilisant --master-data --single-transaction (en supposant que vous utilisez InnoDB) afin que vous puissiez obtenir la position du journal principal ainsi que d'assurer la cohérence transactionnelle dans votre dump DB. J'ai écrit celui-ci qui peuvent convenir ou non à vos besoins.
  3. Téléchargez votre sauvegarde vers l'endroit où vous voulez qu'elle aille. Je télécharge la mienne vers Mosso Cloud Files (qui est incroyablement rapide si vous êtes sur un serveur Mosso) en utilisant un autre script que j'ai mis en place.
  4. Exécutez cette sauvegarde sur une période représentative de l'importance que vous accordez à vos données. Nous exécutons la nôtre toutes les deux heures.
  5. Prenez des vacances.

0voto

py_script Points 390

Je ne sais pas si vous utilisez Windows, mais j'ai eu de la chance avec MyWitch pour administrer des bases de données MySQL sur des serveurs distants, et ils ont un produit (que je n'ai pas utilisé) appelé DumpTimer qui vous permettra de programmer des mysqldumps et de les télécharger. Shareware, donc il faut payer pour la version complète qui vous permet de fonctionner comme un service Windows.

Lien vers DumpTimer : www.richtsoft.com/mysql_17_backup.html

(couper/coller car les nouveaux utilisateurs ne peuvent pas ajouter de liens hypertextes)

0voto

mblsha Points 305

Vous pourriez vider les données de chaque table dans un fichier CSV, ordonné par une clé primaire (ou autre). Utilisez ensuite split pour le diviser en fonction des lignes. Ensuite, utilisez rsync pour copier ces fichiers. Ainsi, si les 1 000 premières lignes n'ont pas changé, le fichier ne sera pas rsynchronisé. Vous pourriez les laisser non cryptés sur le serveur et le client et demander à rsync de faire la compression sur le réseau. De cette façon, il saura rapidement "Oh, j'ai ajouté 10 lignes ici", etc.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X