Experimentelle Umgebung:MySQL 5.7.22 Binäres Logging aktivieren Protokollformat GEMISCHT Versuchsablauf:1. Ausführen: FLUSH LOGS; Die Datei master-bin.000014 ist die neu generierte Datei Der Zweck der Aktualisierung des Protokolls besteht darin, den experimentellen Inhalt intuitiver zu gestalten und die Beobachtung des Inhalts des gesamten experimentellen Prozesses zu erleichtern. Ich habe online viele Artikel gesehen, in denen es um die Verwendung von REST MASTER geht, aber sie erklären nicht die Ernsthaftigkeit dieses Befehls. Dieser Befehl löscht alle Protokolldateien und setzt die Dateinamen und Protokollpunkte auf Null zurück. In 99 % der Fälle ist dieser Befehl nicht erforderlich. Zum Löschen von Protokollen können Sie PURGE MASTER LOGS verwenden. Dies ist sicherer 2. Eine neue Protokolldatei wurde generiert. Schauen wir uns zunächst den Inhalt an. Es gibt einige Punkte, die Sie verstehen müssen. Zeigen Sie den Befehl für die Binärprotokolldatei an: mysqlbinlog master-bin.000014 # bei 4 #180903 16:19:12 Server-ID 1 end_log_pos 123 CRC32 0xe03659b3 Start: Binlog v 4, Server v 5.7.22-Log erstellt 180903 16:19:12 Schauen Sie sich zunächst die beiden Pfeile oben an:
Schauen Sie sich die beiden Pfeile unten an:
3. Simulieren Sie ein Geschäftsszenario, erstellen Sie eine Tabelle, fügen Sie Daten ein und löschen Sie schließlich eine Tabelle. Um es realistisch zu machen, habe ich zwei Datenbanken erstellt, gleichzeitig Inhalte in verschiedene Datenbanken geschrieben und schließlich eine Tabelle in einer der Datenbanken gelöscht. mysql> PROTOKOLLE LEEREN; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) mysql> Datenbank t1 erstellen; Abfrage OK, 1 Zeile betroffen (0,03 Sek.) mysql> Datenbank t2 erstellen; Abfrage OK, 1 Zeile betroffen (0,00 Sek.) mysql> verwende t1; Datenbank geändert mysql> Tabelle t1 erstellen (ID int); Abfrage OK, 0 Zeilen betroffen (0,03 Sek.) mysql> verwende t2; Datenbank geändert mysql> Tabelle t2 erstellen (ID int); Abfrage OK, 0 Zeilen betroffen (0,03 Sek.) mysql> in t2-Werte einfügen (3); Abfrage OK, 1 Zeile betroffen (0,01 Sek.) mysql> in t2-Werte einfügen (4); Abfrage OK, 1 Zeile betroffen (0,01 Sek.) mysql> verwende t1; Datenbank geändert mysql> in t1-Werte einfügen (1); Abfrage OK, 1 Zeile betroffen (0,01 Sek.) mysql> in t1-Werte einfügen (2); Abfrage OK, 1 Zeile betroffen (0,01 Sek.) mysql> verwende t2; Datenbank geändert mysql> in t2-Werte einfügen (20); Abfrage OK, 1 Zeile betroffen (0,01 Sek.) mysql> verwende t1; Datenbank geändert mysql> in t1-Werte einfügen (10); Abfrage OK, 1 Zeile betroffen (0,01 Sek.) mysql> Tabelle t1 löschen; Abfrage OK, 0 Zeilen betroffen (0,02 Sek.) mysql> verwende t2; Datenbank geändert mysql> in t2-Werte einfügen (222); Abfrage OK, 1 Zeile betroffen (0,01 Sek.) MySQL> Erstellen Sie T1- und T2-Bibliotheken und erstellen Sie T1- und T2-Tabellen. Daten in T1 einfügen: 1, 2, 10 Daten in T2 einfügen: 3, 4, 20, 222 Im Simulationsszenario wird die Tabelle T1 gelöscht, der Betrieb der Tabelle T2 in der Datenbank T2 läuft jedoch weiter. Jetzt werden wir die T1-Tabelle über das Protokoll wiederherstellen. Suchen Sie zunächst den Protokollpunkt des Löschbefehls: mysqlbinlog master-bin.000014|grep -5a "Tabelle löschen" Siehe #AT 2439 (notieren Sie sich diese Nummer) Der DROP TABLE-Vorgang wird an diesem Ereignispunkt ausgeführt. Da die Protokolldatei nicht nur die Protokolle der T1-Datenbank, sondern auch die Protokolle der T2-Datenbank enthält, rufen wir nur die Protokolle der T1-Datenbank ab. Und nur die Protokolle vor Protokollpunkt 2439 werden übernommen und erneut angewendet Wenn das Protokoll 2439 erstellt wird, erstellt die Datenbank die Datenbank und die Tabelle neu, fügt Daten ein und führt die Anweisung zum Löschen der Tabelle aus, wenn sie erneut angewendet wird. mysqlbinlog -d t1 --stop-position=2439 master-bin.000014>test.sql (beim Ausführen dieser Anweisung wurde ein Fehler gemeldet)
mysqlbinlog master-bin.000014 -d t1 --skip-gtids --stop-position=2439>test.sql -d: Parameter gibt ein Datenbankprotokoll an Der Befehl dient zur Ausgabe des T1-Datenbankprotokolls in der Protokolldatei master-bin.000014, des Protokolls vor Ereignispunkt 2439, nach test.sql. # Ende test.sql Schauen Sie sich die letzten Zeilen der Datei an Melden Sie sich bei der Datenbank an: mysql> verwende t1; Datenbank geändert mysql> Quelle test.sql Einmal wurde mittendrin ein Fehler gemeldet, da dieser die Anweisung zum Aufbau der Datenbank T1 enthielt. Überprüfen Sie den Tabelleninhalt erneut Auf diese Weise werden die Daten zurückgegeben. Dies ist das Ende dieses Artikels über die Verwendung des Befehls mysqlbinlog zum Wiederherstellen versehentlich gelöschter Daten. Weitere Informationen zur Wiederherstellung versehentlich gelöschter Daten mit mysqlbinlog finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Lösen Sie das Problem, dass der Container nach dem Docker-Lauf „Beendet (0)“ anzeigt.
>>: Diskussion über Web-Nachahmung und Plagiat
Wenn Sie gerade erst mit Linux in Berührung gekom...
Inhaltsverzeichnis Anwendungsszenarien So erreich...
Viele Leute haben dieses Buch gelesen: „Entwickel...
Heute ist in meiner lokalen Entwicklungsumgebung ...
Inhaltsverzeichnis Hintergrund Was ist das Metave...
Inhaltsverzeichnis Hintergrund 1. Dokumentbeschre...
1. Laden Sie das Pip-Installationspaket entsprech...
Lösen Sie das Problem des achtstündigen Zeitunter...
Inhaltsverzeichnis Vorwort 1. SS-Befehl 2. Gesamt...
Grund Die MySQL-Version, von der Nacos‘ POM abhän...
Bevor der Pfeil abgeschossen wurde, flüsterte der...
Inhaltsverzeichnis 1 Node.js-Methode zum Senden v...
Zunächst einmal: Was ist 404 und Soft 404? 404: Ei...
Das Herunterladen dieser Datenbank nimmt viel Zei...
1. Beenden Sie den MySQL-Dienst # service mysqld ...