Meilleures pratiques pour effectuer une sauvegarde du serveur MySQL:
Réplication MySQL
Configuration de la réplication dans MySQL. Vous devrez configurer le serveur maître et esclave. Toutes les écritures en lecture dans la base de données peuvent aller sur votre serveur esclave. L'avantage de la réplication est que vous pouvez effectuer une sauvegarde de votre serveur esclave sans interrompre le serveur maître. Votre application continuera à fonctionner sur le maître sans aucun temps d'arrêt.
Utilisation de MySQL Dump
Si votre ensemble de données est petit (je me rends compte que "petit" est un terme relatif .. pour le qualifier, disons <10 Go), alors mysqldump fonctionnera probablement très bien. C'est facile, c'est en ligne et c'est très flexible. Juste quelques choses que mysqldump peut faire: sauvegarder tout ou simplement certaines bases de données ou tables sauvegarder uniquement le DDL optimiser le vidage pour une restauration plus rapide rendre le fichier sql résultant plus compatible avec d'autres SGBDR et bien d'autres choses.
Cependant, les options les plus importantes sont liées à la cohérence de votre sauvegarde. Mes options préférées sont: --single-transaction: cette option donne une sauvegarde cohérente, si (et seulement si) les tables utilisent le moteur de stockage InnoDB. Si vous avez des tables MyISAM non en lecture seule, n'utilisez pas cette option lorsque vous les sauvegardez. --master-data = 2: cette option s'assurera que votre vidage est cohérent (en effectuant un verrouillage de toutes les tables sauf si vous avez ajouté l'option --single-transaction). L'option --master-data enregistre également la position du journal binaire dans le fichier de vidage résultant (= 2 fait que cette ligne est un commentaire dans le fichier de vidage)
Remarque finale sur mysqldump: gardez à l'esprit que le temps de restauration peut être considérablement plus long que le temps de sauvegarde. Cela dépendra de plusieurs facteurs, par exemple le nombre d'index dont vous disposez.
Instantané LVM
Pour ceux qui ont des ensembles de données plus importants, une sauvegarde physique est la solution. Bien que vous puissiez effectuer une sauvegarde à froid (par exemple, arrêter le service MySQL, copier le répertoire de données, redémarrer le service), de nombreuses personnes ne veulent pas de temps d'arrêt. Ma solution préférée est les instantanés. Cela peut être chaud (pour InnoDB) ou nécessiter un bref verrouillage (pour MyISAM). N'oubliez pas d'inclure toutes vos données (notamment les ib_logfiles). Lenz fournit un bel utilitaire pour vous aider avec ceci: http://www.lenzg.net/mylvmbackup/
Utilisation de MySQL Enterprise Backup
Avantages de l'utilisation de MySQL Enterprise Backup:
- Les sauvegardes "à chaud" des tables InnoDB ont lieu entièrement en ligne, sans bloquer la sauvegarde uniquement des tables ou des espaces de table particuliers
- Sauvegarder uniquement les données modifiées depuis une sauvegarde précédente
- Sauvegarde compressée - Économise le stockage jusqu'à 90% et bien plus encore.
Référence:
http://www.mysql.com/products/enterprise/backup/features.html
http://www.mysql.com/products/enterprise/backup.html
--single-transaction
mais n'oubliez pas d'ajouter--events --routines
et j'utilise toujours--triggers
aussi, même s'il est activé par défaut, car il peut être désactivé dans my.cnf. Je dirais qu'il est à peu près toujours bon de les utiliser comme pratique standard, que vous ayez actuellement ces types d'objets dans votre base de données ou non.