Heim >Datenbank >MySQL-Tutorial >MySQL-Betriebs- und Wartungsprotokollverwaltung

MySQL-Betriebs- und Wartungsprotokollverwaltung

齐天大圣
齐天大圣Original
2020-06-01 07:53:041711Durchsuche

Im Allgemeinen verfügt ausgereifte Software über eigene Protokolldateien. Verwenden Sie diese Protokolle, um Probleme schnell zu lokalisieren. In MySQL sind Protokolle in die folgenden Kategorien unterteilt:

  • Langsames Abfrageprotokoll Wenn die Ausführungszeit von SQL den festgelegten Wert überschreitet, wird dies aufgezeichnet

  • Fehlerprotokoll: Wenn beim Starten, Stoppen oder Ausführen von MySQL ein Fehler auftritt, wird dieser im Fehlerprotokoll aufgezeichnet

  • Binärprotokoll, dieses Protokoll zeichnet die SQL-Anweisungen auf, die sich ändern Durch ihn können wir MySQL-Daten wiederherstellen.

  • Abfrageprotokoll wird aufgezeichnet.

Heute werden wir über langsame Abfragen, Fehlerprotokolle, Abfrageprotokolle und binäre Protokolldateien sprechen. Wir werden sie später in einem neuen Artikel ausführlich erläutern.

Fehlerprotokoll

Das Fehlerprotokoll zeichnet Probleme auf, die beim Starten und Stoppen von MySQL auftreten, und zeichnet auch größere Probleme auf, die beim Ausführen von MySQL auftreten . . Sie können Show-Variablen wie „log_err%“ verwenden, um den Speicherort der Fehlerprotokolldatei anzuzeigen.

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

Das Fehlerprotokoll verwendet standardmäßig den Hostnamen als Dateinamen, err als Suffix und wird im Verzeichnis /var unter dem MySQL-Verzeichnis gespeichert. Wenn wir es ändern möchten, können wir das Element log_error in der Konfigurationsdatei ändern. Sie können einen relativen oder einen absoluten Pfad verwenden. Wenn Sie einen relativen Pfad verwenden, ändern Sie nur den Namen der Fehlerprotokolldatei. Wenn Sie einen absoluten Pfad verwenden, können Sie den Speicherort des Fehlerprotokolls ändern.

Das Anzeigen des Fehlerprotokolls ist ebenfalls sehr einfach. Verwenden Sie einfach cat oder vim, um es anzuzeigen.

Allgemeines Abfrageprotokoll

Das allgemeine Abfrageprotokoll zeichnet alle Benutzervorgänge auf, nimmt daher im Allgemeinen viel Platz ein und wird im Allgemeinen täglich verwendet Betrieb und Wartung Es wird nicht aktiviert und das Protokoll ist standardmäßig ebenfalls geschlossen. Wenn Sie es aktivieren möchten, können Sie die Protokolloption zur Konfigurationsdatei hinzufügen.

Slow Query Log

Slow Query ist ein sehr gutes Tool zur Fehlerbehebung bei SQL-Problemen. In vielen Fällen ist es unser SQL, das das verursacht System läuft nicht rund. Der Autor hat diesen Fehler schon einmal gemacht, indem er eine sehr komplexe Abfrageanweisung verwendet hat, und das System hat 502 erhalten, sobald sie veraltet war. Vor einiger Zeit stellte ich fest, dass das alte Projekt des Unternehmens auch entsprechende Probleme hatte. Wenn die Datenmenge ein bestimmtes Niveau erreichte, traten viele langsame Abfragen auf und die CPU des gesamten Systems war voll. Daher müssen wir das Protokoll der langsamen Abfrage regelmäßig überprüfen, um das SQL-Problem zu finden.

Konfigurationselement für langsame Abfragen

  • slow-query-log={0|off|1|on} Ob Aktivieren Sie die Protokollfunktion für langsame Abfragen

  • Der durch slow-query-time=10 festgelegte Schwellenwert in Sekunden unterstützt Gleitkommazahlen. Wenn die Ausführungszeit von SQL diesen Wert überschreitet, wird dies im langsamen Abfrageprotokoll aufgezeichnet. Wenn auf 0 gesetzt, werden alle Abfragen aufgezeichnet

  • slow_query_log_file=/mydata/data/hostname-slow.log Der Speicherort und Dateiname des langsamen Abfrageprotokolls

  • log_queries_not_using_indexes=OFF Dieses Element gibt an, dass Abfragen, die keine Indizes verwenden, auch im langsamen Abfrageprotokoll aufgezeichnet werden.

Fall

Jetzt schalte ich mein langsames MySQL-Abfrageprotokoll ein und setze die Zeit auf 0, um alles aufzuzeichnen SQL. Schauen wir uns dann an, wie das Slow-Query-Log aussieht.

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;

Wir schauen uns hauptsächlich die Zeile „Query_time“ an

  • Query_time: Abfragezeit

  • Lock_time: Sperrtabellenzeit

  • Rows_sent: Erhaltene Datenzeilen

  • Rows_examined: Gescannte Datenzeilen

Das obige ist der detaillierte Inhalt vonMySQL-Betriebs- und Wartungsprotokollverwaltung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn