Zusammenfassung einiger gängiger Protokolle in MySQL

Zusammenfassung einiger gängiger Protokolle in MySQL

Vorwort:

Im MySQL-System gibt es viele verschiedene Arten von Protokollen. Verschiedene Protokolle haben ihre eigenen Verwendungszwecke. Durch die Analyse von Protokollen können wir die Datenbankleistung optimieren, Probleme beheben und sogar Daten wiederherstellen. Diese unterschiedlichen Protokolltypen helfen uns dabei, die Datenbank besser zu verstehen. Außerdem werden wir beim täglichen Lernen sowie bei Betrieb und Wartung mit diesen Protokollen umgehen. Dieser Abschnitt stellt Ihnen die Funktionen und Verwaltungsmethoden mehrerer gängiger Protokolle in der MySQL-Datenbank vor.

1. Fehlerprotokoll

Das Fehlerprotokoll zeichnet Informationen zum Starten und Stoppen von MySQLD sowie Fehler und Warnungen auf, die während des Serverbetriebs auftreten. Wenn die Datenbank unerwartet abstürzt oder andere Fehler auftreten, sollten wir das Fehlerprotokoll überprüfen.

Der Parameter log_error steuert, ob das Fehlerprotokoll in eine Datei geschrieben wird und den Dateinamen. Standardmäßig wird das Fehlerprotokoll in die Standardausgabe des Terminals stderr geschrieben. Natürlich wird empfohlen, den Parameter log_error anzugeben, um den Speicherort und den Namen der Fehlerprotokolldatei anzupassen.

# Geben Sie den Speicherort und den Namen des Fehlerprotokolls an vim /etc/my.cnf 
[mysqld] 
log_error = /data/mysql/logs/error.log

Beschreibung der zugehörigen Konfigurationsvariablen:
log_error={1 | 0 | /PFAD/ZUM/FEHLERLOGDATEINAME}
Definiert die Fehlerprotokolldatei. Der Umfang liegt global oder auf Sitzungsebene und ist eine nicht dynamische Variable.

2. Langsames Abfrageprotokoll

Das Protokoll langsamer Abfragen wird verwendet, um Abfrageanweisungen aufzuzeichnen, deren Ausführungszeit die durch die Variable „long_query_time“ definierte Zeit überschreitet. Durch das Protokoll langsamer Abfragen können Sie herausfinden, welche Abfrageanweisungen eine geringe Ausführungseffizienz aufweisen, um sie zu optimieren.

Einige Parameter im Zusammenhang mit langsamen Abfragen lauten wie folgt:

  1. slow_query_log: Gibt an, ob das langsame Abfrageprotokoll aktiviert werden soll. Der Standardwert ist 0 und kann auf 0 oder 1 gesetzt werden.
  2. slow_query_log_file: Gibt den Speicherort und Namen des langsamen Abfrageprotokolls an. Der Standardwert ist host_name-slow.log. Ein absoluter Pfad kann angegeben werden.
  3. long_query_time: Schwellenwert für langsame Abfrageausführungszeit. Wenn die Zeit diesen Schwellenwert überschreitet, wird die Abfrage aufgezeichnet. Der Standardwert beträgt 10 Sekunden.
  4. log_output: Das Ausgabeziel des langsamen Abfrageprotokolls. Der Standardwert ist „file“, was bedeutet, dass das Protokoll in eine Datei ausgegeben wird.

Standardmäßig ist das Protokoll für langsame Abfragen nicht aktiviert. Es wird generell empfohlen, es zu aktivieren, um die Optimierung langsamer SQL-Abfragen zu erleichtern. Die folgenden Parameter können der Konfigurationsdatei hinzugefügt werden:

# Konfiguration im Zusammenhang mit dem langsamen Abfrageprotokoll. Sie können vim /etc/my.cnf entsprechend der tatsächlichen Situation ändern. 
[mysqld] 
slow_query_log = 1
slow_query_log_file = /data/mysql/logs/slow.log
lange_Abfragezeit = 3
log_output = DATEI

3. Allgemeines Abfrageprotokoll (allgemeines Protokoll)

