binlog ist eine binäre Protokolldatei, die alle DML-Operationen von MySQL aufzeichnet. Über Binlog-Protokolle können wir Datenwiederherstellung, inkrementelle Sicherungen, Master-Master-Replikation, Master-Slave-Replikation usw. durchführen. Entwickler schenken Binlog möglicherweise nicht viel Aufmerksamkeit, aber für Betriebs- und Wartungspersonal oder Architekturpersonal ist es sehr wichtig. MySQL 5.7 aktiviert Binlog nicht standardmäßig. Einzelheiten zur Aktivierung finden Sie unter https://www.jb51.net/article/207953.htm Nachdem Binlog erfolgreich aktiviert wurde, kann der Speicherort der Binlog-Datei in der Konfigurationsdatei my.inf angezeigt werden. Sie können es auch in der MySQL-Befehlszeile anzeigen. Der Befehlszeilenansichtscode lautet wie folgt Variablen wie „%log_bin%“ anzeigen; Wir können auch einen Blick auf die aktuelle MySQL-Binlog-Situation werfen Masterstatus anzeigen; Wie aus der obigen Abbildung ersichtlich, gibt es derzeit nur eine Binlog-Datei, der Dateiname lautet: mysql-bin.000001. Bei jedem Neustart wird automatisch eine Binlog-Datei generiert . Nach dem Neustart führen wir denselben Befehl erneut aus und der Inhalt lautet wie folgt: Es gibt auch eine solche Datei im Verzeichnis, in dem Binlog gespeichert ist. Natürlich können wir die Binlog-Datei auch manuell aktualisieren. Durch das Leeren der Protokolle wird auch eine neue Binlog-Datei erstellt. Tatsächlich wird beim Neustart des Servers auch der Vorgang zum Leeren der Protokolle aufgerufen. Wenn wir alle diese Dateien löschen möchten, können wir dazu den Reset-Master verwenden. Als nächstes schauen wir uns die Funktionsweise einer einzelnen Datei an. Zunächst wollen wir uns den Inhalt der Datei ansehen. Suchen Sie das Binlog-Verzeichnis. Wir möchten uns beispielsweise mysql-bin.000001 ansehen. vi mysql-bin.000001 Wir sehen eine Menge Kauderwelsch. Wir wissen, dass es sich hier um eine Reihe von Binärdateien handelt. Daher muss beim Öffnen der Binärdatei als Text etwas schiefgehen. Wie können wir also den Inhalt dieser Datei anzeigen? MySQL stellt uns ein Tool zum Anzeigen von Binlog-Protokollen zur Verfügung, genannt mysqlbinlog mysqlbinlog myql-bin.000001 Diese Datei ist ziemlich lang. Was sollten Sie tun, wenn Sie sie nicht in einem Rutsch durchlesen können? Sie können Linux-Pipes verwenden. Ich werde das hier nicht im Detail erklären. Sie können sich selbst etwas Wissen über Linux aneignen. Beachten Sie, dass im obigen Screenshot ein Positionsfeld vorhanden ist. Dieses Feld ähnelt einem Zeiger. Der aktuelle Wert dieses Felds ist 154, was die aktuelle Position des Binärprotokolls angibt. Jedes Mal, wenn wir eine DML-Operation durchführen, ändert sich die Position. Erstellen wir beispielsweise einen Datentest Vor dem Erstellen können wir der Einfachheit halber das Binlog-Protokoll löschen und den Master zurücksetzen. In einer Produktionsumgebung ist dieser Vorgang sehr gefährlich, daher können wir Flush-Protokolle verwenden, um ihn zu verarbeiten und eine neue Binärprotokolldatei zu generieren. Unabhängig von der verwendeten Methode benötigen wir lediglich eine neue Binlog-Datei in der Testumgebung. Nach dem Generieren einer neuen Binlog-Datei können wir den Status über den Show-Master-Status überprüfen. Lassen Sie uns eine DML-Anweisung ausführen. Wir möchten beispielsweise eine Testdatenbank erstellen Datenbanktest erstellen; Dann überprüfen wir den Status nach der Erstellung. Wie unten gezeigt, stellen wir fest, dass sich die Position von 154 auf 313 geändert hat, was bedeutet, dass unser Vorgang zwischen 154 und 313 liegt. Dann schauen wir uns den Inhalt des Binlogs an. Den Inhalt des Binlogs zwischen 154 und 313 fangen wir wie folgt ab: # bei 154 #170708 9:24:02 Server-ID 12345 End-Log-Position 219 CRC32 0x30763ffe Anonymous_GTID last_committed=0 Sequenznummer=1 SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/; # bei 219 #170708 9:24:02 Server-ID 12345 End-Log-Pos 313 CRC32 0x4d0140b3 Abfrage Thread-ID = 5 Exec-Zeit = 0 Fehlercode = 0 ZEITSTEMPEL EINSTELLEN=1499477042/*!*/; SETZEN Sie @@session.pseudo_thread_id=5/*!*/; SETZEN Sie @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/; SETZEN Sie @@session.sql_mode=1436549152/*!*/; SETZEN Sie @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8 *//*!*/; SETZEN @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/; SETZEN @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; Datenbanktest erstellen /*!*/; SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* hinzugefügt von mysqlbinlog */ /*!*/; TRENNUNGSZEICHEN ; # Ende der Protokolldatei /*!50003 SETZEN SIE COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; /*!50530 SETZEN @@SESSION.PSEUDO_SLAVE_MODE=0*/; Wir können sehen, dass MySQL viele implizite Operationen ausführt. Aufmerksame Freunde werden diesen Satz sehen: create database test; Lassen Sie uns das Binlog kurz zusammenfassen: 1. Die Binlog-Datei erstellt eine neue Datei, wenn der Dienst gestartet wird 2. Sie können die Protokolle manuell aktualisieren, indem Sie die Protokolle leeren, um eine neue Binlog-Datei zu generieren 3. Sie können den Status von Binlog über Show Master Status anzeigen 4. Binlog-Logdateien können durch Zurücksetzen des Masters gelöscht werden 5. Der Inhalt des Binlog-Protokolls kann über das Tool mysqlbinlog angezeigt werden 6. Durch Ausführen von DML zeichnet MySQL automatisch Binlog auf Dies ist das Ende dieses Artikels zur detaillierten Verwendung des MySQL-Binlog-Protokolls. Weitere relevante Inhalte zur Verwendung des MySQL-Binlog-Protokolls finden Sie in früheren Artikeln auf 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:
|
<<: So installieren Sie Postgres 12 + pgadmin im lokalen Docker (unterstützt Apple M1)
>>: Beim Website-Design sollte auf die Farbhierarchie geachtet werden
Browserkompatibilität ist nichts anderes als Stil...
Inhaltsverzeichnis 1. Verteilte LNMP-Image-Produk...
Beim Erstellen von Webseiten tritt häufig das Pro...
Voraussetzung: Speichern Sie die .frm- und .ibd-D...
Inhaltsverzeichnis Einfach zu bedienen Erstellen ...
Inhaltsverzeichnis 1. Rendern 2. Umsetzungsprinzi...
Zusammenfassung: Dieser Artikel erläutert hauptsä...
Ich habe zufällig ein tolles Tutorial zum Thema k...
Verwendungsstatus useState fügt einer Komponente ...
01 Das Konzept der parallelen Replikation In der ...
Unter Linux wird Bash als Standard übernommen, wa...
/**************************** * Systemaufruf*****...
Erstellen Sie eine HTML-Seite mit einer ungeordnet...
Inhaltsverzeichnis 1. Wählen Sie die am besten ge...
In diesem Artikelbeispiel wird der spezifische Co...