Services webmasters
Partenaires
Jeux concours gratuits
 
Le log général de requêtes
<<<
Le log de modification Le log binaire de modifications
>>>

4.9 Les fichiers de log de MySQL
4 Administration du serveur
 Manuel de Référence MySQL 4.1 : Version Française

Le log d'erreurs
Le log général de requêtes
->Le log de modification
Le log binaire de modifications
Le log des requêtes lentes
Entretien des fichiers de log

4.9.3 Le log de modification

Note : le log de modifications a été remplacé par le log binaire. Le log binaire des mises à jour . Avec ce nouveau log, vous pouvez faire tout ce que vous faisiez avec le log de modifications.

Lors l'option --log-update[=file_name] est utilisée au démarrage, mysqld écrit un fichier de log contenant toutes les commandes SQL qui modifie les données. Si aucun fichier n'est spécifié, il prendra la valeur par défaut du nom de l'hôte. Si un fichier est spécifié mais qu'aucun chemin n'est indiqué, le fichier sera écrit dans le dossier de données. Si le fichier file_name n'a pas d'extension, mysqld va créer un fichier de log avec ce nom : file_name.### , où ### est un nombre qui s'incrémente à chaque vois que vous exécutez la commande mysqladmin refresh , mysqladmin flush-logs , FLUSH LOGS ou que vous redémarrez le serveur.

Note : pour que la technique ci-dessus fonctionne, vous ne devez pas créer de fichiers avec le nom du fichier de log + une extension, qui pourrait être considérée comme un nombre, dans le dossier qui contient les log de modifications.

Si vous utilisez les options --log ou -l , mysqld écrit un log général avec le nom de hostname.log , et les redémarrage ou les rafraîchissements de fichiers de logs ne généreront pas de nouveaux fichiers (même si le fichier lui même est bien refermé, puis ouvert). Dans ce cas, vous pouvez le copier sous Unix avec :


mv hostname.log hostname-old.log
mysqladmin flush-logs
cp hostname-old.log to-backup-directory
rm hostname-old.log
Le fichier de log de modification est très utile, car il n'enregistre que les commandes qui modifient les données. Ce qui fait qu'une commande UPDATE ou DELETE avec une requête WHERE qui ne trouve pas de lignes ne seront pas écrites dans ce fichier. Il va même ignorer les requêtes UPDATE qui modifie une colonne avec la valeur déjà présente.

L'enregistrement dans le log de modification est fait juste après l'achèvement de la requête, mais avant la levée des verrous, et les validations. Cela garantit que la requête sera enregistrée.

Si vous voulez modifier une base grâce aux fichier de log de modification, vous pouvez utiliser la commande suivante (en supposant que vos fichiers de log de modification porte le nom de file_name.### ) :

shell> ls -1 -t -r file_name.[0-9]* | xargs cat | mysql
ls est utilisé pour obtenir toute la liste des fichiers de logs du dossier.Ceci peut être utile si vous devez repartir d'un fichier de sauvegarde après un crash, et que vous souhaitez réexécuter les modifications qui ont eu lieu depuis la sauvegarde.

<< Le log de modification >>
Le log général de requêtes Les fichiers de log de MySQL Le log binaire de modifications
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -