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

Zusammenfassung der vier Möglichkeiten zum Durchlaufen eines Arrays in JS

Dieser Artikel vergleicht und fasst vier Möglichk...

Bootstrap FileInput implementiert Bild-Upload-Funktion

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung der Mixins in Vue.js

Mixins stellen auf flexible Weise verteilte, wied...

So exportieren Sie eine CSV-Datei mit Header in MySQL

Siehe das offizielle Dokument http://dev.mysql.co...

Lösung für das Problem des achtstündigen Unterschieds bei der MySQL-Einfügezeit

Lösen Sie das Problem des achtstündigen Zeitunter...

Detaillierte Hinweise zu React für Einsteiger

Inhaltsverzeichnis 1. Grundlegendes Verständnis v...

vue3.0 + echarts realisiert dreidimensionales Säulendiagramm

Vorwort: Vue3.0 implementiert dreidimensionales S...

Detaillierte Anwendung des dynamischen Vue-Formulars

Überblick Es gibt viele Formularanforderungen im ...

Detaillierte Analyse und Prüfung von SSD-Leistungsproblemen in MySQL-Servern

【Frage】 Wir haben einen HP-Server. Wenn die SSD e...