Services webmasters
Partenaires
Jeux concours gratuits
 
Administration du serveur
<<<
Sauvegardes de base de données Syntaxe de BACKUP TABLE
>>>

4.4 Prévention des désastres et restauration
4 Administration du serveur
 Manuel de Référence MySQL 4.1 : Version Française

->Sauvegardes de base de données
Syntaxe de BACKUP TABLE
Syntaxe de RESTORE TABLE
Syntaxe de CHECK TABLE
Syntaxe de REPAIR TABLE
Utilisation de myisamchk pour la maintenance des tables et leur recouvrement
Mettre en place un régime d'entretien de MySQL
Obtenir des informations sur une table

4.4.1 Sauvegardes de base de données

Comme les tables MySQL sont stockées sous forme de fichiers, il est facile d'en faire une sauvegarde. Pour avoir une sauvegarde consistante, faites un LOCK TABLES sur les tables concernées suivi d'un FLUSH TABLES pour celles-ci. Syntaxe des LOCK TABLES/UNLOCK TABLES . Syntaxe de FLUSH . Vous n'avez besoin que d'un verrou en lecture; cela permet aux autre threads de continuer à effectuer des requêtes sur les tables dont vous faites la copie des fichiers dans le dossier des bases de données. FLUSH TABLE est requise pour s'assurer que toutes les pages d'index actifs soient écrits sur le disque avant de commencer la sauvegarde.

Si vous voulez faire une sauvegarde d'une table avec SQL, vous pouvez utiliser SELECT INTO OUTFILE ou BACKUP TABLE . Syntaxe des SELECT . Syntaxe de BACKUP TABLE .

Une autre façon de sauvegarder une base de données est d'utiliser l'utilitaire mysqldump ou le script mysqlhotcopy . mysqldump , exporter les structures de tables et les données . mysqlhotcopy , copier les bases et tables MySQL .
  • Effectuez une sauvegarde complète de votre base de données :
    
    shell> mysqldump --tab=/chemin/vers/un/dossier --opt --all

    ou

    shell> mysqlhotcopy base /chemin/vers/un/dossier
    Vous pouvez aussi copier tout simplement tous les fichiers de tables (les fichiers *.frm , *.MYD , et *.MYI ) du moment que le serveur ne met rien à jour. Le script mysqlhotcopy utilise cette méthode.
  • Arrêtez mysqld si il est en marche, puis démarrez le avec l'option --log-update[=nom_fichier] . Le log des mises à jour . Le ou les fichiers de log fournissent les informations dont vous avez besoin pour répliquer les modifications de la base de données qui sont subséquents au moment où vous avez exécuté mysqldump .
Si vous avez besoin de restaurer quelque chose, essayez d'abord de recouvrer vos tables avec REPAIR TABLE ou myisamchk -r en premier. Cela devrait fonctionner dans 99.9% des cas. Si myisamchk ne réussi pas, essayez la procédure suivante (cela ne fonctionnera que si vous avez démarré MySQL avec --log-update , Le log des mises à jour ) :
  • Restorez le backup original de mysqldump .
  • Exécutez la commande suivante pour remettre en marche les mises à jours dans le log binaire :
    
    shell> mysqlbinlog hostname-bin.[0-9]* | mysql
    
    Si vous utilisez le journal des mises à jour vous pouvez utiliser :
    
    shell> ls -1 -t -r hostname.[0-9]* | xargs cat | mysql
    
ls est utilisée pour avoir tous les fichiers de mise à jour dans le bon ordre.

Vous pouvez aussi faire des sauvegardes sélectives avec SELECT * INTO OUTFILE 'nom_fichier' FROM nom_de_table et restaurez avec LOAD DATA INFILE 'nom_fichier' REPLACE ... Pour éviter les lignes dupliquées, vous aurez besoin d'une PRIMARY KEY ou une clef UNIQUE dans la table. Le mot clef REPLACE fait que les anciens enregistrements sont remplacés par les nouveaux lorsque l'un d'eux duplique un ancien sur une valeur de clef unique.

Si vous obtenez des problèmes de performances sur votre système, vous pouvez les contourner en mettant en place une réplication et faisant les copies sur l'esclave au lieu du maître. Introduction .

Si vous utilisez un système de fichiers Veritas , vous pourrez faire :

  • A partir d'un client (ou de Perl), exécutez : FLUSH TABLES WITH READ LOCK .
  • A partir d'un autre shell, exécutez : mount vxfs snapshot .
  • Depuis le premier client, exécutez : UNLOCK TABLES .
  • Copiez les fichiers à partir de snapshot.
  • Démontez snapshot.

<< Sauvegardes de base de données >>
Administration du serveur Prévention des désastres et restauration Syntaxe de BACKUP TABLE
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -