Ein einfaches Tutorial zur Verwendung des MySQL-Protokollsystems

Ein einfaches Tutorial zur Verwendung des MySQL-Protokollsystems

Vorwort

MySQL ist ein relationales Datenbankverwaltungssystem, das vom schwedischen Unternehmen MySQL AB entwickelt wurde und ein Produkt von Oracle ist. MySQL ist eines der beliebtesten relationalen Datenbankverwaltungssysteme. Im Hinblick auf Webanwendungen ist MySQL eine der besten RDBMS-Anwendungssoftwares (Relational Database Management System).

In jeder Datenbank gibt es verschiedene Protokolle, die alle Aspekte der Datenbankarbeit aufzeichnen, um Datenbankadministratoren dabei zu helfen, verschiedene in der Datenbank aufgetretene Ereignisse zu verfolgen.
In MySQL gibt es 4 verschiedene Protokolle, nämlich

  • Fehlerprotokoll
  • Binärprotokoll (BINLOG-Protokoll)
  • Abfrageprotokoll
  • Langsames Abfrageprotokoll

Diese Protokolle zeichnen Spuren verschiedener Aspekte der Datenbank auf. Das Erlernen der Verwendung von MySQL-Protokollen ist für uns bei der Verwendung und Wartung der Datenbank sehr hilfreich.

1. Fehlerprotokoll

Das Fehlerprotokoll ist eines der wichtigsten Protokolle in MySQL. Es zeichnet Informationen darüber auf, wann mysqld gestartet und gestoppt wird und wann während des Betriebs des Servers schwerwiegende Fehler auftreten. Wenn die Datenbank ausfällt und nicht normal verwendet werden kann, können Sie zuerst dieses Protokoll überprüfen.
Dieses Protokoll ist standardmäßig aktiviert. Das Standardspeicherverzeichnis ist das MySQL-Datenverzeichnis (var/lib/mysql) und der Standardname der Protokolldatei lautet hostname.err (Hostname ist der Hostname).

1. Überprüfen Sie den Protokollspeicherort

Variablen wie „log_error%“ anzeigen;

2. Protokollinhalt anzeigen

tail -f /var/lib/mysql/xxx.err 

2. Binäres Protokoll

Das Binärprotokoll (BINLOG) zeichnet alle DDL-Anweisungen (Data Definition Language) und DML-Anweisungen (Data Manipulation Language) auf, schließt jedoch keine Datenabfrageanweisungen ein. Dieses Protokoll spielt bei der Datenwiederherstellung im Katastrophenfall eine äußerst wichtige Rolle. Die Master-Slave-Replikation von MySQL wird über dieses Binärprotokoll erreicht.

1. Binäres Logging aktivieren

Das Binärprotokoll ist standardmäßig nicht aktiviert. Sie müssen es in der MySQL-Konfigurationsdatei aktivieren und das Format des MySQL-Protokolls konfigurieren.

  • Speicherort der Konfigurationsdatei: /etc/my.cnf
  • Speicherort des Protokolls: Wenn bei der Konfiguration ein Dateiname, aber kein Pfad angegeben wird, wird das Protokoll standardmäßig in das MySQL-Datenverzeichnis geschrieben.
#Konfigurieren Sie die Binlog-Protokollierung. Das Protokolldateipräfix lautet mysqlbin -----> Die generierten Dateinamen lauten wie folgt: mysqlbin.000001,mysqlbin.000002 
log_bin=mysqlbin
 
#Konfigurieren Sie das Binärprotokollformat binlog_format=STATEMENT

2. Binäres Protokollformat

(1) ERKLÄRUNG

Dieses Protokollformat zeichnet SQL-Anweisungen in der Protokolldatei auf. Jede SQL-Anweisung, die die Daten ändert, wird in der Protokolldatei aufgezeichnet. Der Text jeder Anweisung kann mit dem von MySQL bereitgestellten Tool mysqlbinlog klar angezeigt werden. Während der Master-Slave-Replikation analysiert der Slave das Protokoll in den Originaltext und führt es auf dem Slave erneut aus.

(2) REIHE

Dieses Protokollformat zeichnet die Datenänderungen jeder Zeile in der Protokolldatei auf, anstatt SQL-Anweisungen aufzuzeichnen. Wenn Sie beispielsweise die SQL-Anweisung „update tb_book set status='1'“ ausführen, wird eine Zeile der SQL-Datei im Protokoll aufgezeichnet, wenn das Protokollformat STATEMENT ist. Wenn es ROW ist, zeichnet das Protokoll im ROW-Format die Datenänderungen jeder Zeile auf, da die gesamte Tabelle aktualisiert wird, d. h. jede Datensatzzeile geändert wird.

(3) GEMISCHT

Dies ist das aktuelle Standardprotokollformat für MySQL, eine Mischung aus STATEMENT- und ROW-Formaten. Standardmäßig wird STATEMENT verwendet, in einigen Sonderfällen wird jedoch ROW zur Aufzeichnung verwendet. Das MIXED-Format kann die Vorteile beider Modi optimal nutzen und gleichzeitig ihre Nachteile vermeiden.

3. Protokoll lesen

Da das Protokoll im Binärformat gespeichert ist und nicht direkt gelesen werden kann, müssen Sie das Tool mysqlbinlog verwenden, um es anzuzeigen. Die Syntax lautet wie folgt

mysqlbinlog-Protokolldatei;

4. STATEMENT-Formatprotokoll anzeigen

(1) Führen Sie die Insert-Anweisung aus

in tb_book-Werte einfügen (null, „Lucene“, „01.05.2088“, „0“);

(2) Suchen Sie die Binärdatei im MySQL-Datendateiverzeichnis

mysqlbin.index ist die Protokollindexdatei, die den Protokolldateinamen aufzeichnet. mysql-bin.000001 ist die Protokolldatei

(3) Anzeige von Logdateien


5. Protokolle im ROW-Format anzeigen

(1) Konfigurieren Sie in der Konfigurationsdatei

#Konfigurieren Sie die Binlog-Protokollierung. Das Protokolldateipräfix lautet mysqlbin -----> Die generierten Dateinamen lauten wie folgt: mysqlbin.000001,mysqlbin.000002 
log_bin=mysqlbin
 
#Konfigurieren Sie das Binärprotokollformat binlog_format=ROW

Hinweis: Denken Sie daran, den MySQL-Dienst jedes Mal neu zu starten, wenn Sie die Konfigurationsdatei ändern

Dienst MySQL Neustart

(2) Daten eingeben

Wenn das Protokollformat ROW ist, können Sie die Daten nicht direkt verstehen. Sie können den Parameter -vv nach mysqlbinlog hinzufügen. Verwenden Sie den Parameter --no-defaults, um die Auswirkungen des Zeichensatzes zu vermeiden.

6.

6. Log-Löschung

Bei stark ausgelasteten Systemen werden täglich große Mengen an Protokollen generiert. Wenn diese Protokolle längere Zeit nicht gelöscht werden, beanspruchen sie viel Speicherplatz. Hier sind einige gängige Möglichkeiten zum Löschen von Protokollen:

(1) Methode 1

Löschen Sie alle Binlog-Protokolle mit dem Befehl „Reset Master“. Nach dem Löschen wird die Protokollnummer wieder von xxxx.000001 an beginnen.

Vor dem Löschen die Logdatei abfragen:

Führen Sie den Befehl „Protokoll löschen“ aus

Master zurücksetzen

Erneut prüfen

Die letzte verbleibende 000001 ist eine leere Konfigurationsdatei

(2) Methode 2

Master-Protokolle nach ,mysqlbin.****** löschen

Dieser Befehl löscht alle Protokolle vor der Nummer ****** .

(3) Methode 3

Master-Protokolle vor „yyyy-mm-dd hh24:mi:ss“ löschen

Dieser Befehl löscht alle Protokolle, die vor yyyy-mm-dd hh24:mi:ss

(4) Methode 4

Legen Sie den Parameter expire_logs_days=# fest. Mit diesem Parameter legen Sie die Ablauftage der Protokolle fest. Nach der angegebenen Anzahl von Tagen werden die Protokolle automatisch gelöscht. Dies trägt dazu bei, den Arbeitsaufwand des DBA bei der Verwaltung der Protokolle zu reduzieren.

3. Abfrageprotokoll

Das Abfrageprotokoll zeichnet alle Operationsanweisungen des Clients auf, während das Binärprotokoll keine SQL-Anweisungen zum Abfragen von Daten enthält.

Standardmäßig ist die Abfrageprotokollierung nicht aktiviert. Wenn Sie das Abfrageprotokoll aktivieren müssen, können Sie die folgende Konfiguration festlegen

#Mit dieser Option wird das Abfrageprotokoll aktiviert. Optionaler Wert: 0 oder 1. 0 bedeutet aus, 1 bedeutet an general_log=1
 
#Legen Sie den Namen der Protokolldatei fest. Wenn nicht angegeben, lautet der Standarddateiname host_name.log 
general_log_file=Dateiname

1. Abfrageprotokoll aktivieren

2. Führen Sie eine Reihe von Operationen durch

3. Abfrageprotokoll anzeigen

4. Langsames Abfrageprotokoll

Das langsame Abfrageprotokoll zeichnet alle SQL-Anweisungen auf, deren Ausführungszeit den Einstellwert des Parameters „long_query_time“ überschreitet und deren Anzahl gescannter Datensätze nicht kleiner als „min_examined_row_limit“ ist. Der Standardwert von long_query_time beträgt 10 Sekunden, der Mindestwert ist 0 und die Genauigkeit kann Mikrosekunden betragen.

1. Dateispeicherort und -format

Das Protokoll langsamer Abfragen ist standardmäßig deaktiviert. Das langsame Abfrageprotokoll kann durch zwei Parameter gesteuert werden

# Mit diesem Parameter wird gesteuert, ob das langsame Abfrageprotokoll aktiviert ist. Die möglichen Werte sind: 1 und 0. 1 bedeutet aktiviert und 0 bedeutet deaktiviert. slow_query_log=1 
 
# Mit diesem Parameter wird der Dateiname des langsamen Abfrageprotokolls angegeben slow_query_log_file=slow_query.log
 
# Mit dieser Option wird das Abfragezeitlimit konfiguriert. Wenn die Abfragezeit dieses Limit überschreitet, wird sie als langsame Abfrage betrachtet und eine Protokollierung ist erforderlich. Der Standardwert ist 10 Sekunden. 
lange_Abfragezeit=10 

Im Allgemeinen reicht es aus, den Wert auf etwa 2 Sekunden einzustellen. In meinem Experiment habe ich ihn auf 0,5 Sekunden eingestellt, um die langsame Abfrage abzuschließen.

Die aktuelle long_query_time kann im MySQL-Client abgefragt werden

2. Abfragevorgänge ausführen

(1) Schauen Sie sich vor der Abfrage das langsame Abfrageprotokoll an

(2) Schnellere Abfrageaktion durchführen

(3) Führen Sie eine langsame Abfrageaktion aus

Wenn das langsame Abfrageprotokoll viel Inhalt enthält, ist es mühsam, die Datei direkt anzuzeigen. Zu diesem Zeitpunkt können Sie das mit MySQL gelieferte Tool mysqldumpslow verwenden, um das langsame Abfrageprotokoll zu klassifizieren und zusammenzufassen.

Da hier nur ein langsamer Abfragedatensatz vorhanden ist, wird der Effekt von mysqldumpslow nicht reflektiert. Wenn jedoch viele langsame Abfragedatensätze vorhanden sind, können diese klassifiziert und zusammengefasst werden

Zusammenfassen

Dies ist das Ende dieses Artikels über das einfache Tutorial zur Verwendung des MySQL-Protokollsystems. Weitere relevante Inhalte zum MySQL-Protokollsystem finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung, warum die langsame Abfrageprotokollzeit von MySQL 5.7 8 Stunden hinter der Systemzeit liegt
  • Das Laravel-Framework verwendet monolog_mysql, um Systemprotokollinformationen in der MySQL-Datenbank zu speichern
  • Detaillierter Informationsaustausch über das MySQL-Protokollsystem
  • Wo befindet sich die MySQL-Protokolldatei? So ändern Sie den Speicherort der MySQL-Protokolldatei
  • MySQL verfolgt die ausgeführten SQL-Anweisungen durch Anzeigen des Ablaufverfolgungsprotokolls
  • So zeigen Sie das MySQL-Fehlerprotokoll an
  • MySQL-Protokolleinstellungen und Anzeigemethoden
  • Analyse und Zusammenfassung von Deadlock-Protokollen, die durch MySQL Innodb-Tabellen verursacht werden
  • Zwei Möglichkeiten zum korrekten Bereinigen von MySQL-Binlog-Protokollen
  • Starten, Stoppen, Neustarten von MySQL und Anzeigen von Fehlerprotokollbefehlen in Ubuntu

<<:  Erste Schritte: Eine kurze Einführung in die grundlegenden Tags und Attribute von HTML

>>:  Einführung und Installation von vue-cli

Artikel empfehlen

Eine vollständige Aufzeichnung eines Mysql-Deadlock-Fehlerbehebungsprozesses

Vorwort Die Datenbank-Deadlocks, die ich zuvor er...

So stellen Sie Go-Webanwendungen mit Docker bereit

Inhaltsverzeichnis Warum brauchen wir Docker? Bei...

Verwenden von js zum Implementieren eines Zahlenratespiels

Letzte Woche gab mir der Lehrer eine kleine Hausa...

Zusammenfassung der englischen Namen chinesischer Schriftarten

Wenn Sie in CSS die Eigenschaft „font-family“ ver...

Canvas zeichnet Rubbellos-Effekt

In diesem Artikel wird der spezifische Code zum Z...

CSS-Vererbungsmethode

Gegeben sei ein Div mit folgendem Hintergrundbild...

Quellcodeanalyse des Nodejs-Modulsystems

Inhaltsverzeichnis Überblick CommonJS-Spezifikati...

Vue verwendet die Element-el-upload-Komponente, um auf die Grube zu treten

Inhaltsverzeichnis 1. Grundlegende Verwendung 2. ...

Detaillierte Erklärung der Datentypen und Schemaoptimierung in MySQL

Ich lerne derzeit etwas über MySQL-Optimierung. D...

So stellen Sie mit Docker schnell einen Elasticsearch-Cluster bereit

In diesem Artikel werden Docker Container (orches...

Beim Bereitstellen von rabbitmq mit Docker sind zwei Probleme aufgetreten

1. Hintergrund Die folgenden zwei Probleme treten...

So lösen Sie das Problem der hohen Parallelität in der MySQL-Datenbank

Vorwort Wir alle wissen, dass Startups zunächst m...