Das allgemeine Abfrageprotokoll, auch als universelles Abfrageprotokoll bekannt, ist das detaillierteste Protokoll in MySQL. Dieses Protokoll zeichnet alle zugehörigen Vorgänge von mysqld auf. Wenn Clients eine Verbindung herstellen oder trennen, schreibt der Server Informationen in dieses Protokoll und zeichnet jede von den Clients empfangene SQL-Anweisung auf. Das allgemeine Abfrageprotokoll ist nützlich, wenn Sie einen Fehler im Client vermuten und genau wissen möchten, was der Client an mysqld gesendet hat.

Standardmäßig ist das allgemeine Protokoll deaktiviert. Durch die Aktivierung des allgemeinen Abfrageprotokolls erhöht sich die Datenträger-E/A erheblich. Daher wird die Aktivierung des allgemeinen Abfrageprotokolls nur zu Debugzwecken empfohlen. Die entsprechende Parameterkonfiguration wird wie folgt eingeführt:

# Allgemeine protokollbezogene Konfiguration vim /etc/my.cnf 
[mysqld]
general_log = 0 //Der Standardwert ist 0, was bedeutet, dass es nicht aktiviert ist. Sie können es auf 1 setzen
general_log_file = /data/mysql/logs/general.log //Geben Sie den Speicherort und den Namen des Protokolls an

4. Binärprotokoll (binlog)

Bezüglich Binärprotokollen gab es zuvor einen Artikel, in dem sie vorgestellt wurden. Es zeichnet alle von der Datenbank ausgeführten DDL- und DML-Anweisungen (außer Datenabfrageanweisungen wie „Select“ und „Show“) auf, zeichnet sie in Form von Ereignissen auf und speichert sie in Binärdateien. Wird häufig zur Datenwiederherstellung und Master-Slave-Replikation verwendet.

Einige mit Binlog in Zusammenhang stehende Parameter sind die folgenden:

  • log_bin: Gibt an, ob Binlog aktiviert ist und den Dateinamen.
  • server_id: Gibt die eindeutige ID des Servers an. Dieser Parameter muss gesetzt werden, um Binlog zu aktivieren.
  • binlog_format: Gibt den Binlog-Modus an. Es wird empfohlen, ihn auf ROW einzustellen.
  • max_binlog_size: Steuert die Größe eines einzelnen Binärprotokolls. Wenn die aktuelle Protokolldateigröße diese Variable überschreitet, wird eine Switch-Aktion ausgeführt.
  • expire_logs_days: Steuert die Anzahl der Tage, die Binärprotokolldateien aufbewahrt werden. Der Standardwert ist 0, was bedeutet, dass sie nicht automatisch gelöscht werden. Der Wert kann auf 0 bis 99 eingestellt werden.

Binlog ist standardmäßig nicht aktiviert, es wird jedoch generell empfohlen, es zu aktivieren, insbesondere bei der Master-Slave-Synchronisierung.

#binlog-bezogene Konfiguration vim /etc/my.cnf 
[mysqld]
Server-ID = 1003306
log-bin = /Daten/mysql/logs/binlog
binlog_format = Zeile
Ablauf_Protokolltage = 15

5. Relaisprotokoll

Das Relay-Protokoll wird auf dem Slave-Server in der Master-Slave-Replikationsarchitektur verwendet. Der Slave-Prozess des Slave-Servers erhält den Inhalt des Binärprotokolls vom Master-Server und schreibt ihn in das Relay-Protokoll. Der IO-Prozess liest und führt dann die Anweisungen im Relay-Protokoll aus.

Relay-Log-bezogene Parameter werden im Allgemeinen in der Slave-Datenbank festgelegt. Mehrere zugehörige Parameter werden wie folgt eingeführt:

  • relay_log: Definiert den Speicherort und den Namen des Relay-Protokolls.
  • relay_log_purge: Gibt an, ob nicht mehr benötigte Relay-Protokolle automatisch gelöscht werden sollen. Der Standardwert ist 1 (aktiviert).
  • relay_log_recovery: Wenn der Slave ausfällt und das Relay-Protokoll beschädigt ist, was dazu führt, dass einige Relay-Protokolle nicht verarbeitet werden können, werden alle nicht ausgeführten Relay-Protokolle automatisch verworfen und die Protokolle erneut vom Master abgerufen, wodurch die Integrität des Relay-Protokolls sichergestellt wird. Diese Funktion ist standardmäßig deaktiviert. Sie können sie aktivieren, indem Sie den Wert von relay_log_recovery auf 1 setzen.

