34 votes

Meilleure pratique pour sauvegarder une base de données MySQL de production ?

Quelle est la meilleure pratique pour sauvegarder une base de données MySQL de production (c'est-à-dire sur un site Web actif et susceptible d'être mis à jour) ?

Voici quelques objectifs que j'ai en tête :

  • La sauvegarde de la base de données doit être un instantané cohérent en interne.
  • ne pas verrouiller le site web pendant que la sauvegarde est en cours
  • (agréable à avoir) sauvegardes incrémentales des changements seulement
  • automatisé
  • possibilité de le faire à distance
  • sécurisé

24voto

Rishi Agarwal Points 985

Je vous suggère d'installer Réplication dans MySQL. Vous devrez configurer un serveur maître et un serveur esclave. Toutes les lectures-écritures de la base de données doivent se faire sur votre serveur maître.

La sauvegarde de la base de données peut alors être effectuée à partir du serveur esclave sans interrompre le serveur maître. Même si vous mettez en pause/arrêtez le processus de réplication pendant le processus de sauvegarde, le maître ne sera pas affecté. Seul l'esclave sera affecté pendant ce temps. Mais comme les lectures-écritures sont dirigées vers le maître, votre site web ne sera pas bloqué.

Pour permettre les sauvegardes incrémentielles, avec la configuration maître-esclave, vous devrez activer la journalisation binaire sur l'esclave également (le maître aura toujours besoin de la journalisation binaire pour la réplication).

Pour effectuer une réplication sécurisée, vous devrez connecter Maître-Esclave avec une connexion SSL.

Vous pouvez trouver toutes les informations aquí

12voto

Nathacof Points 222

MySQL dispose d'un outil permettant d'effectuer des sauvegardes en ligne : HotCopy de MySQL .

Malheureusement, cela ne fonctionne que pour les tables MyISAM et ARCHIVE.

Mysqldump peut tout gérer sauf les sauvegardes incrémentales.

Pour les tables InnoDB, mysqldump permet d'effectuer une sauvegarde en ligne :

shell> mysqldump --all-databases --single-transaction > all_databases.sql

Si vous avez besoin de sauvegardes incrémentielles, vous pouvez vous tourner vers la journalisation binaire de MySQL : Journal binaire .

La sauvegarde des journaux binaires n'enregistre que les requêtes qui modifient les données, et vous pouvez également effectuer des restaurations ponctuelles. Récupération de la sauvegarde .

Nathan Coffield, ingénieur en serveurs dédiés, ncoffield@hostmysite.com, www.hostmysite.com

8voto

Charles Faiga Points 5003

Une façon de le faire est d'exécuter la réplication sur un second serveur.

- Arrêter la réplication

- Faites la sauvegarde sur le second serveur

- Redémarrer la réplication

Cela vous donne l'avantage supplémentaire que si votre serveur principal meurt, vous avez une copie vivante des données.

2voto

Berek Bryan Points 1770

Dans l'un des blogcasts de stackoverflow.com, Jeff et Joel ont mentionné l'utilisation de SVN pour sauvegarder les bases de données. Cela semble être une excellente idée et mon entreprise prévoit de changer notre système de sauvegarde pour adopter cette approche.

Je n'ai pas fait de recherches sur le sujet jusqu'à présent, mais Jeff semblait assez catégorique sur le fait d'avoir des sauvegardes de versions des bases de données.

1voto

Powerlord Points 43989

Si vous ne voulez que des changements incrémentaux, vous pouvez prendre des copies de la base de données MySQL journaux binaires .

Mais ce n'est pas vraiment une bonne pratique. mysqldump y mysqlhotcopy (uniquement pour les tables MyISAM et ARCHIVE) doit être utilisé pour les sauvegardes régulières.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X