Zusammenfassung wichtiger MySQL-Protokolldateien

Zusammenfassung wichtiger MySQL-Protokolldateien

Autor: Ding Yi

Quelle: https://chengxuzhixin.com/blog/post/mysql_zhong_yao_ri_zhi_wen_jian_zong_jie.html

Protokolle sind wichtige Daten für alle Anwendungen. MySQL verfügt auch über Fehlerprotokolle, Abfrageprotokolle, Protokolle langsamer Abfragen, Transaktionsprotokolle usw. In diesem Artikel werden verschiedene Protokolle zu Referenzzwecken kurz zusammengefasst.

Binäres Protokoll

Das Binärprotokoll Binlog wird zum Aufzeichnen der Informationen zu Schreibvorgängen (ausgenommen Abfragen) verwendet, die von der Datenbank durchgeführt werden, und wird in binärer Form auf der Festplatte gespeichert. Die MySQL-Datenbank zeichnet mithilfe einer beliebigen Speicher-Engine Binlog-Protokolle auf. Was im Binlog aufgezeichnet wird, ist das logische Protokoll, also die SQL-Anweisung. Nachdem die SQL-Anweisung ausgeführt wurde, wird „binlog“ an die Protokolldatei angehängt. Sie können die Größe der Binlog-Datei festlegen. Wenn die Größe überschritten wird, wird automatisch eine neue Datei erstellt.

Es gibt drei Binlog-Formate: STATMENT, ROW und MIXED.

  • STATMENT: zeichnet SQL-Anweisungen auf, die Daten im Binärprotokoll ändern. Dies ist das Standardformat vor MySQL 5.7.7.
  • ROW: zeichnet nicht die Kontextinformationen jeder SQL-Anweisung auf, sondern zeichnet nur auf, welche Daten geändert wurden. Dies ist das Standardformat nach MySQL 5.7.7.
  • MIXED: Gemischte Replikation basierend auf den Modi STATMENT und ROW. Im Allgemeinen wird der Modus STATEMENT verwendet und der Modus ROW für Vorgänge, die nicht repliziert werden können.

In praktischen Anwendungen wird Binlog hauptsächlich für die Master-Slave-Replikation und Datenwiederherstellung verwendet. Master-Slave-Replikation bedeutet, dass das Binlog auf dem Master-Rechner geöffnet und das Binlog auf irgendeine Weise an den Slave-Rechner gesendet wird. Der Slave-Rechner führt Datenoperationen basierend auf dem Binlog-Inhalt aus, um die Master-Slave-Datenkonsistenz sicherzustellen. Darüber hinaus können Daten aus Binlog mithilfe des Tools mysqlbinlog wiederhergestellt werden.

Nach MySQL 5.7 wurde die integrierte Standard-Engine auf die InnoDB-Engine geändert. Wenn die InnoDB-Engine Transaktionen verarbeitet, können Sie den Zeitpunkt für das Schreiben von Protokollen auf die Festplatte festlegen. Standardmäßig werden Protokolle bei jedem Commit auf die Festplatte geschrieben. Sie können den Parameter sync_binlog auch so festlegen, dass das System automatisch bestimmt wird oder alle N Transaktionen einmal geschrieben wird.

Abfrageprotokoll

Das Abfrageprotokoll zeichnet Informationen zu allen Datenbankanforderungen auf. Ob diese Anfragen ordnungsgemäß ausgeführt wurden oder nicht. Wenn es aktiviert ist, wirkt es sich erheblich auf die Leistung aus und wird daher nicht oft verwendet.

Langsames Abfrageprotokoll

Das Slow-Query-Log dient der Aufzeichnung von Anweisungen, deren Ausführungszeit einen bestimmten Grenzwert überschreitet. Der Schwellenwert für die Ausführungszeit kann über long_query_time festgelegt werden, der Standardwert beträgt 10 Sekunden. Das Protokoll für langsame Abfragen muss manuell aktiviert werden, was sich auf die Leistung auswirkt und im Allgemeinen nicht empfohlen wird. Das langsame Abfrageprotokoll unterstützt das Schreiben von Datensätzen in Dateien oder Datenbanktabellen.

Redo-Log des Transaktionsprotokolls

Eines der vier Hauptmerkmale einer Transaktion ist die Dauerhaftigkeit. Daher werden die Datenbankänderungen nach erfolgreicher Transaktion dauerhaft gespeichert und können aus keinem Grund in den ursprünglichen Zustand zurückversetzt werden. Das Redo-Log ist ein auf der Ebene der InnoDB-Engine implementiertes Protokoll. Nicht alle Engines verfügen über ein solches Protokoll. Es wird verwendet, um durch Transaktionen an Datenseiten vorgenommene Änderungen aufzuzeichnen und kann im Falle eines Absturzes zur Wiederherstellung von Daten verwendet werden. Das Redo-Protokoll umfasst den Protokollpuffer im Speicher und die Protokolldatei auf der Festplatte. Nachdem die SQL-Anweisung ausgeführt wurde, wird sie zuerst in den Protokollpuffer geschrieben und dann werden mehrere Puffer gleichzeitig in die Datei geschrieben.

In InnoDB werden Datenseiten auch auf die Festplatte geschrieben. Der Hauptzweck des Redo-Logs besteht darin, die Notwendigkeit zum Schreiben von Datenseiten auf die Festplatte zu verringern. Es ist nicht erforderlich, alle Redo-Logs für Änderungen an Datenseiten zu speichern. Wenn die Datenseite schneller geleert wird als das Redo-Log, ist der Redo-Log-Datensatz für die Datenwiederherstellung von geringer Bedeutung; wenn die Datenseite langsamer geleert wird als das Redo-Log, kann der Teil des Redo-Logs, der schneller ist als die Datenseite, zur schnellen Datenwiederherstellung verwendet werden. Daher ist die Größe der Redo-Logdatei festgelegt. Wenn das Redo-Log das Ende erreicht, wird es zum Anfang zurückgeführt und das Log in einer Schleife geschrieben.

Undo-Protokoll für Transaktionsprotokolle

Eines der vier Hauptmerkmale von Transaktionen ist die Atomarität. Eine Reihe von Operationen an der Datenbank müssen entweder alle erfolgreich sein oder alle fehlschlagen. Teilweiser Erfolg oder teilweises Fehlschlagen sind nicht zulässig. Daher ist es notwendig, die logischen Änderungen der Daten aufzuzeichnen. Atomarität wird durch ein Undo-Protokoll erreicht. Wenn beispielsweise in einer Transaktion eine Insert-Anweisung ausgeführt wird, zeichnet das Undo-Protokoll eine Delete-Anweisung auf. Wenn in einer Transaktion eine Update-Anweisung ausgeführt wird, zeichnet das Undo-Protokoll eine entgegengesetzte Update-Anweisung auf. Auf diese Weise können Sie bei einem Fehlschlagen einer Transaktion über das Undo-Protokoll zum Zustand vor der Transaktion zurückkehren.

Oben finden Sie den detaillierten Inhalt der Zusammenfassung wichtiger MySQL-Protokolldateien. Weitere Informationen zu MySQL-Protokolldateien finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Details zur MySQL-Protokolldatei
  • Einführung in MySQL-Protokolldateien und -Protokolltypen
  • MySQL-Binärprotokolldatei - Datenbank wiederherstellen
  • Austausch von Ideen und Lösungen zum automatischen Wiederherstellen von MySQL-Datenbankprotokolldateien
  • Wo befindet sich die MySQL-Protokolldatei? So ändern Sie den Speicherort der MySQL-Protokolldatei
  • Zusammenfassung der 7 Protokolltypen in MySQL

<<:  Detaillierte Erläuterung des Problems des unendlichen Neustarts beim Ausführen der Docker-Umgebung des SpringBoot-Projekts

>>:  So implementieren Sie eine Maskenebene in HTML So verwenden Sie eine Maskenebene in HTML

Artikel empfehlen

Zusammenfassung der Grundsätze zum Schreiben von HTML-Seiten für E-Mails

Da HTML-E-Mail keine unabhängige HOST-Seite auf di...

Ein kurzer Vortrag über die halbsynchrone MySQL-Replikation

Einführung MySQL erreicht eine hohe Verfügbarkeit...

Grafisches Tutorial zum Herunterladen und Installieren von MySQL 5.7 und höher

1. Herunterladen 1. Download-Adresse der offiziel...

MySQL-Beispiel zum Abrufen des heutigen und gestrigen Zeitstempels 0:00

Wie unten dargestellt: Gestern: UNIX_TIMESTAMP(CA...

Fünf praktische Tipps zur Gestaltung von Webformularen

1. Mobile Auswahl der Formulartexteingabe: Wenn i...

Analyse der gemeinsamen Indexfunktion von MySQL und Anwendungsbeispiele

Dieser Artikel veranschaulicht anhand von Beispie...

Drei gängige Möglichkeiten zum Einbetten von CSS in HTML-Dokumente

Die folgenden drei Methoden werden häufig verwende...

Implementierung eines Web-Rechners mit nativem JavaScript

In diesem Artikel wird der spezifische JavaScript...

11 Beispiele für die erweiterte Verwendung von Eingabeelementen in Webformularen

1. Löschen Sie das gepunktete Feld, wenn die Scha...

CentOS7-Bereitstellung Flask (Apache, mod_wsgi, Python36, venv)

1. Installieren Sie Apache # yum install -y httpd...

Eine kurze Diskussion über die Leistungsprobleme des MySQL-Paging-Limits

MySQL-Paging-Abfragen werden normalerweise über L...