Der Standardspeicherort des Relay-Protokolls ist das Verzeichnis der Datendateien. Der Dateiname lautet host_name-relay-bin. Sie können den Dateispeicherort und den Namen anpassen.

# Relay-Log-bezogene Konfiguration, vim von der Bibliotheksseite aus einstellen /etc/my.cnf 
[mysqld]
relay_log = /Daten/mysql/logs/relay-bin
relay_log_purge = 1
relay_log_recovery = 1

Zusammenfassen:

Dieser Artikel beschreibt hauptsächlich den Zweck und die Einstellungsmethoden verschiedener Protokolltypen in MySQL. Es ist zu beachten, dass die oben genannten Protokolltypen standardmäßig im Datenverzeichnis gespeichert werden, wenn der absolute Pfad nicht angegeben ist. Wir können auch ein neues Protokollverzeichnis erstellen, in dem diese Protokolle gespeichert werden. Es gibt noch ein Redo-Log und ein Undo-Log, die noch nicht erklärt wurden, daher hebe ich sie für den nächsten Artikel auf.

Dies ist das Ende dieses Artikels über mehrere allgemeine Protokolle in MySQL. Weitere relevante Inhalte zu allgemeinen MySQL-Protokollen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung des MySQL-Redo-Logs (Redo-Log) und des Rollback-Logs (Undo-Log)
  • Mysql Online-Wiederherstellung des Undo-Tabellenbereichs tatsächlicher Kampfdatensätze
  • Detaillierte Erläuterung des Binlog-Protokollanalysetools zur Überwachung von MySQL: Canal
  • Detaillierte Erläuterung der langsamen MySQL-Protokollabfrage
  • So verkleinern Sie die Protokolldatei in MYSQL SERVER
  • Detaillierte Erklärung von MySQL-Transaktionen und MySQL-Protokollen
  • Implementierungscode für den MySQL-Protokolltrigger
  • Detaillierte Erklärung, warum die langsame Abfrageprotokollzeit von MySQL 5.7 8 Stunden hinter der Systemzeit liegt
  • Detaillierte Erläuterung des Befehls zum Bereinigen des MySQL-Datenbank-Binlogs
  • Rückgängigmachen der Anmeldung in MySQL

<<:  Detaillierte Erläuterung des JavaScript-Betriebsmechanismus und eine kurze Diskussion über Event Loop

>>:  So verwenden Sie Linux-Befehle in IDEA

Artikel empfehlen

Kennen Sie alle 24 Methoden zur JavaScript-Schleifendurchquerung?

Inhaltsverzeichnis Vorwort 1. Array-Traversal-Met...

Der Unterschied zwischen ID- und Name-Attributen von HTML-Elementen

Heute bin ich etwas verwirrt über <a href="...

Grundlegende Verwendung von exists, in und any in MySQL

【1】existiert Verwenden Sie eine Schleife, um die ...

Problem mit Zeitzonenfehler im Docker-Container

Inhaltsverzeichnis Hintergrund Frage Problemanaly...

HTML-Grundlagen - CSS-Stylesheets, Style-Attribute, Format- und Layoutdetails

1. Position : fest Gesperrte Position (relativ zu...

So installieren Sie MySQL über Yum auf CentOS7

1. Überprüfen Sie, ob MySQL installiert ist Yum-L...

Verwendung von Umgebungsvariablen in Docker und Lösungen für häufige Probleme

Vorwort Docker kann Umgebungsvariablen für Contai...

JavaScript implementiert kreisförmigen Fortschrittsbalkeneffekt

In diesem Artikelbeispiel wird der spezifische Ja...

So ändern Sie die Ali-Quelle in Ubuntu 20.04

Beachten Sie, dass dieser Artikel Ihnen nicht ein...

JavaScript-Implementierung eines einfachen Additionsrechners

In diesem Artikelbeispiel wird der spezifische Ja...

Vue + ElementUI implementiert Paging-Funktion - MySQL-Daten

Inhaltsverzeichnis 1. Problem 2. Lösung 2.1 Pagin...

Docker benennt den Imagenamen und die TAG-Operation um

Bei der Verwendung von Docker-Images können Image...