1 votes

À la recherche du meilleur moyen de sauvegarder Mysql

Quelle est la manière la plus appropriée de sauvegarder les bases de données Mysql? Je voudrais avoir les sauvegardes au moins toutes les heures. Je pensais que mysqldump était la seule option, mais il s'avère qu'il existe d'autres options également, comme les journaux binaires.

Je voudrais savoir comment les "grands experts le font"

Mes tables sont innodb Je voudrais avoir des sauvegardes aussi fréquentes que possible (au moins toutes les heures)

Je suppose que même des intervalles d'1 heure ne sont pas une solution parfaite, car j'utiliserais quand même les modifications apportées depuis la dernière sauvegarde, jusqu'à 1 heure.

3voto

comb Points 143

Je crois que mysqldump est mieux utilisé sur des serveurs où vous n'allez pas perturber le trafic. Sur les tables myisam, cela crée un verrou en lecture. Je sais que vous avez dit que vous utilisez innodb cependant, donc il existe quelques solutions disponibles.

Je commencerais par consulter cet outil. http://www.percona.com/software/percona-xtrabackup/ Les gars de Percona sont considérés comme des experts en mysql et c'est l'un de leurs outils pour effectuer une 'sauvegarde à chaud' des tables innodb. Cela signifie que vous pouvez l'exécuter même lorsque votre base de données est en cours d'utilisation. Pour ma part, je n'ai pas encore d'expérience avec cet outil.

Le site sur lequel je travaille actuellement a des centaines d'utilisateurs simultanés et pour réaliser des sauvegardes fiables, nous devons d'abord mettre en place la réplication vers un esclave. Ensuite, nous lançons mysqldump sur l'esclave, ce qui n'affecte pas les performances du serveur principal. En savoir plus sur la réplication ici : http://dev.mysql.com/doc/refman/5.5/en/replication.html

Je pense que l'idée est que vous voulez effectuer des sauvegardes environ une fois par jour en utilisant une méthode très fiable comme mysqldump. Entre-temps, vous avez un maître et un esclave qui se répliquent et produisent des journaux binaires. Les journaux binaires peuvent être utilisés pour effectuer de petites mises à jour. Selon mon expérience, les outils de sauvegarde à chaud ont tendance à bloquer une opération ou une autre, ce qui peut causer une mauvaise expérience à un utilisateur.

1voto

John Gardeniers Points 27097

Dans une certaine mesure, cela dépend des options de restauration que vous souhaitez. Certaines méthodes fonctionnent (principalement), mais limitent considérablement vos capacités de restauration. Par exemple, une sauvegarde au niveau du système de fichiers vous permet uniquement de restaurer sur la même machine ou sur un clone. Utiliser des journaux binaires à des fins de sauvegarde comporte des risques, car le journal binaire ne raconte pas toute l'histoire.

Utiliser mysqldump sur un réplicat est la meilleure option dans la grande majorité des cas. Cela vous permet non seulement de sauvegarder sans perturber le maître, mais si vous configurez un maître/maître au lieu d'un maître/esclave, vous ajoutez également de la redondance. Si vous devez mettre le maître hors ligne pour une raison quelconque, redirigez simplement votre application vers le deuxième système en premier.

1voto

Maxwell Points 5016

En conjonction avec une sauvegarde mysqldump, vous pouvez répliquer les données vers un esclave MySQL où les données sont stockées sur un système de fichiers avec une fonctionnalité de snapshot comme ZFS. Dans ce cas, vous arrêtez l'esclave, prenez un snapshot et redémarrez l'esclave.

0voto

the-wabbit Points 40039

Le schéma de sauvegarde de base de données comprendrait les composants suivants:

  1. données de la base de données et journaux de transactions sur des disques physiques différents
  2. sauvegardes fréquentes pouvant être restaurées

L'idée derrière cela est que en cas de défaillance du disque (ou du groupe de disques) de la base de données, vous serez en mesure de restaurer vos données jusqu'à la dernière transaction avec votre sauvegarde précédemment prise et un replay des derniers journaux de transactions qui n'ont pas été touchés par la défaillance.

Sur comment faire cela, une question similaire a déjà été posée et a reçu une référence à la documentation MySQL qui décrit quelques options.

Je recommanderais vivement de ne pas utiliser la réplication comme une "stratégie" de sauvegarde - ce n'est pas conçu comme une sauvegarde. Certaines personnes utilisent la réplique pour réduire la charge et la concurrence de verrouillage sur le serveur de base de données principal en utilisant la base de données d'un esclave comme source de sauvegarde. Cependant, vous êtes toujours confrontés au problème de la vérification de la cohérence de l'ensemble de données de l'esclave - MySQL ne le fait pas pour vous et il est facile de se tromper avec la réplication MySQL par mauvaise configuration. Il existe des outils pour vérifier la cohérence comme mk-table-checksum de maatkit, mais encore une fois, peu est gagné - la vérification de la cohérence mettrait de la charge et des verrous sur les tables de votre maître.

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