Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment lire les fichiers journaux binaires MySQL (BinLog) avec mysqlbinlog

Le serveur de base de données MySQL génère des fichiers journaux binaires pour chaque transaction vers les bases de données, à condition que l'administrateur ne désactive pas ou ne commente pas le paramètre "log-bin" dans le fichier de configuration my.cny. Les fichiers journaux binaires sont écrits au format binaire. Bien que les journaux binaires, ou également connus sous le nom de logbin, soient principalement utilisés à des fins de réplication de base de données MySQL, vous devrez parfois examiner ou lire le contenu des journaux binaires au format texte, où l'utilitaire mysqlbinlog vous sera utile.

Le fichier journal binaire, qui a normalement un nom au format host_name-bin.xxxxxx et stocké dans le répertoire /var/lib/mysql, n'a pas pu être ouvert et lu immédiatement car il est au format binaire illisible. Pour lire les journaux binaires au format texte, nous pouvons utiliser la commande mysqlbinlog, qui est également capable de lire les fichiers journaux de relais écrits par un serveur esclave dans une configuration de réplication. Les journaux de relais ont le même format que les fichiers journaux binaires.

Pour utiliser l'utilitaire mysqlbinlog, c'est simple, utilisez simplement la syntaxe de commande suivante pour invoquer mysqlbinlog après vous être connecté en tant que root (sinon vous devez spécifier le nom d'utilisateur et le mot de passe) pour shell via SSH :

mysqlbinlog [options] log_file ...

Donc, pour lire et afficher le contenu du fichier journal binaire nommé binlog.000001, utilisez cette commande :

mysqlbinlog binlog.000001

Les fichiers journaux binaires et leurs données sont susceptibles d'être très volumineux, ce qui rend presque impossible la lecture de quoi que ce soit à l'écran. Cependant, vous pouvez diriger la sortie de mysqlbinlog dans un fichier qui peut être ouvert pour une navigation ultérieure dans l'éditeur de texte, en utilisant la commande suivante :

mysqlbinlog binlog.000001 > filename.txt

Pour réduire la quantité de données extraites des journaux binaires, plusieurs options peuvent être utilisées pour limiter les données renvoyées. Parmi les plus utiles, ci-dessous :

–start-datetime=dateheure

Commencez à lire le journal binaire au premier événement ayant un horodatage égal ou ultérieur à l'argument datetime. La valeur datetime est relative au fuseau horaire local de la machine sur laquelle vous exécutez mysqlbinlog. La valeur doit être dans un format accepté pour les types de données DATETIME ou TIMESTAMP. Par exemple :

mysqlbinlog --start-datetime="2005-12-25 11:25:56" binlog.000001

–stop-datetime=dateheure

Arrêtez de lire le journal binaire au premier événement ayant un horodatage égal ou postérieur à l'argument datetime. Cette option est utile pour la récupération ponctuelle. Voir la description de l'option –start-datetime pour plus d'informations sur la valeur datetime.

–start-position=N

Commencez à lire le journal binaire au premier événement ayant une position égale à l'argument N. Cette option s'applique au premier fichier journal nommé sur la ligne de commande.

–stop-position=N

Arrêtez de lire le journal binaire au premier événement ayant une position égale ou supérieure à l'argument N. Cette option s'applique au dernier fichier journal nommé sur la ligne de commande.

Pour plus d'informations sur l'utilisation de mysqlbinlog, visitez ici.