Big sauvegarde de Base de données des meilleures pratiques
Je maintenir des bases de données MySQL. J'ai besoin de sauvegarder tous les soirs, mais la bd est actif tout le temps. Il y a des requêtes des utilisateurs.
Maintenant, je viens de désactiver le site web et ensuite faire une sauvegarde, mais c'est très mauvais que le service est désactivé et les utilisateurs n'aiment pas cela.
Ce qui est une bonne façon de sauvegarder les données si les données sont modifiées au cours de la sauvegarde?
Quelles sont les meilleures pratiques?
OriginalL'auteur Roman Gelembjuk | 2012-05-08
Vous devez vous connecter pour publier un commentaire.
J'ai mis en place ce système à l'aide d'une lecture seule esclave de réplication de mon serveur de base de données.
MySQL Réplication de Base de données est assez facile à configurer et à contrôler. Vous pouvez le configurer pour obtenir toutes les modifications apportées à votre base de données de production, puis de le prendre hors ligne tous les soirs pour faire une sauvegarde.
L'Esclave de Réplication de serveur peut être mis en lecture seule pour s'assurer qu'aucune modification ne peut être faite directement.
Il y a d'autres façons de faire qui ne nécessitent pas l'esclave de réplication, mais dans mon expérience, c'était une bonne façon de résoudre ce problème.
Voici un lien vers les docs sur La Réplication MySQL.
Il est intéressant. Ce qui se passe quand vous faites de l'esclave en ligne après une sauvegarde? N'MySQL commence à copier les derniers changements? Est-ce une grande charge pour le serveur lorsque mysql fait cela?
La réplication est gérée par un seul thread sur le serveur maître d'envoi des opérations une à une à l'esclave, où ils sont ensuite appliquées. Une fois que vous apportez à l'esclave de retour en ligne il s'enclenche en place de façon à ne pas mettre une charge très lourde sur le maître. Il utilise une seule connexion de base de données. Charge sur le maître n'est pas un problème. Je l'ai fait sur une grande base de données avec près de 1 to de données.
OriginalL'auteur Kevin Bedell
Si vous avez un très large (50 G+ comme moi) MySQL MyISAM uniquement les bases de données, vous pouvez utiliser des verrous et
rsync
. Selon la documentation de MySQL vous pouvez copier les fichiers raw tout lu de verrouillage est actif et vous ne pouvez pas le faire avec InnoDB.Donc, si le but est de zéro temps d'arrêt et vous avez plus d'espace disque, créer un script:
Puis effectuez les opérations suivantes:
flush tables
flush tables with read lock;
unlock tables;
Lors de la première exécution rsync va copier beaucoup de choses sans s'arrêter MySQL. La deuxième manche sera très court, cela ne fera que retarder l'écriture de requêtes, c'est donc un réel, sans interruption solution.
rsync
de/tmp/mysql/sync
à un serveur distant, de compression, de garder les versions incrémentielles, tout ce que vous voulez.Ce n'est pas une sauvegarde, mais une véritable exacte raw copie de données MySQL, donc pas de surprise. J'ai utilisé cette méthode lors de la migration d'un serveur à un autre.
OriginalL'auteur sekrett
Cette partie dépend de si vous utilisez innodb ou myiasm. Pour innodb; mySQL ont leur propre (qui coûte de l'argent) solution (innodb hot copie), mais il existe une version open source de Percona vous pouvez regarder:
http://www.percona.com/doc/percona-xtrabackup/
OriginalL'auteur Christopher Padfield
Ce que vous voulez faire est appelé "sauvegarde en ligne". Voici un pointeur vers une matrice des options possibles avec plus d'informations:
http://www.zmanda.com/blogs/?p=19
Il se résume essentiellement vers le backend de stockage que vous utilisez et la quantité de matériel dont vous disposez.
OriginalL'auteur Mario