Maison  >  Article  >  base de données  >  Gestion des journaux d'exploitation et de maintenance MySQL

Gestion des journaux d'exploitation et de maintenance MySQL

齐天大圣
齐天大圣original
2020-06-01 07:53:041628parcourir

Les logiciels généralement matures auront leurs propres fichiers journaux. Utilisez ces journaux pour localiser rapidement les problèmes. Dans Mysql, les journaux sont divisés dans les catégories suivantes :

  • Journal des requêtes lentes Lorsque le temps d'exécution de SQL dépasse la valeur définie, il sera enregistré

  • Journal des erreurs, lorsqu'une erreur se produit lorsque mysql démarre, s'arrête ou s'exécute, elle sera enregistrée dans le journal des erreurs

  • Journal binaire, ce journal enregistre les instructions SQL qui changent les données de la base de données. Grâce à lui, nous pouvons récupérer les données Mysql

  • Le journal des requêtes Lorsqu'il est activé, la requête SQL sera enregistrée.

Aujourd'hui, nous parlerons des requêtes lentes, des journaux d'erreurs, des journaux de requêtes et des fichiers journaux binaires. Nous les expliquerons en détail plus tard dans un nouvel article.

Journal des erreurs

Le journal des erreurs enregistre les problèmes qui se produisent lorsque Mysql démarre et s'arrête, et enregistre également les problèmes majeurs qui se produisent lorsque Mysql est en cours d'exécution . Vous pouvez utiliser des variables show telles que « log_err% » pour afficher l'emplacement du fichier journal des erreurs.

mysql> show variables like 'log_err%';
+---------------------+-------------------------------+
| Variable_name       | Value                         |
+---------------------+-------------------------------+
| log_error           | ./iZbp171edtq2kx5iy0xufeZ.err |
| log_error_verbosity | 3                             |
+---------------------+-------------------------------+
2 rows in set (0.01 sec)

Le journal des erreurs utilise le nom d'hôte comme nom de fichier par défaut, err comme suffixe et est stocké dans le répertoire /var sous le répertoire mysql. Si nous voulons le modifier, nous pouvons modifier l'élément log_error dans le fichier de configuration. Vous pouvez utiliser un chemin relatif ou un chemin absolu. Si vous utilisez un chemin relatif, vous modifierez uniquement le nom du fichier journal des erreurs, et si vous utilisez un chemin absolu, vous pourrez modifier l'emplacement où le journal des erreurs est stocké.

L'affichage du journal des erreurs est également très simple, il suffit d'utiliser cat ou vim pour l'afficher.

Journal des requêtes générales

Le journal des requêtes générales enregistre toutes les opérations des utilisateurs, il prend donc généralement beaucoup de place et est généralement utilisé quotidiennement fonctionnement et maintenance. Il ne sera pas activé et le journal est également fermé par défaut. Si vous souhaitez l'activer, vous pouvez ajouter l'option de journalisation au fichier de configuration.

Journal des requêtes lentes

Slow Query est un très bon outil pour résoudre les problèmes SQL Dans de nombreux cas, c'est notre SQL qui provoque le problème. Le système ne fonctionne pas correctement. L'auteur a déjà commis cette erreur, en utilisant une instruction de requête très complexe, et le système a obtenu 502 dès qu'il était obsolète. Il y a quelque temps, j'ai découvert que l'ancien projet de l'entreprise présentait également des problèmes correspondants. Le projet utilisait des dedecms. Lorsque la quantité de données atteignait un certain niveau, un grand nombre de requêtes lentes apparaissaient, puis l'ensemble du processeur du système était plein. Par conséquent, nous devons vérifier fréquemment le journal des requêtes lentes pour trouver le problème SQL.

Élément de configuration de requête lente

  • slow-query-log={0|off|1|on} Que ce soit Activez la fonction de journal des requêtes lentes

  • slow-query-time=10 Le seuil défini, en secondes, prend en charge les nombres à virgule flottante. Lorsque le temps d'exécution de SQL dépasse cette valeur, cela sera enregistré dans le journal des requêtes lentes. Si défini sur 0, toutes les requêtes seront enregistrées

  • slow_query_log_file=/mydata/data/hostname-slow.log L'emplacement et le nom de fichier du journal des requêtes lentes

  • log_queries_not_using_indexes=OFF Cet élément indique que les requêtes qui n'utilisent pas d'index seront également enregistrées dans le journal des requêtes lentes.

Case

Maintenant, j'active mon journal de requêtes lentes MySQL et je règle l'heure sur 0, j'enregistre tout SQL. Voyons ensuite à quoi ressemble le journal des requêtes lentes.

Tcp port: 3306  Unix socket: /tmp/mysql.sock
Time                 Id Command    Argument
# Time: 2020-05-31T12:00:01.895700Z
# User@Host: blog[blog] @ localhost []  Id:     3
# Query_time: 0.000170  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 0
use blog;
SET timestamp=1590926401;
SET NAMES utf8mb4;
# Time: 2020-05-31T12:00:01.902684Z
# User@Host: blog[blog] @ localhost []  Id:     3
# Query_time: 0.006914  Lock_time: 0.006529 Rows_sent: 0  Rows_examined: 120
SET timestamp=1590926401;
SELECT * FROM knowledge 
            WHERE is_delete=0 AND star < 5 AND show_time <= 1590854400   ORDER BY  show_time ASC 
            LIMIT 1;

Nous regardons principalement la ligne Query_time

  • Query_time : Query time

  • Lock_time : Lock table time

  • Rows_sent : lignes de données obtenues

  • Rows_examined : lignes de données analysées

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn